WireGuard_实践

发布时间 2023-07-29 22:05:06作者: osnosn

WireGuard_实践

转载注明来源: 本文链接 来自osnosn的博客,写于 2023-07-29.

参考文档

OpenWRT

  • op-21.02, op-22.03, opkg install luci-app-wireguard 即可,相关依赖都会装齐。重启整个op系统,才生效。
    • 在 Network -> Interface -> "Add new interface" 创建一个新接口。
      • "General Setting" 中,
        Protocol 选择 WireGuard.
        Bring up on boot 勾上。
        Private key 生成一个。
        IP Addresses 设置一个自定义IP (和LAN,WAN,不冲突的网段),如"192.168.23.3/24"。
        • 如果填写 "192.168.23.3/32",则两机连接后,ping不通。
      • "Advanced Settings" 中,
        Use default gateway 不勾。
        Use DNS servers advertised 不勾。
      • "Firewall Settings" 中,创建一个叫 WG0 的 zone。
      • "DHCP Server" 中,不设置DHCP服务。
      • "Peers" 中,先不动。后面再添加。
    • 点击创建/保存。
    • 在 Network -> Firewall 中,检查新创建的zone "WG0" 的设置为,
      Input: accept;
      Output: accept;
      Forward: reject 或 drop;
      Masquerading:不勾。
  • 设置 peer,需要对方 服务端的pubkey,以及preshared key。
    如果gui的网页上有,则可以在网页上copy。如果没有,要用命令行生成。
    "echo '私钥' | wg pubkey" 获取私钥对应的 公钥
    "wg genpsk > psk_txt" 生成一个新的 预共享密钥
    "wg show" 可以看到当前系统的 服务端公钥,已经配置的peer公钥
    以下两个命令,用于更换 服务端密钥:
    "wg genkey > prikey" 生成一个新的 私钥
    "wg pubkey < prikey > pubkey" 获取私钥对应的 公钥
  • 两台机器用wireguard连接,需要双方 互相添加peer。
    A机,添加peer,公钥写 B机的服务端公钥。预共享密钥填写同一个。
    B机,添加peer,公钥写 A机的服务端公钥。预共享密钥填写同一个。
    peer 中 Private Key 是用来生成配置文件的,不用于连接。留空(op-22.03)。
  • op-21.02 添加 peer:
    • 在 Network -> Interface 中,"Edit" 编辑刚才创建的 "WG0"接口。
      在 peer 选项卡中,"Add peer" 添加一个peer。
      Description: 自定义名称。
      Public Key: 对方的 服务器公钥,可以在对方机器中,用 "wg show"查看。
      Preshared Key: 预共享密钥,可以用 "wg genpsk" 生成一个。双方填同一个。
      Allowed IPs: 一定要填, 至少填 wg 自身的网段。如 "192.168.23.0/24"。不写的话,连接后ping不到对方。
      Route Allowed IPs: 一定要勾上。不勾的话,连接后ping不到对方。
      Endpoint Host: 对方的IP。如果对方在nat后面,连接不上,则留空。
      Endpoint Port: 对方的UDP监听口。如果对方的IP留空,则留空。
      Persistent Keep Alive: 要填一个非零值。否则不会主动连接。(不知道要等多久,或者等什么触发条件)。如果对方的IP留空,则留空。
  • op-22.02 添加 peer:
    • 在 Network -> Interface 中,"Edit" 编辑刚才创建的 "WG0"接口。
      在 peer 选项卡中,"Add peer" 添加一个peer。
      多了两个选项,其他的选项和 op-21.03 一样。
      Private Key: 是用来生成peer配置文件,不用于连接。可以留空。就是配置内容需要有个prikey,写这里,用于抄到配置文件"[interface]"中的。
      Configuration Export: 如果填了 "private key" 就可以点击它,生成peer的配置文件。

----end----


转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/17589669.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .