Сервер SOCKS5 може прийняти TCP-з’єднання, але відхилити запит доступу до цілі. Прочитайте відповідь на правильному етапі, перш ніж вирішувати, яка кінцева точка не працює.

Спершу обирається метод. Автентифікація за ім’ям і паролем, якщо обрана, має власний результат. Лише потім сервер повертає відповідь на CONNECT чи іншу команду SOCKS. Значення байта одного етапу не можна тлумачити за таблицею іншого.

Відповіді на запити розрізняють причини помилок

Значення відповідіЗначення у відповіді на запит SOCKS5
0x01Загальна помилка сервера.
0x02З’єднання не дозволене набором правил.
0x03Мережа недосяжна.
0x04Хост недосяжний.
0x05У з’єднанні відмовлено.
0x06TTL закінчився.
0x07Команда не підтримується.
0x08Тип адреси не підтримується.

Наприклад, відмова на рівні запиту повідомляється після досягнення служби SOCKS. Це відрізняється від відмови операційної системи у початковому TCP-з’єднанні з цією службою.

Помилка типу адреси може стосуватися подання IPv4, IPv6 чи імені хоста. Вона не означає автоматично, що кінцева точка зовсім не підтримує SOCKS5. Так само непідтримувана команда UDP не дає остаточного висновку про окремий запит TCP CONNECT.

Зберіть контекст, що робить код корисним

Під час написання звіту про помилку зберігайте з результатом адресу проксі, команду, цільовий хост і порт, сімейство адрес і режим DNS. Якщо ви адмініструєте кінцеву точку, корисні серверні журнали політик. Відмова за правилами потребує перевірки застосовного дозволу, а не збільшення часу очікування з’єднання.

Відповідь — повідомлення сервера, а не повна незалежна діагностика цільової мережі. Формулювання клієнтів теж різняться. За можливості записуйте етап і початкову відповідь, не покладаючись лише на коротке перекладене повідомлення про помилку.

Схожі статті