DD-wrt ​​上的 iptables 绕过 VPN 传出端口 993

DD-wrt ​​上的 iptables 绕过 VPN 传出端口 993

我正在使用 DD-wrt、openVPN 客户端和 NordVPN。

我最近发现 NordVPN 会阻止电子邮件端口,例如安全 Imap 端口 993。我一直试图在 DD-wrt ​​命令中创建规则,但似乎做不到。我想允许所有传出的 993 端口绕过 VPN。

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter  
iptables -t mangle -F PREROUTING  
ip route add default table 200 via $(nvram get wan_gateway)  
ip rule add fwmark 1 table 200  
ip route flush cache
iptables -t mangle -I PREROUTING -i br0 -s 192.168.0.150 -j MARK --set-mark 1            #never use VPn for this IP
#iptables -t mangle -I OUTPUT -p tcp --dport 993 -j MARK --set-mark 1                    #<--didn't work
#iptables -I OUTPUT -m tcp -p tcp -m multiport --dports 993,465 -j MARK --set-mark 1     #<--didn't work 
iptables -t mangle -I OUTPUT -p tcp -m multiport --dports 993,465 -j MARK --set-mark 1   #<-didn't work

我错过了什么?我接近了吗?

答案1

我觉得你已经接近了,但你需要在PREROUTING链中放入“set-mark”全部情况下——将其放入OUTPUT链是没有意义的。

(该OUTPUT链仅用于生成的流量在同一系统上– 换句话说,它只会影响通过 DD-WRT 完成的连接,而不会影响通过 DD-WRT 转发的连接。)


如果您的路由器具有较新的 Linux 内核(和较新的 iproute2),则您不需要 fwmark – 您可以直接创建与第 4 层端口匹配的策略规则:

ip rule add dport 993 table 200

相关内容