WSL2上でSSH経由のSOCKSプロキシを作りWindowsから使う

少し難しかったのでメモ。(主にWindowsのUIが)

ゴール

Windows上のブラウザから、他のサーバー経由でWebにアクセスする。例えば特定のIPアドレスからの接続を許可しているような場合に有効。

VPNやHTTPプロキシを使用しても同じようなゴールを達成できるが、今回はSSHクライアントで標準にサポートされているSOCKSプロキシを使う。プロキシとなるサーバに特別な設定が不要なので簡単。

WSL2上での操作

"-D" オプションを使いながらSSH接続する。

ssh <hostname> -D 1080

これだけで指定したポートでSOCKSプロキシを使うことができる。

試しに使ってみるには、例えば

curl --socks5-hostname localhost:1080 www.google.com -vv


ここまでは簡単。

Windows上での操作

難しいのがSOCKSプロキシを使うためのWindowsの設定。Settings->Network & Internet->Proxy

結論から言うと、Proxy serverのアドレスとして"socks=localhost"と入力するとよい。


この書き方はStack overflowのどこかで見かけた。動くとも思ってなかったので元URLのメモもしていなかった。このような書き方に関する公式ドキュメントはどこかにはあるのだろうが、自分はまだ見つけられていない。

なお、一度Saveして設定を閉じ、また同じ設定を開くと、アドレスが以下のように変化する。

しかし、このままSaveすると動作しないので、毎回手動で書き直すことが必要となる。

設定後、ブラウザを普通に起動しWebページにアクセスすると、自動的にSSH経由のSOCKSが使われる。

Comments

Popular posts from this blog

LinuxでUSBカメラ映像をストリーミングかつ録画する

Raspberry pi 4とUbuntu Server 20.04 64bitでRaspberry pi cameraを使う