DNS 응답을 바꾸면 브라우저가 접속하는 주소만 바뀝니다. 그곳에 도착한 뒤 브라우저가 사용하는 프로토콜은 바뀌지 않습니다.

일반 HTTP URL을 열면 브라우저는 HTTP를 보냅니다. HTTPS URL을 열면 그 사이트를 위한 TLS를 시작합니다. 그러나 SOCKS5 서버는 먼저 자체 협상을 기다립니다. 방식 선택, 필요하다면 인증, 그리고 목적지를 지정하는 요청입니다. 설정되지 않은 브라우저는 그중 아무것도 보내지 않습니다.

그래서 DNS 변경 직후에 접근 가능한 Dante 리스너가 연결을 즉시 닫을 수 있습니다. 서비스는 정상일 수 있지만 들어오는 바이트는 다른 프로토콜의 것입니다. 리스너를 포트 80이나 443으로 옮겨도 그 바이트가 SOCKS가 되지는 않습니다.

브라우저의 SOCKS 설정, 예를 들어 Firefox의 SOCKS 설정이나 애플리케이션별 프록시 설정을 구성해 핸드셰이크를 수행하고 프록시에 다음 연결을 요청하게 하십시오. PAC 파일은 이를 사용하는 애플리케이션에 지원되는 프록시 경로를 선택할 수 있습니다. 그래도 별도의 프록시 구성이며 A 또는 AAAA 레코드의 속성이 아닙니다.

HTTPS는 DNS만이라는 발상에 또 하나의 장애물을 더합니다. 브라우저는 URL에 있는 사이트의 신원을 계속 기대합니다. 프록시 호스트용 인증서는 DNS가 연결을 그곳으로 보냈다는 이유만으로 그 기대를 충족할 수 없습니다.

투명한 네트워크 가로채기는 라우팅과 호환되는 가로채기 소프트웨어를 포함하는 다른 설계입니다. DNS에서 SOCKS 서버 주소를 돌려주는 것으로는 얻을 수 없습니다.

관련 글