一 使用问题
Openwrt作为旁路由,通过PASSWALL进行合理上网,设置后只能通过中国IP外和全局模式合理上网,但这样所有国外IP都走了代理,不合理,使用PA的GWF列表时,无法上网,在网上搜索了各种办法,通过测试,主要问题是电脑网络启用了IPV6,因为OP的DNS仅是IPV4状态下才经过OP,那么根据WINDOWS系统设计它优先使用IPV6的DNS,比如像google这样的它是有IPV6地址的,那么启用IPV6后默认走了IPV6通道,直接通向IPV6的广播端,不经过OPENWRT,故openwrt就无法让它走passwall通道。
二 解决方案
找到原因后,两种方式解决如下:
方案一:禁用IPV6
打开电脑端网络设置选项,取消IPV6即可。
之后刷新本地电脑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正常。
如果测试不能,说明运营商未开通IPV6,或者光猫或路由器未正确获取到ipv6,至于如何获取到IPV6,各设备不同,方法不同,一般情况上级路由会自动获取到IPV相关信息。如路由内部可能显示的信息(不同设备显示不同),如下图:
2、找到某一客户端的IPV6地址
上级路由能正正确识别IPV6后,先不要通过OP上网,直接连接上级路由,客户端应像IPV4一样正常获取到IPV6,且能正常上网,如下图所示:
打开详细信息,复制IPV6的数据
3、将IPV6的地址填入OPENWRT
进入openwrt,找到网络-接口-基本设置,按下图设置:
设置未完成后,需重启网络或重启OPENWRT,再看其IPV6是否正常。
此外,还需要设置网络-DHCP/DNS-高级设置-取消“禁止IPV6 DNS记录”
4、手动设置客户端的IPV6 址,像IPV4地址设置一样,
设置完成后重启电脑网络,看IPV6是否正常上网
5、开启openwrt的GFW模式,测试能否正常上网。
三 总结
本方案主要思路是参照了和IPV4一样的设置方法,想办法让IPV6也通过OP去控制流量。
网上有很多教程是采取openwrt添加DHCP IPV6客户端的方式,这种方式能解决Op本身可以通过ipv6上网,客户端可以正常上IPV6的网址,但仍不能科学上网,网上还有一种方案是采取clash的IPV6 DNS解析方式,该方式未试,有兴趣的同学可以试试。
本文内容纯属自己折腾所得经验,如有转载,请注明出处。