Windowsホスト上のvmwareで実行されているLinuxゲストで複数のサービスを実行しています。 Linuxクライアントでは、次の設定を使用してWireguardクライアントをVPNプロバイダに接続します。
[Interface]
PrivateKey = Redacted
Address = 100.81.66.38/32
DNS = 10.255.255.1
[Peer]
PublicKey = Redacted
AllowedIPs = 0.0.0.0/0
Endpoint = den-301-wg.whiskergalaxy.com:443
PresharedKey = Redacted
私のルーターは常にネットワークを介して自分のサービスに接続できるフレンドリーな名前を持つようにDDNSクライアントを実行し、ポート転送を使用してさまざまなサービス(ssh、ftpなど)にアクセスします。
Wireguardクライアントを接続する前はインターネットを介してサービスに正しくアクセスできましたが、wg-quick up wg0
Linuxゲストに接続した後はインターネットからサービスにアクセスできなくなりました。私のLinuxゲストのローカルIPアドレス(ローカルLAN上)を使用して引き続きアクセスできます。インターネット上のルーターの公開アドレスを使用して連絡できないようです。
私のローカルLANからSSHサーバーのようなものにアクセスできる場合、ルーターから転送されたポートもまったく同じローカルIPアドレスを指しているので、うまくいくと思ったので、これは奇妙です。興味深いことに、Windowsを実行するだけでなく、他のゲストでも同様の設定が実行されています。ここでは、Wireguard クライアントを接続でき、ルーターのパブリック IP とポート転送を介して、そのゲストで実行されている Web サービスに引き続きアクセスできます。 Linux ゲストだけが別のタスクを実行します。
似たようなことをしてみましたがsysctl -w net.ipv4.ip_forward=1
役に立たないようです。私も試してみましたが、AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
何も変わりませんでした。ローカルでは常にアクセスできますが、インターネット経由ではアクセスできません。電線保護装置を取り外すと、すべてが再び動作を開始しました。
答え1
あなたのストーリーを通して、あなたは外部のVPNプロバイダーを持っていて、いくつかのサービスをホストしているLinuxゲストをそのVPNプロバイダーに接続したいと考えています。 Linuxクライアントを指すローカルルータにもポート転送があります。
トンネリングをイネーブルにすると、Linux ゲストでホストされているサービスはポート転送を通じて利用できなくなりますが、それでも内部サービスです。
この問題は、Linuxクライアントのルーティングの問題が原因で発生します。これは配線によって引き起こされますAllowedIPs=0.0.0.0/0
。
この行はAllowedIPs=0.0.0.0/0
Linux ゲストにデフォルトパスが VPN トンネルを通過することを伝えます。これは、ポート転送を介して着信するすべてのインターネットトラフィックがVPNトンネルを介して応答されることを意味します。
ローカルトラフィックが機能する理由は、Linuxゲストと同じネットワーク上にあるため、戻りトラフィックがどのネットワークに応答する必要があるかを知ることができるからです。
Wireguardトンネリングを有効にする理由は不明であるため、最終的な解決策に正確な答えを与えることはできません。しかし、AllowedIPs
より具体的なネットワークに変更する必要があります。
たとえば、ネットワークに向かうパケットAllowedIPs=100.81.66.0/24
のみを送信したい場合です。100.81.66.0/24
VPN 経由で希望のルートを取得するには、複数のネットワークをコンマで区切ることができます。