WireGuard跨对等节点通信配置有效性确认及原理咨询
WireGuard跨对等节点通信配置有效性确认及原理咨询
嘿,你的配置其实是完全有效且符合WireGuard设计逻辑的,不用太担心是“错误配置”导致的巧合~下面我来拆解下背后的原理,以及确认你后续复刻的可行性:
你的当前配置细节
VPS的WireGuard配置
[Interface] Address = 10.1.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PrivateKey = <private-key> DNS = 192.168.1.100 [Peer] PublicKey = <pfsense> AllowedIPs = 192.168.1.100/32, 10.1.0.0/24, 192.168.33.0/24 PersistentKeepalive = 25 [Peer] PublicKey = <iphone> AllowedIPs = 10.1.0.0/24
pfSense配置要点
- 静态隧道(未勾选“动态端点”),连接至VPS公网地址
- AllowedIPs设置为
10.1.0.0/24
手机配置要点
- AllowedIPs包含
10.1.0.0/24和192.168.33.0/24 - DNS设置为
192.168.1.100
核心原理:WireGuard的AllowedIPs是路由+访问控制的结合
你猜的没错!手机和pfSense能通信,正是因为VPS承担了中间路由的角色,而你的AllowedIPs配置刚好满足了转发条件:
- 手机→VPS→pfSense的流量路径:
- 手机发往
192.168.33.0/24或192.168.1.100的数据包,因为手机AllowedIPs包含这些网段,所以会通过WireGuard发送到VPS。 - VPS收到数据包后,查看目标IP:这些网段正好在pfSense Peer的AllowedIPs列表里,所以VPS会把数据包转发给pfSense。
- 手机发往
- pfSense→VPS→手机的流量路径:
- pfSense的AllowedIPs是
10.1.0.0/24,意味着所有发往WireGuard网段的数据包都会发送到VPS。 - VPS收到后,查看目标IP属于手机的WireGuard网段,就会转发给手机。
- pfSense的AllowedIPs是
这里的关键是:WireGuard不需要每个Peer之间直接建立连接,只要中继节点(VPS)的AllowedIPs配置正确,就能完成跨Peer的流量转发——这是WireGuard作为“虚拟路由”的典型用法,完全不是误配置。
关于本地DNS可用的原因
手机能使用本地DNS,是因为你在VPS和手机端都把DNS设为了192.168.1.100:手机的DNS请求会通过WireGuard发送到VPS,VPS再转发给pfSense的DNS服务器,解析完成后原路返回——这个流程也是完全正常的,符合你的配置预期。
后续复刻的可行性(用VM代替pfSense)
这个模式是非常通用的WireGuard中继组网方案,不管你换VM还是其他设备,只要遵循以下几点就能轻松复刻:
- 中继节点(VPS/VM):
- 保留正确的
PostUp/PostDown规则(负责防火墙放行和NAT转发,确保流量能进出公网) - 给本地节点(原pfSense/新VM)的Peer配置AllowedIPs时,要包含本地局域网段+WireGuard网段
- 给手机Peer的AllowedIPs包含WireGuard网段即可
- 保留正确的
- 本地节点(新VM):
- WireGuard的AllowedIPs设为
10.1.0.0/24,确保所有WireGuard流量都发往中继节点 - 配置本地防火墙,放行来自WireGuard网段的流量(如果有防火墙限制的话)
- WireGuard的AllowedIPs设为
- 手机端:
- AllowedIPs包含WireGuard网段+需要访问的本地局域网段
- DNS设置为本地DNS服务器地址(如果需要本地解析)
总结来说,你的配置逻辑清晰、符合规范,在CGNAT场景下是非常实用的组网方式,完全可以放心复用。
备注:内容来源于stack exchange,提问作者meerkatmoe
相关产品推荐
相关产品推荐

