You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

WireGuard流量路由规则及特定本地服务访问配置咨询

WireGuard流量路由规则及特定本地服务访问配置咨询

嗨,先给你理清楚WireGuard的核心路由逻辑:它的流量走向完全由配置里的AllowedIPs参数决定——

  • 如果把AllowedIPs设成0.0.0.0/0(IPv4)或者::/0(IPv6),客户端所有上网流量都会走VPN服务器转发;
  • 要是只指定特定IP段(比如你NAS所在的局域网段),那只有访问这些目标的流量才会走VPN,其余流量直接走客户端自己的普通互联网。

接下来重点说你要的「只让本地服务(包括Pi-hole DNS)流量走VPN,其余流量直连外网」的配置方法,步骤很清晰:

1. 先确认关键信息

先搞清楚两个核心地址:

  • 你的本地局域网网段(比如常见的192.168.1.0/24,根据你家实际的网段来);
  • 你Pi-hole的具体IP(比如192.168.1.100,就是Docker Swarm里Pi-hole容器绑定的宿主机IP或者容器本身的固定IP)。

2. 调整WireGuard客户端配置

打开你用来连接的WireGuard客户端配置文件(.conf格式),修改两个关键项:

  • AllowedIPs:不要用全流量的0.0.0.0/0,换成你本地网段+Pi-hole的IP,比如:
    AllowedIPs = 192.168.1.0/24, 192.168.1.100/32
    
    这样客户端只有访问本地局域网设备和Pi-hole的流量才会走VPN,其他所有上网请求直接走自己的网络。
  • DNS:把客户端的DNS设置成Pi-hole的IP,比如:
    DNS = 192.168.1.100
    
    这一步能确保客户端的DNS解析请求会通过VPN发到你的Pi-hole,既用上了Pi-hole的过滤功能,又不会让DNS流量走普通外网。

3. 确认服务器端的转发权限

最后检查下你的NAS(WireGuard服务器)是否开启了IP转发功能——毕竟要让VPN流量能转到本地局域网。在OpenMediaVault里,WireGuard插件一般会自动开启,但你可以手动确认:

  • 登录NAS的终端,执行sysctl net.ipv4.ip_forward,如果返回net.ipv4.ip_forward = 1就是开启状态;
  • IPv6同理,检查sysctl net.ipv6.conf.all.forwarding,返回1就没问题。

小提示

如果你的客户端所在的网络和本地局域网网段冲突(比如客户端也在192.168.1.x的网络里),可能会出现访问异常,这时候可以考虑修改WireGuard的虚拟网段,或者调整本地局域网的网段(比如改成192.168.2.0/24)。

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

火山引擎 最新活动