Відповідь SOCKS — не результат DNS-запиту
Відрізняйте використання імені хоста на боці проксі від API DNS-запитів і правильно інтерпретуйте прив’язану адресу в SOCKS CONNECT.
Попросити SOCKS-проксі підключитися до імені хоста — не те саме, що попросити його повернути DNS-записи цього імені.
Проксі може розв’язати ім’я в процесі встановлення запитаного з’єднання. Він також може передати завдання іншому відповідному вищому вузлу. Клієнт отримує відповідь SOCKS, що описує результат з’єднання, а не загальну відповідь DNS.
Для CONNECT прив’язані адреса й порт у відповіді описують прив’язку на боці сервера, визначену протоколом. Не розглядайте BND.ADDR як обіцяну копію розв’язаної IP-адреси призначення.
Якщо застосунку потрібне лише з’єднання, він може використовувати отриманий потік, не знаючи, яку адресу призначення обрав проксі. Якщо ж потрібні самі дані DNS, виберіть справжній інтерфейс із підтримкою DNS із потрібним розташуванням і політикою розв’язувача.
Ця відмінність також запобігає оманливій перевірці IP: прив’язана адреса проксі, IP-адреса призначення та публічний вихід, видимий сайту — це різні значення. Не слід називати одне іншим лише тому, що воно з’явилося в тому самому рукостисканні.