前書き#
先日、市場監督局に企業を解散させたため、企業の登録ドメインも工信部によって登録が取り消され、ウェブサイトにアクセスできなくなりました。ウェブサイトを停止することにしましたが、数年後のサーバーがまだ残っているので、惜しいと思い、Oracle の無料の小さなマシンを使用して中継を実現することにしました。やるぞ!WireGuard で簡単にネットワークを構築し、ピーク時に UDP プロトコルの干渉が非常に厳しくなり、MTU 値の問題にも長い間悩まされました。私は怒って GitHub で使えるプロジェクトを探しましたが、実際に udp2raw プロジェクトを見つけました。サービスを実行しました... 終わり!
WireGuard と UDP2RAW#
WireGuard
Linux の創始者が「芸術品」と称するネットワーク構築ツール
公式ウェブサイト:https://www.wireguard.com/
UDP2RAW
クロスプラットフォーム版の UDP2RAW、略して UDP2RAW_MP(MP=Multiplatform)、Windows/Mac/BSD/Linux をサポートしています。
プロジェクトのアドレス:https://github.com/wangyu-/udp2raw-multiplatform
日本語のドキュメント:https://github.com/wangyu-/udp2raw-multiplatform/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E7%AB%A0
実現原理#
設定#
WireGuard の設定#
サーバーマシンで、ポート 4321 を監視し、転送されたトラフィックを受け取るために、インターフェースを追加します。
[Interface]
PrivateKey = # プライベートキー
Address = 10.2.0.1/24
PostUp = iptables -A FORWARD -i wg2 -j ACCEPT; iptables -A FORWARD -o wg2 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg2 -j ACCEPT; iptables -D FORWARD -o wg2 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 4321
DNS = 8.8.8.8
MTU = 1200
[Peer]
PublicKey = # マシンBの公開鍵
AllowedIPs = 10.2.0.2/32
クライアントマシンでも同様にインターフェースを追加し、エンドポイントを 127.0.0.1:3333 に設定し、udp2raw にトラフィックを転送します。
[Interface]
PrivateKey = # プライベートキー
Address = 10.2.0.2/24
DNS = 8.8.8.8
MTU = 1200
[Peer]
PublicKey = # マシンAの公開鍵
Endpoint = 127.0.0.1:3333
AllowedIPs = 10.2.0.0/24
設定が完了したら、詳細なコマンドについては記事の関連文書を参照してください。
UDP2RAW の設定#
サーバーでバックグラウンドで次のコマンドを実行します:
nohup ./udp2raw_x86 -s -l0.0.0.0:54321 -r 127.0.0.1:4321 -a -k "passwd" --raw-mode faketcp > udp2raw.log 2>&1 &
サーバーの 54321 ポートを開放する必要があります。
クライアントでバックグラウンドで次のコマンドを実行します:
nohup ./udp2raw_x86 -c -l0.0.0.0:3333 -r 175.178.196.126:54321 -k "passwd" --raw-mode easy-faketcp > udp2raw.log 2>&1 &
設定が完了しました。