私のシステム:
Local: Arch Linux
VPS: Linode uubuntu 20.04.1
Standard Wireguard Package on both ends
だから私はエアDCPPD、ローカル マシン上の 3 つのポートを使用してトラフィック情報を転送するファイル共有プログラム。
彼らです:
23288/tcp
21500/udp
13875/tcp
私がやりたいのは、これらのポートを VPS Wireguard に転送して、ポートがサーバー側で実行され、一般に公開されているように見えるようにすることです。
これを実現するために、次のガイドに従って Wireguard インターフェイス設定を変更しました。
私の設定は次のようになります:
地元:
[Interface]
PrivateKey = <my key>
Address = 10.66.66.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,94.140.15.15
# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1
# port forwarding
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
Endpoint = vps.ip.address:49503
AllowedIPs = 0.0.0.0/0,::/0
サーバ:
[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = <my key>
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
### Client name
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
おそらくお分かりのように、ローカルのWireguard内部アドレスは次の通りです。10.66.66.2
サーバーの場合は次の通りです。10.66.66.1
ここで何が起きているかというと、23288
VPN なしでも開いているように見えるローカル マシンのローカル ポートが、ポート チェッカーでチェックした後も開いていると表示されます。他の 3 つのポートはまだ閉じていますが、メインのポートが開いているのでそれほど心配する必要はありません。私の目的にはそれで十分です。他のポートも、VPN なしでも閉じていると表示されます。
現時点ではファイアウォールは使用されていませんが、これが機能するようになったら、関係するすべてのポートを許可する予定です。
問題は、パッケージが VPN 経由で送信された後に何が起こるかです。パッケージはローカルに戻ってこないようです。ご覧のとおり、3 つのポート上のすべてのパッケージをローカル マシンに送り返すルールを設定しました。しかし、何らかの理由でパッケージが取得されず、アプリに表示されるairdc
べきものが表示されません。
これらのポートのトラフィックをローカル マシンに「転送」しようとして、何か間違ったことをしたのでしょうか。ローカル アプリがパッケージを受け取るには、これが正しい方法でしょうか。そうでない場合、これら 3 つのポートに転送されたものが適切に返されるように、VPS Wireguard 構成を設定する正しい方法は何でしょうか。
ご覧いただきありがとうございます!
編集: サービスにアクセスするために使用するローカル ポートは http://localhost:5960 です。これを VPN で使用して、Web からもアクセスできるようにしたいので、次のようになります。https://vps.ip.address:5960しかし、上記と同じ構文でローカル ポート 5960 をサーバーに転送する行を追加しても、まだ機能しません。これが全体を機能させるための鍵なのでしょうか?
答え1
代わりに、VPS 側からローカル マシンの内部 IP にポートを転送する必要があります。自宅のルーターから PC のローカル アドレスに転送するのと同じです。ローカル マシンを VPS に接続しないでください。