Wie kann ich mithilfe eines Befehls im Terminal feststellen, ob es sich bei einem Proxy um SOCKS oder HTTP handelt?

Wie kann ich mithilfe eines Befehls im Terminal feststellen, ob es sich bei einem Proxy um SOCKS oder HTTP handelt?

Gibt es einen einfachen Befehl, der in einem Linux-Terminal ausgeführt werden kann?um festzustellen, ob ein Proxy SOCKS oder HTTP ist?

Antwort1

Sie können prüfen, welcher der entsprechenden Ports geöffnet ist (z. B. mit Telnet). Socks verwendet normalerweise Port 1080, HTTP verwendet normalerweise 80, 443, 8443 oder 8080.

Antwort2

Außer einfach zu versuchen, ob es SOCKS oder HTTP ist, nein, das geht nicht.

So testen Sie, ob es sich um einen HTTP-Proxy handelt:

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

Dadurch wird das HTML-Stammverzeichnis von Google heruntergeladen. Wenn der Inhalt korrekt ist, wissen Sie, dass es sich um einen HTTP-Proxy handelte.

Antwort3

Verwenden Sie zur Überprüfung den folgenden Shell-Befehl 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")

Das vollständige Skript finden Sie untercheck_proxies.shDatei.

Antwort4

Auf meiner SLES11-VM führe ich Folgendes aus socklistund grepfür den Port:

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

Das sagt mir, ob es von SSH verwaltet wird oder nicht. Wenn Sie die Standardports verwenden, ist HTTP 80 und SSH 22. Damit haben Sie den Anfang gemacht – stellen Sie weitere Fragen, wenn Sie genauere Angaben benötigen.

verwandte Informationen