SOCKS 프록시에 호스트명으로 연결하도록 요청하는 것은 그 호스트명의 DNS 레코드를 반환하도록 요청하는 것과 같지 않습니다.

프록시는 요청된 연결을 수립하는 과정에서 이름을 확인할 수 있습니다. 그 작업을 다른 적절한 업스트림으로 넘길 수도 있습니다. 클라이언트는 연결 결과를 설명하는 SOCKS 응답을 받으며, 일반적인 DNS 응답을 받는 것은 아닙니다.

CONNECT의 경우 응답의 바인드 주소와 포트는 프로토콜이 정의하는 서버 측 바인딩을 설명합니다. BND.ADDR을 목적지의 확인된 IP를 약속한 사본으로 취급하지 마십시오.

애플리케이션이 연결만 필요하다면 프록시가 어떤 목적지 주소를 선택했는지 몰라도 결과 스트림을 사용할 수 있습니다. DNS 데이터 자체가 필요하다면 의도한 리졸버 위치와 정책을 갖춘 실제 DNS 지원 인터페이스를 선택하십시오.

이 구분은 오해를 부르는 IP 점검도 막습니다. 프록시의 바인드 주소, 목적지 IP, 그리고 웹사이트가 보는 공용 출구는 서로 다른 값입니다. 같은 핸드셰이크에 나타났다는 이유만으로 하나를 다른 하나의 이름으로 불러서는 안 됩니다.

관련 글