Pedir a um proxy SOCKS que se conecte a um nome de host não é o mesmo que pedir que ele devolva os registros DNS desse nome.

O proxy pode resolver o nome como parte do estabelecimento da conexão solicitada. Também pode encaminhar a tarefa para outro upstream adequado. O cliente recebe uma resposta SOCKS que descreve o resultado da conexão, não uma resposta DNS genérica.

Para CONNECT, o endereço vinculado e a porta na resposta descrevem a vinculação do lado do servidor definida pelo protocolo. Não trate BND.ADDR como uma cópia prometida do IP resolvido do destino.

Se a aplicação só precisa da conexão, pode usar o fluxo resultante sem saber qual endereço de destino o proxy escolheu. Se precisa dos próprios dados de DNS, escolha uma interface realmente capaz de DNS com a localização e a política do resolvedor pretendidas.

Essa distinção também evita uma verificação de IP enganosa: o endereço vinculado do proxy, um IP de destino e a saída pública que o site vê são valores diferentes. Não se deve rotular um como o outro só porque apareceu no mesmo handshake.

Artigos relacionados