Node의 socks 패키지로 SOCKS5 UDP 연결 사용하기
Node 애플리케이션이 프록시를 통해 UDP를 필요로 할 때 SOCKS5 연결과 데이터그램 프레이밍을 사용하세요.
Node의 socks 패키지는 UDP를 위해 SocksClient 인스턴스를 command: 'associate'와 함께 사용합니다. 편리한 SocksClient.createConnection() 팩토리는 대신 TCP CONNECT를 처리합니다.
프로젝트의 연결 예제는 SOCKS 클라이언트를 별도의 로컬 UDP 소켓과 결합합니다:
- UDP ASSOCIATE를 설정하고 그 TCP 제어 연결을 유지합니다.
- 서버가 반환하는 릴레이 호스트와 포트를 읽습니다.
createUDPFrame()를 사용해 나가는 페이로드를 목적지 주소와 함께 프레이밍합니다.- 데이터그램을 릴레이로 보낸 다음, 페이로드를 애플리케이션에 전달하기 전에 들어오는 릴레이 프레임에
parseUDPFrame()를 사용합니다.
Node의 dgram 소켓은 UDP 전송을 제공하지만 SOCKS URL을 해석하지 않습니다. 연결과 프레이밍이 그 데이터그램 주위에 프록시 프로토콜을 제공합니다.
서버는 UDP를 지원해야 하고 릴레이 엔드포인트에 도달할 수 있어야 합니다. 초기 프록시 포트로의 성공적인 TCP 연결은 그 경로를 검증하지 않습니다. 연결이 더 이상 필요 없으면 제어 및 UDP 리소스를 닫습니다.