Да поискате от SOCKS прокси да се свърже с име на хост не е същото като да поискате да върне DNS записите на това име.

Проксито може да резолвне името като част от установяването на заявената връзка. То може също да прехвърли задачата към друг подходящ upstream. Клиентът получава отговор на SOCKS, който описва резултата от връзката, а не общ DNS отговор.

При CONNECT адресът и портът на свързване в отговора описват обвързването от страна на сървъра, определено от протокола. Не третирайте BND.ADDR като обещано копие на резолвнатия IP на дестинацията.

Ако приложението се нуждае само от връзката, то може да използва получения поток, без да знае кой адрес на дестинация е избрало проксито. Ако се нуждае от самите DNS данни, изберете действителен интерфейс с поддръжка на DNS с предвиденото местоположение и политика на резолвера.

Това разграничение предотвратява и подвеждаща проверка на IP: адресът на свързване на проксито, IP на дестинацията и публичният изход, видим за сайта са различни стойности. Едното не бива да се нарича с името на другото само защото се е появило в същия handshake.

Подобни статии