tomato的路由器上用iptables+dnsmasq自动给指定域名解析得到的IP打上fwmark,然后配合ip rule 匹配相应的路由表,但是问题来了:
VPN客户端拨号后建立了MASQUERADE
1:这个方案是纯手动操作的:成功。
VPN拨号后,
ip rule add to
xxx.xxx.xxx.xxx table 100
ip route add default dev $vpn_dev table 100
ip route flush cache
xxx换成twitter的ip,访问成功。
2:这个方案不管手动还是自动都失败:
VPN拨号时候自动添加路由规则
ip route add default dev $vpn_dev table 100
ip rule,iptables和ipset命令都是路由开机就自动执行。
dnsmasq里面设置ipset=/
twitter.com/vpn和server=/twitter.com/127.0.0.1#dnscrypt_porttracert twitter.com的结果从vpn客户端IP节点之后全部无响应,直到30跳结束。
ping twitter.com无响应。
twitter页面无法访问。
两种方案对比了iptables 规则除了后者多了MARK,其余无差别。但是后者估计被路由丢包了,但是想不通为啥会这样。
求指教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/161176
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.