소켓을 바인딩하기 전에 Qt의 SOCKS5 UDP 프록시 설정하기
기존 QUdpSocket에 setProxy를 적용한 다음, 요청한 포트가 유지되었다고 가정하지 말고 실제로 바인딩된 주소와 포트를 읽으세요.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);애플리케이션의 기존 QUdpSocket에 bind 또는 connect 전에 이를 적용하세요. SOCKS 서버는 UDP 연결(association)을 구현해야 하며, 프록시 기능 플래그와 성공적인 TCP 브라우징으로는 그 동작을 검증할 수 없습니다. 허용된 공개 UDP 테스트의 경우 SOCKS5 프록시 목록이 후보 주소를 제공하지만, 각 후보의 UDP 연결과 대상 접근은 별도로 확인해야 합니다.
| 작업 | Qt가 문서화한 SOCKS5 UDP 고려 사항 |
|---|---|
| bind | 시간 초과될 수 있음 |
| 0이 아닌 로컬 포트 요청 | 해당 포트가 사용된다고 보장하지 않음 |
| 결과 확인 | 실제 정보를 위해 localPort와 localAddress 읽기 |
릴레이는 패킷 손실이 여전히 가능한 UDP 경로를 추가합니다. 프록시 계정 값은 객체의 user/password 속성을 사용합니다.
프록시를 변경해도 연결된 소켓을 올길 수는 없습니다. localhost 시험도 신중하게 해석하세요. Qt는 문서화된 localhost 주소에 대해 connectToHost, bind 또는 listen에서 네트워크 프록시를 우회합니다.