Есть ли простая команда для запуска в терминале Linux, чтобы определить, является ли прокси SOCKS или HTTP?
4 ответа
А потом просто пытаться, если это SOCKS или HTTP, нет, вы не можете.
Чтобы проверить, является ли это http-прокси:
set http_proxy = http://1.0.0.1:8080
wget --proxy=on http://www.google.com/
Это загрузит html-корень Google, и если у него будет правильное содержание, вы знаете, что это был http-прокси.
Вы можете проверить, какой из соответствующих портов открыт (например, используя telnet). Носки обычно используют порт 1080, HTTP обычно использует 80, 443, 8443 или 8080.
На моей виртуальной машине 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. Это поможет вам начать - спросите больше вопросов, если вам нужно больше подробностей.
Используйте следующую команду оболочки с 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
.