アクティブなOpenVPNクライアントを搭載したコンピュータでWireguardサーバーを実行する必要があります。 Wireguard サーバーに接続されたクライアントは、NAT 経由で「tun0」の OpenVPN クライアントに接続し、そのインターフェイスを介してインターネットにアクセスします。
以前は、独自のtun / tapインターフェース(Shadowsocksなど)を持たない他のVPNソリューションを使用して同様の設定を作成する必要がある場合、iptables 'fwmark'を使用してton0インターフェースを介してルーティングされないパケットを表示していました。 VPNを開くために作成されました。
ローカルIP 10.3.0.11(ポート2000のVPNサーバー)を使用するサーバーで次のコマンドを順番に実行すると、VPNサーバーに接続してアクティブなOpenVPNクライアントでインターネットを検索できます。
ip route add default via 10.3.0.11 dev eth0 table 7
ip rule add fwmark 0x55 priority 1000 table 7
ip route flush cache
iptables -t mangle -A OUTPUT -p udp --sport 2000 -j MARK --set-mark 0x55
iptables -I INPUT -p udp -m udp --dport 2000 -j ACCEPT
ただし、Wireguardは独自のインターフェース(wg0)を生成するため、このソリューションは機能しません。 OpenVPNクライアントが接続を確立すると、Wireguardサーバーにアクセスできなくなります。
UDPポート3333で実行されているWireguardサーバーへの接続をブロックするファイアウォールがないことを確認しましたが、OpenVPN接続が有効になっていない場合でも接続は正常に機能します。
OpenVPN が接続される前の「route -n」の出力です。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
10.33.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
169.254.0.0 0.0.0.0 255.255.0.0 U 1040 0 0 eth0
OpenVPN 接続後の「route -n」の出力です。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
10.8.8.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.33.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
128.0.0.0 10.8.8.1 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1040 0 0 eth0
<OVPN Server> 10.0.0.1 255.255.255.255 UGH 0 0 0 eth0
Wireguardの設定ファイルです。
[Interface]
Address = 10.33.0.1/24
Address = fd33:3300::1/64
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o tun0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o tun0 -j MASQUERADE
ListenPort = 3333
FwMark = 0x55
PrivateKey = <private key>
[Peer]
PublicKey = <public key>
AllowedIPs = 10.33.0.11/32, fd33:3300::11/128
サーバー構成をどのように変更しますか?
- クライアントはUDPポート3333を介してWireguardサーバーに接続できます。
- クライアントは、すべてのインターネットトラフィックをtun0(OpenVPNで生成)を介してルーティングするWireguardサーバーを介してインターネットにアクセスできます。