我有一个wireguard接口wg_vpn,但我不希望它是全局的,所以我在wg_vpn.conf中添加了“Table = off”这一行,以防止wg-quick修改路由表。
我还有一个openvpn/wireguard接口tun0/wg0,客户端可以通过它访问我的服务器。我创建了这些 iptables 规则:
iptables -t nat -A POSTROUTING -o wg_vpn -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wg0 -o wg_vpn -j ACCEPT
ip6tables -t nat -A POSTROUTING -o wg_vpn -j MASQUERADE
ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i wg0 -o wg_vpn -j ACCEPT
但是它们不起作用,除非我通过以下方式使 wg_vpn 全局化:
ip route add default dev wg_vpn
ip -6 route add default dev wg_vpn
然后他们工作。
但是我只想将tun0/wg0转发到wg_vpn而不修改全局路由表,请问我知道如何实现吗?
提前致谢!
将策略路由与
ip rule
.而不是
Table=off
,指定Table=123
使 wg-quick 将路由放在单独的表中(除 253-255 之外的任何 16 位数字,它们是全局表)。...或手动将您的路线添加到新表中:
创建策略路由规则,为从 tun0 接收的数据包选择此表: