У меня есть сервер dante socks, который настроен на прослушивание IP-адреса ipv4 и внешний IP-адрес ipv6.
Я пытаюсь понять, как проверить, действительно ли это работает.
Я пытался использовать curl
но если я наберу:
curl http://google.com --socs5 1.2.3.4:9000
Я получаю сообщение об ошибке на стороне носков даты, потому что google.com
разрешает IPv4-адрес, и Данте говорит, что он не может маршрутизировать IPv4, потому что у него нет IPv4-адреса, настроенного как внешний. Что вполне ожидаемо.
Затем я нашел -6
параметр для локона. Теперь решает google.com
на IPv6-адрес, но теперь также пытается разрешить 1.2.3.4
на неправильный IPv6-адрес.
Если я попытаюсь явно использовать IPv6 в качестве URL-адреса для curl, я получаю сообщение об ошибке:
curl 'http://[2a00:1450:400c:c03:0:0:0:8b]/' --socks5 1.2.3.4:9000
Также я пытался использовать прокси-цепочки с telnet, но кажется, что если я укажу IPv4-адрес в качестве прокси в прокси-цепях:
socks5 1.2.3.4
Он незаметно игнорирует этот прокси и выполняет прямой запрос при использовании IPv6 с telnet:
proxychains telnet 2a00:1450:400c:c03:0:0:0:8b 25
Итак, как мне подключиться по telnet к чему-либо с адресом IPv6 через прокси-сервер socks на адресе IPv4?
То, что вы видите, является одной из многих причин, по которым почти всегда лучше отправить имя хоста через SOCKS и позволить серверу SOCKS преобразовать его в IP-адрес, а не разрешать IP-адрес на клиенте SOCKS.
в curl
На странице руководства я нахожу упоминание о двух разных параметрах SOCKS5 в зависимости от того, с какой стороны вы хотите разрешить имя хоста. --socks5
разрешит имя хоста на клиенте, --socks5-hostname
разрешит имя хоста на сервере. Я рекомендую использовать позже. Другой SOCKS
клиенты могут также нуждаться в настройке для разрешения имени хоста на сервере SOCKS. Например, я обнаружил, что Firefox разрешает имена хостов на стороне клиента по умолчанию, но вместо этого у него есть опция конфигурации, позволяющая делать это на сервере.
Также предложения страницы руководства с использованием --proxy
скорее, чем --socks*
параметры. По моему мнению, правильный синтаксис для вашего случая будет --proxy socks5h://192.0.2.4:9000/