ターミナルのコマンドを使用して、プロキシが 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

確認するには、次のシェル コマンドを使用します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 になります。これで開始できます。詳細が必要な場合は、さらに質問してください。

関連情報