12.6. 使用 RHEL web 控制台配置 WireGuard 客户端

您可以使用基于浏览器的 RHEL web 控制台配置 WireGuard 客户端。使用此方法让 NetworkManager 管理 WireGuard 连接。

先决条件

  • 已登陆到 RHEL web 控制台。
  • 您知道以下信息:

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

流程

  1. 在屏幕左侧的导航中选择 Networking 选项卡。
  2. Interfaces 部分中点 Add VPN
  3. 如果还没有安装 wireguard-toolssystemd-resolved 软件包,Web 控制台会显示一条相应的通知。点 Install 安装这些软件包。
  4. 输入您要创建的 WireGuard 设备的名称。
  5. 配置此主机的密钥对:

    • 如果要使用 web 控制台创建的密钥:

      1. Private key 区域中保持预先选择的 Generated 选项。
      2. 请注意 Public key 值。配置客户端时需要此信息。
    • 如果要使用现有的私钥:

      1. Private key 区域中选择 Paste existing key
      2. 将私钥粘贴到文本字段中。Web 控制台自动计算相应的公钥。
  6. Listen port 字段中保留 0 值。
  7. 设置客户端的隧道 IPv4 地址和子网掩码。

    要也设置 IPv6 地址,您必须在创建连接后编辑它。

  8. 为您要允许与此客户端进行通信的服务器添加对等配置:

    1. 单击 Add peer
    2. 输入服务器的公钥。
    3. Endpoint 字段设置为主机名或 IP 地址,以及服务器的端口,如 server.example.com:51820。客户端使用此信息来建立连接。
    4. Allowed IP 字段设置为允许向这个服务器发送数据的客户端的隧道 IP 地址。例如,将字段设置为以下之一:

      • 服务器隧道 IP 地址,以仅允许服务器与此客户端通信。下面屏幕截图中的值配置这种场景。
      • 0.0.0.0/0 允许任何远程 IPv4 地址与此客户端进行通信。使用此设置通过隧道路由所有流量,并使用 WireGuard 服务器作为默认网关。
    WireGuard 客户端设置
  9. Add 创建 WireGuard 连接。
  10. 如果您还想设置隧道 IPv6 地址:

    1. Interfaces 部分点 WireGuard 连接的名称。
    2. IPv6 旁的 edit
    3. Addresses 字段设置为 Manual,并输入客户端的隧道 IPv6 地址和前缀。
    4. Save

验证

  1. Ping 服务器的 IP 地址:

    # ping 192.0.2.1

    当您尝试通过隧道发送流量时,WireGuard 会建立连接。

  2. 显示 wg0 设备的接口配置:

    # wg show wg0
    interface: wg0
      public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
      private key: (hidden)
      listening port: 45513
    
    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