Socks5 プロキシのデプロイ

ここでは、socks5 のインストール方法を2種類提供しています。問題を避けるため、関連する説明をよくお読みください。

UDP プロトコルのプロキシが必要な場合

socks5 udp プロキシの特性上、問題や複雑さが増える可能性があります。UDP を使用する必要がある場合は、以下のルールに従う必要があります。第一に、ホストシステムの OS は Linux である必要があり、ファイアウォールで UDP ポート 50000-55000 を開放する必要があります。第二に、サーバーのネットワークは NAT であってはなりません(FULL NAT も不可です。現在のクラウドサーバーの多くは NAT モードです)。

豆知識

なぜホストシステムが Linux である必要があるかというと、他のシステムでは Docker がこれほど広範囲のポートを正常にマッピングできない可能性があり、また、他のシステムでは Docker のネットワークモードをホストモードに設定できないためです。

サーバーのネットワークが NAT かどうかわからない場合は、ifconfig などのコマンドでデフォルトのネットワークインターフェースの IP アドレスを取得し、プロキシを使用したい場所からそのアドレスに ping を実行してください。PING が通らない場合、サーバーは NAT 環境下にある可能性があります。もちろん、条件を満たしていなくても UDP が使えないわけではありません。自分で gost を構築することも可能です。構築方法は本文書の最後に紹介します。

注目

SOCKS5 UDP プロキシの特性上、UDP が必要な場合は、ファイアウォールですべてのポートの UDP 通信を許可するように設定してください。

UDP プロトコルのプロキシが不要な場合

UDP プロトコルのプロキシが不要な場合、手順は非常に簡単です。以下のコマンドで SOCKS サービスを起動できます。

docker run -it --rm -p 1080:1080 --name socks -e LOGIN=username -e PASSWORD=passwd rev1si0n/socks5

送信ネットワークインターフェースの指定

サーバーやコンピュータに複数のインターネット接続可能なインターフェースがある場合、例えば家庭用PCで有線LANとWi-Fiでそれぞれ2つのネットワークに接続している場合、PCには wlan0eth0 のような2つのネットワークインターフェースが存在する可能性があります。そして、プロキシが使用する送信ネットワークを指定したい場合があるでしょう。eth0 を使用して送信したい場合は、以下のコマンドで SOCKS サービスを起動します。

注目

お使いのコンピュータまたはサーバーは Linux システムである必要があります。他のシステムではネットワークインターフェースの指定はサポートされていません。
docker run -it --rm --net host --name socks -e LOGIN=username -e PASSWORD=passwd -e DEV=eth0 rev1si0n/socks5

UDP を使用するためのすべての前提条件を満たしている場合は、以下のコマンドを使用します。

docker run -it --rm --net host --name socks -e LOGIN=username -e PASSWORD=passwd rev1si0n/socks5

GOST サービスの利用

UDP を使用したいが上記の条件を満たせない場合、または送信インターフェースの指定が不要な場合、あるいは Docker をインストールしたくない場合は、gost を試すことができます。 github.com/ginuerzh/gost/releases/ から、お使いのシステムに対応する実行ファイルの圧縮パッケージをダウンロードしてください。

gost -L=socks5://username:passwd@:1080

ヒント

すべてのデプロイ作業が完了したら、「プロキシの設定」の章を参照して、デバイスのネットワークプロキシを設定する方法を確認してください。