まず、これは重複ではありません。 OpenVPNまたはIPSec以外のすべてを試しました。クライアントとサーバー間でハンドシェイクを受信し、SSHとPingはクライアント間で機能しますが、グローバルインターネットにアクセスできず、サーバーのパブリックIPにもアクセスできません。私の設定は通常のキー、エンドポイントであり、Linodeガイドに正確に従いました。私のクライアントはopenSUSEですが、サーバーはubuntuであり、これがチョークポイントであると想定しています。
承認された回答:
これはまさに私が持っていた状況です。サーバーにはパブリックIPがありますか、それともNATの背後にありますか? NATの背後にある場合は、PostUp
およびPostDown
Linodeガイドのiptablesコマンドは適用されません。
eth0
を変更して、サーバー構成ファイルに以下を追加してみてください あなたのコンピュータがそれを呼ぶものは何でも:
PreUp = iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
PreDown = iptables -t nat -D POSTROUTING -j MASQUERADE -o eth0
ソース:https://unix.stackexchange.com/questions/530790/wireguard-not-routing-traffic-from-client-to-other-servers-on-the-network
設定例
これは、ルーターが10.0.1.1(通常のネットワーク)で、10.0.0.xが新しいWireGuardネットワークであり、サーバーが10.0.0.1用に構成され、クライアントが10.0.0.2用に構成されている構成例です。使用されるポートは51820で、デフォルトのネットワークインターフェイスはeth0です。すべてのトラフィックはWireGuardを介してルーティングされますが、WireGuardサブネット内にとどまりません。クライアントは、サーバーのローカルネットワーク(10.0.1.x)と一般的なインターネットにアクセスできます。ルーターからサーバーに51820ポートを転送し、サーバーでipv4転送を有効にすることを忘れないでください(# sysctl -w net.ipv4.ip_forward=1
)
サーバー構成
[Interface]
Address = 10.0.0.1/24
PrivateKey = YOUR_SEVER_PRIVATE_KEY
ListenPort = 51820
PreUp = iptables --table nat --append POSTROUTING --jump MASQUERADE --out-interface eth0
PreDown = iptables --table nat --delete POSTROUTING --jump MASQUERADE --out-interface eth0
[Peer]
PublicKey = YOUR_CLIENT_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32
クライアント構成
[Interface]
Address = 10.0.0.2/24
DNS = 10.0.1.1
PrivateKey = YOUR_CLIENT_PRIVATE_KEY
ListenPort = 51820
[Peer]
PublicKey = YOUR_SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = YOUR.DYNAMIC_DNS.COM:51820