WireGuard_实践_2台机_3台机_连接测试
WireGuard_实践_2台机_3台机_连接测试
转载注明来源: 本文链接 来自osnosn的博客,写于 2023-07-29.
参考文档
- 【彻底理解 WireGuard 的路由策略】
- 【Wireguard 全互联模式(full mesh)配置指南】
- 【Wireguard 全互联模式(full mesh)配置指南】
- 【WireGuard 官网 installation】
OpenWRT
-
op-21.02, op-22.03,
opkg install luci-app-wireguard
即可,相关依赖都会装齐。重启整个op系统,才生效。- 在 Network -> Interface -> "Add new interface" 创建一个新接口。 (2023-07测)
Name: 写 "wg0",大小写都可以。小写就可以了。无需用大写。- "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" 中,先不动。后面再添加。
- "General Setting" 中,
- 点击创建/保存。
- 在 Network -> Firewall 中,检查新创建的zone "WG0" 的设置为,
Input: accept;
Output: accept;
Forward: reject 或 drop;
Masquerading:不勾。
- 在 Network -> Interface -> "Add new interface" 创建一个新接口。 (2023-07测)
-
设置 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: (2023-07测)
- 在 Network -> Interface 中,"Edit" 编辑刚才创建的 "WG0"接口。
在 peer 选项卡中,"Add peer" 添加一个peer。
Description: 自定义名称。
Public Key: 对方的 服务器公钥,可以在对方机器中,用 "wg show"查看。
Preshared Key: 预共享密钥,可以用 "wg genpsk" 生成一个。双方填同一个。
Allowed IPs: 一定要填, 至少填对方wg的IP。如 "192.168.23.5/32"。不写的话,连接后ping不到对方。
Route Allowed IPs: 一定要勾上。不勾的话,连接后ping不到对方。
Endpoint Host: 对方的IP。如果对方在nat后面,连接不上,则留空。
Endpoint Port: 对方的UDP监听口。如果对方的IP留空,则留空。
Persistent Keep Alive: 要填一个非零值, 如 "40"。否则不会主动连接。(不知道要等多久,或者等什么触发条件)。如果对方的IP留空,则留空。
- 在 Network -> Interface 中,"Edit" 编辑刚才创建的 "WG0"接口。
-
op-22.02 添加 peer: (2023-07测)
- 在 Network -> Interface 中,"Edit" 编辑刚才创建的 "WG0"接口。
在 peer 选项卡中,"Add peer" 添加一个peer。
多了两个选项,其他的选项和 op-21.03 一样。
Private Key: 是用来生成peer配置文件,不用于连接。可以留空。就是配置内容需要有个prikey,写这里,用于抄到配置文件"[interface]"中的。
Configuration Export: 如果填了 "private key" 就可以点击它,生成peer的配置文件。
- 在 Network -> Interface 中,"Edit" 编辑刚才创建的 "WG0"接口。
-
注意,如果改动了 WG 的配置,或者是添加/修改了 peer的配置。
保存/apply后,没效果。可以尝试 restart 这个 wg0 的接口。 -
2台机测试 (2023-07测)
A B IP 192.168.23.6/24 23.7/24 公钥 A-pub B-pub peer1 B-pub A-pub allow IPs 23.7/32 23.6/32 或 23.0/24 或 23.0/24 allow IPs, 用 "/32" 或 "/24" 都可以。
-
3台机测试,A机做网关。
A B C IP 192.168.23.6/24 23.7/24 23.8/24 公钥 A-pub B-pub C-pub peer1 B-pub A-pub allow IPs 23.7/32 23.6/32, 23.8/32 或 23.0/24 peer2 C-pub A-pub allow IPs 23.8/32 23.6/32, 23.7/32 或 23.0/24 -
3台机测试,全部互联。 (2023-07测)
A B C IP 192.168.23.6/24 23.7/24 23.8/24 公钥 A-pub B-pub C-pub peer1 B-pub A-pub A-pub allow IPs 23.7/32 23.6/32 23.6/32 peer2 C-pub C-pub B-pub allow IPs 23.8/32 23.8/32 23.7/32 如果某个连接断了,对应的IP就会访问失败。访问不会绕行。
----end----
.