7.10. nmcli を使用した WireGuard クライアントの設定


NetworkManager で接続プロファイルを作成することで、WireGuard クライアントを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。

この手順では、次の設定を前提としています。

  • クライアント:

    • 秘密鍵: aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
    • トンネル IPv4 アドレス: 192.0.2.2/24
    • トンネル IPv6 アドレス: 2001:db8:1::2/32
  • サーバー

    • 公開鍵: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
    • トンネル IPv4 アドレス: 192.0.2.1/24
    • トンネル IPv6 アドレス: 2001:db8:1::1/32

前提条件

  • サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
  • 以下の情報を把握している。

    • クライアントの秘密鍵
    • クライアントの静的トンネルの IP アドレスとサブネットマスク
    • サーバーの公開鍵
    • サーバーの静的トンネル IP アドレスおよびサブネットマスク

手順

  1. NetworkManager WireGuard 接続プロファイルを追加します。

    # nmcli connection add type wireguard con-name client-wg0 ifname wg0
    Copy to Clipboard Toggle word wrap

    client-wg0 という名前のプロファイルを作成し、そのプロファイルに仮想インターフェイス wg0 を割り当てます。

  2. オプション: NetworkManager が client-wg 接続を自動的に起動しないように設定します。

    # nmcli connection modify client-wg0 autoconnect no
    Copy to Clipboard Toggle word wrap
  3. クライアントのトンネル IPv4 アドレスとサブネットマスクを設定します。

    # nmcli connection modify client-wg0 ipv4.method manual ipv4.addresses 192.0.2.2/24
    Copy to Clipboard Toggle word wrap
  4. クライアントのトンネル IPv6 アドレスとサブネットマスクを設定します。

    # nmcli connection modify client-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::2/32
    Copy to Clipboard Toggle word wrap
  5. すべてのトラフィックをトンネル経由でルーティングする場合は、サーバーのトンネル IP アドレスをデフォルトゲートウェイとして設定します。

    # nmcli connection modify client-wg0 ipv4.gateway 192.0.2.1 ipv6.gateway 2001:db8:1::1
    Copy to Clipboard Toggle word wrap

    すべてのトラフィックをトンネル経由でルーティングするには、後の手順で、このクライアントの allowed-ips0.0.0.0/0;::/0 に設定する必要があります。

    すべてのトラフィックをトンネル経由でルーティングすると、サーバーのルーティングとファイアウォールの設定によっては他のホストへの接続に影響が及ぶ可能性があることに注意してください。

  6. クライアントの秘密鍵を接続プロファイルに追加します。

    # nmcli connection modify client-wg0 wireguard.private-key "aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A="
    Copy to Clipboard Toggle word wrap
  7. このクライアントとの通信を許可するサーバーごとにピア設定を追加します。これらの設定は手動で追加する必要があります。nmcli ユーティリティーでは、対応する接続プロパティーの設定をサポートしていないためです。

    1. /etc/NetworkManager/system-connections/client-wg0.nmconnection ファイルを編集し、以下を追加します。

      [wireguard-peer.UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=]
      endpoint=server.example.com:51820
      allowed-ips=192.0.2.1;2001:db8:1::1;
      persistent-keepalive=20
      Copy to Clipboard Toggle word wrap
      • [wireguard-peer.<public_key_of_the_server>] エントリーは、サーバーのピアセクションを定義します。セクション名には、サーバーの公開鍵が含まれます。
      • endpoint パラメーターは、サーバーのホスト名または IP アドレスとポートを設定します。クライアントはこの情報を使用して接続を確立します。
      • allowed-ips パラメーターは、このクライアントにデータを送信できる IP アドレスのリストを設定します。たとえば、このパラメーターを次のように設定します。

        • サーバーのトンネル IP アドレスに設定すると、そのサーバーのみがこのクライアントと通信できるようになります。上記の例の値を使用すると、そのように設定されます。
        • 0.0.0.0/0;::/0; に設定すると、リモートの IPv4 アドレスおよび IPv6 アドレスがこのクライアントと通信できるようになります。この設定を使用して、すべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用します。
      • オプションの persistent-keepalive パラメーターは、WireGuard がサーバーにキープアライブパケットを送信する間隔を秒単位で定義します。ネットワークアドレス変換 (NAT) を使用するネットワークでクライアントを使用する場合、またはしばらく非アクティブにした後にファイアウォールが UDP 接続を閉じる場合は、このパラメーターを設定します。
    2. client-wg0 接続プロファイルをリロードします。

      # nmcli connection load /etc/NetworkManager/system-connections/client-wg0.nmconnection
      Copy to Clipboard Toggle word wrap
  8. client-wg0 接続を再アクティブ化します。

    # nmcli connection up client-wg0
    Copy to Clipboard Toggle word wrap
  9. DHCP またはステートレスアドレス自動設定 (SLAAC) が設定されたネットワークでこのホストを使用すると、接続がリダイレクトされる危険性があります。詳細と軽減策は、接続がトンネルを回避しないように VPN 接続を専用ルーティングテーブルに割り当てる を参照してください。

検証

  1. サーバーの IP アドレスの ping を実行します。

    # ping 192.0.2.1
    # ping6 2001:db8:1::1
    Copy to Clipboard Toggle word wrap
  2. wg0 デバイスのインターフェイス設定を表示します。

    # wg show wg0
    interface: wg0
      public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
      private key: (hidden)
      listening port: 51820
    
    peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
      endpoint: server.example.com:51820
      allowed ips: 192.0.2.1/32, 2001:db8:1::1/128
      latest handshake: 1 minute, 41 seconds ago
      transfer: 824 B received, 1.01 KiB sent
      persistent keepalive: every 20 seconds
    Copy to Clipboard Toggle word wrap

    出力に秘密鍵を表示するには、WG_HIDE_KEYS=never wg show wg0 コマンドを使用します。

    VPN トンネルを介してトラフィックを送信している場合は、latest handshake エントリーと transfer エントリーのみが含まれることに注意してください。

  3. wg0 デバイスの IP 設定を表示します。

    # ip address show wg0
    10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
        link/none
        inet 192.0.2.2/24 brd 192.0.2.255 scope global noprefixroute wg0
           valid_lft forever preferred_lft forever
        inet6 2001:db8:1::2/32 scope global noprefixroute
           valid_lft forever preferred_lft forever
        inet6 fe80::73d9:6f51:ea6f:863e/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat