最近有连接两个内网的小需求,想起了之前写过的 WireGuard 搭建和使用折腾小记,决定尝试着使用 WireGuard 来实现。因为两个内网都在 NAT 后,自己也没有固定的公网 IP,所以只能借助一台 VPS 作为中继服务器,用来分别连接两个内网并进行流量转发。以下内容为自己的一点记录,其实大体上和之前的文章区别不大,不过这次主要以手动命令配置为主,方便自己进一步理解。
拓扑环境
1 | NAT-A (192.168.0.0/24) --- Gateway (VPS) --- NAT-B (10.180.0.0/16) |
安装与配置
环境依赖
- NAT-A、NAT-B、VPS 均采用一台 Linux PC 作为 WireGuard endpoint;
- WireGuard 安装过程不再赘述,见官方文档;
- iptables、iproute2
配置过程
GW 端
1 | # 1. 生成密钥对 |
NAT-A 端
1 | # 1. 生成密钥对 |
NAT-B 端
1 | # 1. 生成密钥对 |
GW 端添加 peer
1 | # 1. 添加 peer NAT-A,注意 allowed-ips 添加 NAT-A 网段,相当于添加到 NAT |
至此,就全部配置完成了,NAT-A (192.168.0.0/24) 与 NAT-B (10.180.0.0/16) 两个 LAN 可以通过 GW 进行通信了。如需添加更多 NAT 网络,同样操作即可,主要就是 allowed-ips 即路由的设置。
配置文件
上述过程可以编写成配置文件(默认保存位置 /etc/wireguard)通过 wg-quick 命令快速运行,这里不再赘述(可参考 WireGuard 搭建和使用折腾小记),各端配置文件示例如下:
1 | # GW |