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

WireGuard配置多本地子网时的iptables规则报错问题

WireGuard配置多本地子网时的iptables规则报错问题

嘿,我来帮你搞定这个问题!你遇到的报错是因为iptables的!(否定)操作符没办法直接和逗号分隔的多个目标IP子网一起使用,咱们得调整一下规则写法来实现允许多个本地子网的需求。

问题根源

你原来的规则里用了! -d 172.16.0.0/24,10.0.0.0/24这种写法,但iptables不支持将否定操作符和多地址/子网组合使用,这就是报错的核心原因。

解决方案1:拆分多子网条件(直接高效)

最直接的方法是把多个子网的否定条件拆分成独立的! -d规则,iptables会自动将它们视为**逻辑与(AND)**关系——也就是“目标地址既不是172.16.0.0/24,也不是10.0.0.0/24”,和你原本想要实现的逻辑完全一致。

修改后的完整规则如下:

PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL ! -d 172.16.0.0/24 ! -d 10.0.0.0/24 -j REJECT
PostUp = ip6tables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL ! -d 172.16.0.0/24 ! -d 10.0.0.0/24 -j REJECT
PreDown = ip6tables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

解决方案2:用ipset管理子网(适合多子网场景)

如果你以后要添加更多子网,用ipset会让规则更简洁易维护。先创建一个包含你允许的本地子网的集合:

ipset create local_subnets hash:net
ipset add local_subnets 172.16.0.0/24
ipset add local_subnets 10.0.0.0/24

然后修改WireGuard的规则:

PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL ! -m set --match-set local_subnets dst -j REJECT
PostUp = ip6tables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL ! -m set --match-set local_subnets dst -j REJECT
PreDown = ip6tables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

注意:使用这个方法需要确保系统安装了ipset工具,并且可以把创建ipset的命令加到开机自启脚本里,避免重启后子网集合消失。

验证方法

修改完规则后,重启WireGuard服务,然后测试:

  • 访问本地172.16.0.0/24和10.0.0.0/24内的设备,应该能正常连接
  • 非本地子网的流量会被拒绝,符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:39:38