0
WSL2からホスト(Windows)上に立てたProxy経由で通信したい
2023-12-13

諸般の事情によりWSLから外への通信をWSL以外の何かしらを経由して通信するという要件が発生した

WSL以外の何かしらにプロキシを設置する

Virtualboxでプロキシ用VMを起動するという選択肢が提示されたがそのためだけにVirtualBox起動するのはな…ということで、結局GitBashでpproxyを起動することにした

Windows側

Pythonのインストール

参考:Windows PC へのPython3 導入手順 #Python - Qiita

環境変数PATHにも追加チェックボックにチェックした

これでWindows側でpy.exeが使えるようになるらしい

pproxyのインストール

GitBashを入れているのでGitBashから下記実行した

$ py -m pip install pproxy

pproxyの実行

$ py -m pproxy
Serving on :8080 by http,socks4,socks5

これだけでOKっぽい、簡単

カスタマイズしようと思えばいろいろできるみたいだが今回は不要だったのでこのまま

WSL2側

ホスト(Windows)側IPの特定

まずWindows側で立てたプロキシがどこかを判断する必要がある

$ ip route | grep 'default via' | awk '{print $3}'
172.1.1.1

$ ip route | grep 'default via' | grep --color=no -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
172.1.1.1

どちらかが良さそう

このIPがWSLから見えるホスト側のIPなのでこの場合172.1.1.1:8080をプロキシとして指定する

httpでアクセス

$ curl -x http://172.1.1.1:8080 https://{proxyが必要なアクセス先URL}/

ssh設定

プロキシを通したいホストに対して下記設定を追加

  • ssh/config
ProxyCommand nc -X 5 -x 172.1.1.1:8080 %h %p

SOCKS5プロトコルでプロキシ通す設定

SOCKS4,5の違い

そもそもSOCKS4,5は

Socket Secure version 4,5の略らしい

SOCKS5プロキシのメリットとは? | NordVPN

SOCKS5とSOCKS4はともにSOCKSプロトコルですが、SOCKS4は「UDP接続には利用できない」「プロキシ側に名前解決させることができない」「わずかな認証機能しかサポートしていない」という問題を抱えているのに対し、SOCKS5ではそれらの問題が解決されています。

基本的にSOCKS5を使ったほうが良さそう

HTTPプロキシとSOCKSプロキシの違い

HTTPプロキシはHTTPおよび HTTPSウェブページのみで動作するのに対し、SOCKS5プロキシはあらゆるトラフィックに対応しています。

HTTPプロキシとは、通常、特定のプロトコル用に設計された高レベルのプロキシを指します。これにより接続速度は向上しますが、SOCKSプロキシほど柔軟性や安全性は高くありません。SOCKSプロキシはHTTPプロキシよりも低レベルで動作するため、あらゆるプログラムやプロトコル、あらゆるトラフィックを制限なく扱うことができます。

0

Profile

swfz
swfz
日々学んだことを残していく
Today I Learned
コード片置き場

Account

RSS

Powered by Pixela
© 2024. swfz