8.16. 使用 nm-connection-editor 配置 WireGuard 客户端


您可以通过在 NetworkManager 中创建连接配置集来配置 WireGuard 客户端。使用此方法让 NetworkManager 管理 WireGuard 连接。

先决条件

  • 您已为服务器和客户端生成了公钥和私钥。
  • 您知道以下信息:

    • 客户端的私钥
    • 客户端的静态隧道 IP 地址和子网掩码
    • 服务器的公钥
    • 服务器的静态隧道 IP 地址和子网掩码

流程

  1. 打开终端窗口,输入:

    # nm-connection-editor
  2. + 按钮添加新连接。
  3. 选择 WireGuard 连接类型,然后单击 Create
  4. 可选:更新连接名称。
  5. 可选:在 General 选项卡中,选择 Connect automatically with priority
  6. WireGuard 选项卡上:

    1. 输入虚拟接口的名称,如 wg0,这是 NetworkManager 应分配给连接的名称。
    2. 输入客户端的私钥。
    3. Add 添加对等点:

      1. 输入服务器的公钥。
      2. 设置 Allowed IPs 字段。例如,将其设置为:

        • 服务器隧道 IP 地址,以仅允许服务器与此客户端通信。
        • 0.0.0.0/0;::/0; 允许任何远程 IPv4 和 IPv6 地址与此客户端进行通信。使用此设置通过隧道路由所有流量,并使用 WireGuard 服务器作为默认网关。

          请注意,通过隧道路由所有流量可能会影响到其他主机的连接,具体取决于服务器路由和防火墙配置。

      3. Endpoint 字段中输入 WireGuard 服务器的主机名或 IP 地址及端口。使用以下格式:<hostname_or_IP<:<port_number>
      4. 可选: 如果您在带有网络地址转换(NAT)的网络中使用客户端,或者防火墙在一定时间不活动状态后关闭 UDP 连接,则设置持久的间隔(以秒为单位)。在这个间隔,客户端会向服务器发送一个实时数据包。
      5. 应用
  7. IPv4 Settings 选项卡上:

    1. Method 列表中选择 Manual
    2. 单击 Add 来输入隧道 IPv4 地址和子网掩码。
    3. 如果要通过隧道路由所有流量,请在 Gateway 字段中设置服务器的隧道 IPv4 地址。否则,将字段留空。

      通过隧道路由所有 IPv4 流量需要您在此客户端上的 Allowed IP 字段中包含 0.0.0.0/0

  8. IPv6 Settings 选项卡上:

    1. Method 列表中选择 Manual
    2. 单击 Add 来输入隧道 IPv6 地址和子网掩码。
    3. 如果要通过隧道路由所有流量,请在 Gateway 字段中设置服务器的隧道 IPv6 地址。否则,将字段留空。

      通过隧道路由所有 IPv4 流量需要您在此客户端上的 Allowed IP 字段中包含 ::/0

  9. Save 存储连接配置集。

验证

  1. Ping 服务器的 IP 地址:

    # ping 192.0.2.1
    # ping6 2001:db8:1::1
  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

    要在输出中显示私钥,请使用 WG_HIDE_KEYS=never wg show wg0 命令。

    请注意,如果您已经通过 VPN 隧道发送流量,则输出只有 latest handshaketransfer 条目。

  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

其他资源

  • 您系统上的 wg (8) 手册页
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.