Как узнать, является ли прокси-сервер SOCKS или HTTP, с помощью команды в терминале?

Как узнать, является ли прокси-сервер SOCKS или HTTP, с помощью команды в терминале?

Есть ли простая команда для запуска в терминале Linux?чтобы узнать, является ли прокси-сервер SOCKS или HTTP?

решение1

Вы можете проверить, какой из соответствующих портов открыт (например, с помощью telnet). Socks обычно использует порт 1080, HTTP обычно использует 80, 443, 8443 или 8080.

решение2

Кроме как просто попробовать, SOCKS это или HTTP, нет, вы не сможете.

Чтобы проверить, является ли это http-прокси:

set http_proxy = http://1.0.0.1:8080 
wget --proxy=on http://www.google.com/

Это загрузит корневой HTML-каталог Google, и если он имеет корректное содержимое, вы будете знать, что это был http-прокси.

решение3

curlДля проверки используйте следующую команду оболочки :

ip=127.0.0.1
port=8080
(timeout 2 curl -x socks5://$ip:$port -qs -o/dev/null http://example.com/ && printf "socks5\t$ip\t$port\n") \
|| (timeout 2 curl -x socks4://$ip:$port -qs -o/dev/null http://example.com/ && printf "socks4\t$ip\t$port\n") \
|| (timeout 2 curl -x http://$ip:$port -qs -o/dev/null http://example.com/ && printf "http\t$ip\t$port\n")

Для полного сценария проверьтеcheck_proxies.shфайл.

решение4

На моей виртуальной машине SLES11 я запускаю socklistдля grepпорта:

dev-s11:~ # socklist | grep 22
tcp 22 21112 0 4345 3 sshd
tcp 22 10473174 0 32616 3 sshd

Это говорит мне, управляется ли он ssh или нет. Если вы используете порты по умолчанию, http будет 80, а ssh 22. Это поможет вам начать — задавайте больше вопросов, если вам нужна дополнительная информация.

Связанный контент