Wireguardハンドシェイクを試みましたが、pingに失敗しました。

Wireguardハンドシェイクを試みましたが、pingに失敗しました。

静的IPを使用するサーバーと私のホームローカルネットワーク上のクライアントがあります。私が達成したいのは、2つの間のVPN接続です(後でより多くのクライアントを追加できますが)。 VPNサーバーを介してインターネットに接続する必要はなく、直接接続するだけです。

サーバーでUbuntu 18.04 LTSを実行していても、サーバーがカーネルの変更を許可しないOpenVZ仮想サーバーであるため、wireguardカーネルモジュールは使用できません。だから私はサーバーでwireguard-goを使用しています。バラより私の以前の投稿その問題を議論するために。

サーバーは次のように構成されます。

[Interface]
PrivateKey = ...
ListenPort = 51944

[Peer]
PublicKey = ...
AllowedIPs = 192.168.177.5/32

そして

sudo ip addr add 192.168.177.4/32 dev wg0

IPアドレスを設定します。

クライアント(Ubuntu 18.04 LTS)も次のように構成されています。

[Interface]
PrivateKey = ...
Address = 192.168.177.5/32

[Peer]
PublicKey = ...
AllowedIPs = 192.168.177.4/32
Endpoint = [static IP of my server]:51944
PersistentKeepalive = 25

そして始まる

sudo wg-quick up wg0

サーバーとクライアントの出力でsudo wgハンドシェイクが機能していることがわかります。しかし、どちらかをpingしようとすると、コメントプロンプトが永遠に待機します。

私に何の問題があるのか​​知っている人はいますか?

ベストアンサー1

問題は、WireGuardの問題ではなく、クライアントとサーバーのルーティングが失われているようです。

サーバーが 192.168.177.4/32 に指定されている場合、192.168.177.5/32 にはパスはありません。標準のルーティング部分の場合は、疑わしい場合はコマンドを実行して、パスがどこに行くかカーネルに尋ねます。例えば仕える人:

ip route get 192.168.177.5

答えがWireGuardインターフェイスを提供していない場合、ルータはそれを使用しないことを意味します(トンネルにトラフィックがまったくありません)。

可能なオプションは次のとおりです。

  • 足りないパスを追加

    sudo ip route add 192.168.177.5/32 dev wg0
    
  • 自動ルーティングが含まれ、カーネルによって追加されるようにアドレスを別々に追加します。

    • ピアアドレスがある

      sudo ip address add 192.168.177.4 peer 192.168.177.5/32 dev wg0
      
    • または、少なくとも/31(パスに192.168.177.5を含める場合)です。 / 24も利用可能

      sudo ip address add 192.168.177.4/31 dev wg0
      
  • または、最も単純な/ 31などの構成にアドレスを追加するか、/ 24などのより大きなアドレスを追加します。サーバーとクライアントは同じ役割を持つため、異なる方法でアドレスを構成する理由はありません。

    Address = 192.168.177.4/31
    

同様に、クライアント構成を変更します。

Address = 192.168.177.5/31

標準ルーティングとWireGuardの暗号化キールーティングAllowedIPsここでこの設定に合ったものを選択するために使用します)作業結果は正確でなければなりません。ピアを追加する場合は、より広いルーティングを使用する必要があるかもしれませんが、AllowedIPs暗号化キーのルーティングに必要な限り厳密な設定を維持する必要があります。

おすすめ記事