Использовать пинг через SOCKS сервер? - PullRequest
4 голосов
/ 11 марта 2011

Я хотел бы проверить периодичность, если мой сервер SOCKS работает нормально.Для этого я подумал о пинге 8.8.8.8 (google DNS server) через сервер SOCKS.

Есть ли другой рекомендуемый способ?Если это оптимально, как я могу пропинговать через SOCKS с python?

Ответы [ 4 ]

7 голосов
/ 11 марта 2011

SOCKS-прокси предоставляет прокси-сервис TCP (SOCKS 5 добавлена ​​поддержка UDP).Вы не можете выполнить эхо ICMP «через» прокси-службу SOCKS.

Даже если бы вы могли, вы бы тестировали эхо-ответ ICMP и эхо-ответ, а не то, что ваш сервер SOCKS работает нормально.

Если вы хотите проверить, нормально ли работает ваш SOCKS-сервер, я бы предложил открыть локальный прослушивающий порт, а затем попытаться подключиться к нему через службу SOCKS.

4 голосов
/ 10 июня 2016

Вы можете использовать httping для проверки сети через сервер SOCKS вместо обычного ping.

ping: отправлять пакеты ICMP ECHO_REQUEST на сетевые хосты
httping: измерятьзадержка и пропускная способность веб-сервера

ICMP работает на уровне 3 (сетевой уровень) модели OSI, SOCKS работает на уровне 5 (уровень сеанса), httping работает на уровне 7 (уровень приложения), поэтомуСообщение ping не может пройти через SOCKS, но сообщение httping может.

Например, я настраиваю сервер shadowsocks (прокси SOCKS5) в VPS, использую мой macbook pro в качестве клиента, используя 127.0.0.1: 1080, и я хочу проверить, хороша ли сеть для Google.

httping -x 127.0.0.1:1080 -g http://www.google.com -5

снимок экрана httping через Google SOCKS5

httping usage httping [options] -5 The proxy server selected is a SOCKS5 server. -g url This selects the url to probe. E.g.: http://localhost/ -x proxyhost[:port] Probe using a proxyserver.

1 голос
/ 28 апреля 2015

Вы можете использовать curl, чтобы получить какой-то веб-сайт через эти носки, если есть правильный ответ, то с прокси-сервером socks все в порядке. Например

curl --socks5 127.0.0.1:1080 ifconfig.me

если вы получили предупреждение, значит, у вас непригодные носки

curl: (7) Unable to receive initial SOCKS5 response.
0 голосов
/ 11 марта 2011

Я бы так и поступил, и, вероятно, было бы проще всего выполнить команду ping вашей операционной системы с помощью подпроцесса и проанализировать вывод с помощью регулярного выражения.


edit

Есть пример на activestate , который проходит большую часть пути, вам просто нужно изменить сокет, чтобы как-то указать свой прокси, однако это не совсем моя область, поэтому яне знаю, как ты это сделаешь.

...