Сервер SOCKS5 может принять TCP-соединение, но отклонить запрос доступа к цели. Прочитайте ответ на правильном этапе, прежде чем решать, какой конечный узел не работает.

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

Ответы на запросы различают причины сбоев

Значение ответаСмысл в ответе на запрос SOCKS5
0x01Общий сбой сервера.
0x02Соединение не разрешено набором правил.
0x03Сеть недоступна.
0x04Хост недоступен.
0x05В соединении отказано.
0x06TTL истёк.
0x07Команда не поддерживается.
0x08Тип адреса не поддерживается.

Например, отказ на уровне запроса сообщается после достижения службы SOCKS. Это не то же самое, что отказ операционной системы в первоначальном TCP-соединении с этой службой.

Ошибка типа адреса может касаться представления IPv4, IPv6 или имени хоста. Она не означает автоматически, что конечный узел вообще не поддерживает SOCKS5. Аналогично неподдерживаемая команда UDP не позволяет сделать окончательный вывод об отдельном запросе TCP CONNECT.

Соберите контекст, придающий коду смысл

При составлении отчёта об ошибке сохраните с результатом адрес прокси, команду, целевые хост и порт, семейство адресов и режим DNS. Если вы управляете узлом, полезны серверные журналы политик. Отказ по правилам требует проверки применимого разрешения, а не увеличения тайм-аута соединения.

Ответ — сообщение сервера, а не полная независимая диагностика целевой сети. Формулировки клиентов тоже различаются. По возможности фиксируйте этап и исходный ответ, не полагаясь только на короткое переведённое сообщение об ошибке.

Похожие статьи