web-dev-qa-db-ja.com

Socks5プロキシが機能するかどうかを確認する方法

Linux端末を使用して、Socks5プロキシが機能するかどうかを確認する簡単な方法はありますか?

37
tony_sid

自分でプロキシを作成した場合は、まず開いているポートがあるかどうかを確認する必要があります(p引数は、関係するプロセスが自分のものであるか、自分がルートである場合にのみ機能します)。

netstat -tlnp

これにより、次のような行が表示されます((localhost:8888

tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN

そのような回線を見つけた場合、またはプロキシが自分のものではない場合は、それを介してパケットを送信してみてください。たとえば、curlを使用してWebページをリクエストします。

curl --socks5 localhost:8888 binfalse.de

いくつかのHTMLを出力する必要があります。これが間違いの検索に役立つことを願っています;-)


Aux:私の例では、次の方法でプロキシを作成しました。

ssh -o ServerAliveInterval=60 -D8888 someone@somewhere

someoneをユーザー名に、somewhereを宛先サーバーに置き換えます。もちろん、OpenSSHを使用することは、可能なsocks5プロキシの束の1つの方法にすぎません。

40
binfalse

Curlで反対側のDNSを解決するには、--socks5--socks5-hostname

詳細は manページ を参照してください。

7
Sindre Svendby

次のコマンドは、Socks 5プロキシがlocalhost:8080で動作するかどうかをテストします。

timeout 5 curl -x socks5://localhost:8080 http://example.com/

それ以外の場合は、5秒後にタイムアウトします。 timeoutコマンドがない場合は、削除してください。

5
kenorb

Netcatに接続し、 RFC 1928 のルールに従ってサーバーと通信できます。ただし、印刷不可能な文字を入力して読み取るか、さらに詳しく調べるためにファイルに記録する必要があります。

たとえば、それがSOCKS5サーバーであるかどうかをテストし、それがサポートするno-auth、gssapi、またはusr + pwd認証方法を見つけるには、0x05 0x03 0x00 0x01 0x02を送信します。 usr + pwd認証を使用するように準備されたSOCKS5サーバーは、0x05 0x02と応答します。

または、SOCKS5サーバーであり、認証なし(メソッド0)が機能するかどうかを確認する方法は次のとおりです。

echo 050100 | xxd -p -r | netcat -o out.txt {server} {port}

それを中断した後、out.txtの終わり近くで、サーバーがそのメソッド(0)をサポートしている場合は0x05 0x00を生成し、サポートしていない場合は0x05 0xFFを生成しているはずです。

2
jchevali