家里网络设置了旁路由后, OpenVPN 连进来,可以 ping,但是无法正常连接何故?
路由配置情况如图,我希望 PC1 也能够正常访问:

有没有懂的,指点指点,不知道如何下手。
路由配置情况如图,我希望 PC1 也能够正常访问:

有没有懂的,指点指点,不知道如何下手。
Windows 用管理员权限打开 cmd:
route add mask 255.255.255.0 192.168.2.1
但是如果能够在路由器上解决问题就更好了,那样就不用在 PC 上单独配置。
>但是如果能够在路由器上解决问题就更好了,那样就不用在 PC 上单独配置。
>或许如 @Jirajine 所说,去掉 MASQ 就可以了,但是去掉 MASQ 似乎会导致数据包在 192.168.2.2 上循环导致无法正常上网了。
可以在 OpenWRT 上用如下命令试试看,这种方法或许也可以,这样就不需要在 PC 上单独配置静态路由了.
iptables -I nat 1 -s 10.8.0.0/24 -j ACCEPT
>可以在 OpenWRT 上用如下命令试试看,这种方法或许也可以,这样就不需要在 PC 上单独配置静态路由了.
>iptables -I nat 1 -s 10.8.0.0/24 -j ACCEPT
->
iptables -t nat -I POSTROUTING 1 -s 10.8.0.0/24 -j ACCEPT
就是说,发送到 10.8.0.0/24 的包采用的动作是 ACCEPT,但是这里并没有 return,为何就可以产生效果呢?
iptables 规则的匹配不是从前到后依次匹配,除非无法匹配,或者 return 才会终止匹配后面的规则。
这个地方,ACCEPT 后,并没有 return,那不是最后还是会匹配到 MASQUERADE 上去,导致数据包源地址发生改变?
https://ipset.netfilter.org/iptables.man.html#:~:text=ACCEPT%20means%20to%20let%20the,the%20previous%20(calling)%20chain.
>ACCEPT means to let the packet through. DROP means to drop the packet on the floor. RETURN means stop traversing this chain and resume at the next rule in the previous (calling) chain. If the end of a built-in chain is reached or a rule in a built-in chain with target RETURN is matched, the target specified by the chain policy determines the fate of the packet.
关键点有两个:
1.RETRUN 是返回到 calling chain.然后继续匹配下一条 rule.
2.ACCEPT 是直接接受了(在 build-in chain 或者子 chain ),那 build-in chain 和 build-in chain call 的子 chain 中的 rule 都不会匹配了。
另,调试 iptables 可以用-j LOG 看包是如何跑的。