nozer 最近的时间轴更新
nozer

nozer

V2EX 第 46910 号会员,加入于 2013-10-16 19:46:44 +08:00
今日活跃度排名 2975
nozer 最近回复了
@huangya 太感谢了! 搞懂了,谢谢。
@huangya 真的可以了,问题解决。原因应该是跟前面的猜测一致,但是我想请教下,现在的规则是这样的:
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -I POSTROUTING -j MASQUERADE
iptables -t nat -I POSTROUTING 1 -d 10.8.0.0/24 -j ACCEPT


就是说,发送到 10.8.0.0/24 的包采用的动作是 ACCEPT,但是这里并没有 return,为何就可以产生效果呢?
iptables 规则的匹配不是从前到后依次匹配,除非无法匹配,或者 return 才会终止匹配后面的规则。

这个地方,ACCEPT 后,并没有 return,那不是最后还是会匹配到 MASQUERADE 上去,导致数据包源地址发生改变?
@huangya 很感谢。PC 上设置静态路由可以解决问题。 但是路由器上设置 iptables 规则没什么效果。 抓包我也抓了下,但是水平有限研究不出来啥。
@huangya 嗯嗯,我抓包看看。
或许如 @Jirajine 所说,去掉 MASQ 就可以了,但是去掉 MASQ 似乎会导致数据包在 192.168.2.2 上循环导致无法正常上网了。
@jasonyang9 我也有这种猜测,但是不知道怎么处理。 @huangya 的办法不错,我试试看应该能解决问题。

但是如果能够在路由器上解决问题就更好了,那样就不用在 PC 上单独配置。
@huangya 谢谢我试试看。
@huangya vpn client 的虚拟网卡网段是:10.8.0.0/24
@Jirajine 去掉的话无法正常上网了,
@Jirajine ? 我感觉线路很清晰啊,哪里乱了。
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3463 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 50ms · UTC 11:36 · PVG 19:36 · LAX 03:36 · JFK 06:36
♥ Do have faith in what you're doing.