Wireguard:Linuxゲストで実行されているサービスは、VPNに接続しているとインターネットからアクセスできません。

Wireguard:Linuxゲストで実行されているサービスは、VPNに接続しているとインターネットからアクセスできません。

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/0Linux ゲストにデフォルトパスが VPN トンネルを通過することを伝えます。これは、ポート転送を介して着信するすべてのインターネットトラフィックがVPNトンネルを介して応答されることを意味します。

ローカルトラフィックが機能する理由は、Linuxゲストと同じネットワーク上にあるため、戻りトラフィックがどのネットワークに応答する必要があるかを知ることができるからです。

Wireguardトンネリングを有効にする理由は不明であるため、最終的な解決策に正確な答えを与えることはできません。しかし、AllowedIPsより具体的なネットワークに変更する必要があります。

たとえば、ネットワークに向かうパケットAllowedIPs=100.81.66.0/24のみを送信したい場合です。100.81.66.0/24VPN 経由で希望のルートを取得するには、複数のネットワークをコンマで区切ることができます。

おすすめ記事