You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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配置刚好满足了转发条件:

  1. 手机→VPS→pfSense的流量路径:
    • 手机发往192.168.33.0/24或192.168.1.100的数据包,因为手机AllowedIPs包含这些网段,所以会通过WireGuard发送到VPS。
    • VPS收到数据包后,查看目标IP:这些网段正好在pfSense Peer的AllowedIPs列表里,所以VPS会把数据包转发给pfSense。
  2. pfSense→VPS→手机的流量路径:
    • pfSense的AllowedIPs是10.1.0.0/24,意味着所有发往WireGuard网段的数据包都会发送到VPS。
    • VPS收到后,查看目标IP属于手机的WireGuard网段,就会转发给手机。

这里的关键是: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网段的流量(如果有防火墙限制的话)
  • 手机端:
    • AllowedIPs包含WireGuard网段+需要访问的本地局域网段
    • DNS设置为本地DNS服务器地址(如果需要本地解析)

总结来说,你的配置逻辑清晰、符合规范,在CGNAT场景下是非常实用的组网方式,完全可以放心复用。

备注:内容来源于stack exchange,提问作者meerkatmoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:59:31