如何使用終端機中的命令判斷代理程式是 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/

這將下載google的html根目錄,如果它有正確的內容,你就知道它是一個http代理。

答案3

使用以下 shell 命令來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 VM 上,我為連接埠運行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。

相關內容