更新:解决ipv6环境下openwrt作为旁路由passwall无法使用gfw问题

一 使用问题

Openwrt作为旁路由,通过PASSWALL进行合理上网,设置后只能通过中国IP外和全局模式合理上网,但这样所有国外IP都走了代理,不合理,使用PA的GWF列表时,无法上网,在网上搜索了各种办法,通过测试,主要问题是电脑网络启用了IPV6,因为OP的DNS仅是IPV4状态下才经过OP,那么根据WINDOWS系统设计它优先使用IPV6的DNS,比如像google这样的它是有IPV6地址的,那么启用IPV6后默认走了IPV6通道,直接通向IPV6的广播端,不经过OPENWRT,故openwrt就无法让它走passwall通道。

二 解决方案

找到原因后,两种方式解决如下:

方案一:禁用IPV6

打开电脑端网络设置选项,取消IPV6即可。6290f925ba4f2d4744fef5f53f1a289d

之后刷新本地电脑DNS缓存 cmd状态下执行 ipconfig/flushdns,这样就可以恢复正常使用GFW模式了。

方案二 openwrt里设置ipv6的IP地址及DNS

根据旁路由的工作模式,就是使用它的IP作为客户端的DNS解析服务器,这样客户端的流量就要经过OP,OP再判断后面路由怎么走。IPV4就是这样设置的,正常情况下我们仅设置IPV4就可以了,但目前三大运营商基本都开通了IPV6,我们拨号时会获取到IPV6地址。

1、IPV6的确认正常上网

检查运营商是否已开通IPV6,并且电脑可以顺利通过IPV6上网,测试地址为https://test-ipv6.com/,如出现以下显示则为IPV6正常。

ed7c3cb66b7d20a69174f38fe4cae64e

如果测试不能,说明运营商未开通IPV6,或者光猫或路由器未正确获取到ipv6,至于如何获取到IPV6,各设备不同,方法不同,一般情况上级路由会自动获取到IPV相关信息。如路由内部可能显示的信息(不同设备显示不同),如下图:

 

94bcaf7e41302280b70a519e04395504

2、找到某一客户端的IPV6地址

上级路由能正正确识别IPV6后,先不要通过OP上网,直接连接上级路由,客户端应像IPV4一样正常获取到IPV6,且能正常上网,如下图所示:

cfaed91b90ec4d8e553a765b602c5f43

打开详细信息,复制IPV6的数据8fa3931b1efc2210c3b52192a3f7321e

3、将IPV6的地址填入OPENWRT

进入openwrt,找到网络-接口-基本设置,按下图设置:

1f71adc6e5c7c45c2ab5145e0823860c

设置未完成后,需重启网络或重启OPENWRT,再看其IPV6是否正常。

此外,还需要设置网络-DHCP/DNS-高级设置-取消“禁止IPV6 DNS记录”

d0b431ef27e95e1ed1f7babfc2ab0eff3fd5aca3df560573fb326ff99fab218d

4、手动设置客户端的IPV6 址,像IPV4地址设置一样,

a854f726f55b7d6068eaab70ed2fc297

设置完成后重启电脑网络,看IPV6是否正常上网

5、开启openwrt的GFW模式,测试能否正常上网。

三 总结

本方案主要思路是参照了和IPV4一样的设置方法,想办法让IPV6也通过OP去控制流量。

网上有很多教程是采取openwrt添加DHCP IPV6客户端的方式,这种方式能解决Op本身可以通过ipv6上网,客户端可以正常上IPV6的网址,但仍不能科学上网,网上还有一种方案是采取clash的IPV6 DNS解析方式,该方式未试,有兴趣的同学可以试试。

本文内容纯属自己折腾所得经验,如有转载,请注明出处。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享