iptables -A PREROUTING -t mangle -m set ! --match-set whitelist dst -j MARK --set-mark 8 iptables -A OUTPUT -t mangle -m set ! --match-set $set dst -j MARK --set-mark 8
if [ "$ACTION" = "ifdown" -a "$INTERFACE" = "vpn" ] then ip route replace default dev pppoe-wan fi
if [ "$ACTION" = "ifup" -a "$INTERFACE" = "vpn" ] then ip route replace default dev pptp-vpn table vpn ip route replace default dev pppoe-wan
fi
pheyx
2014-07-12 13:13:53 +08:00
另外还需将你的lan网段加到whitelist里
tywtyw2002
2014-07-12 13:27:14 +08:00
ip rule里面有优先级吧,我偏向于用ip rule
neroanelli
2014-07-12 14:11:43 +08:00
@pheyx 好的谢谢,我等一下测试一下。 我没有添加lan的网段在whitelist中,也没有iptables -A OUTPUT -t mangle -m set ! --match-set $set dst -j MARK --set-mark 8这句,不知道是不是问题的原因所在。
neroanelli
2014-07-12 14:14:30 +08:00
@tywtyw2002 我的ip rule list当中,from all fwmark 0x8 lookup VPN_rt 这个是最高优先级。所以应该不是这个问题。
pheyx
2014-07-12 14:28:32 +08:00
@neroanelli -A OUTPUT 那句是路由器本身翻墙用的,$set是我粘贴没改过来,应该是whitelist。
tywtyw2002
2014-07-12 14:30:55 +08:00
ip rule show 一下看看
neroanelli
2014-07-12 15:09:09 +08:00
@tywtyw2002 0: from all lookup local 32758: from all fwmark 0x8 lookup GFWVPN_rt 32759: from xx.xx.xxx.xx lookup GFWVPN_rt 32760: from all fwmark 0x1e lookup wan2_rt 32761: from xx.xx.xx.xx lookup wan2_rt 32762: from all fwmark 0x14 lookup wan1_rt 32763: from xx.xx.xx.xx lookup wan1_rt 32764: from all fwmark 0xa lookup wan_rt 32765: from xx.xx.xx.xx lookup wan_rt 32766: from all lookup main 32767: from all lookup default
neroanelli
2014-07-12 16:02:49 +08:00
@pheyx 我刚刚测试了一下,不知道为什么我路由器本身可以直接翻,但是路由下的机器没办法翻。 在mangle表中,我的规则如下: iptables -t mangle -A PREROUTING -m set ! --match-set whitelist dst -j MARK --set-mark 8 iptables -t mangle -A OUTPUT -m set ! --match-set whitelist dst -j MARK --set-mark 8 同时我也将我的lan网段添加到了whitelist中。 感谢!