视频教程
youtube播放地址:https://youtu.be/klQ6JbZEeJ0
自用专线机场推荐: https://b.880805.xyz
GIA线路VPS推荐: https://bwg.880805.xyz
相关教程回顾
IPv6新手入门指南:https://youtu.be/dQ1AMXAiEJk
新手入门软路由指南:https://youtu.be/JfSJmPFiL_s
OpenClash新手指南:https://youtu.be/s84CWgKus4U
sing-box新手指南:https://youtu.be/BAfbkLizFGc
clash的fakeip详解:https://youtu.be/aKlH6KRt9Jc
视频文稿(忽略)
很多朋友都有ipv6的需求,比如想通过公网访问家里的设备,运营商又没给你分配公网ipv4地址,也不想通过其他方式做内网穿透,那么使用ipv6是个非常不错的选择,同时也收到一些朋友反馈看iptv用ipv6的源很快很稳,我在软路由系列的第二期中让大家把ipv6关了,因为ipv6+代理环境会产生奇妙的化学反应,配置不当的话会出现分流异常,DNS被污染,网站访问慢或者无法访问等症状,现在我们已经讲解过了openclash和homeproxy插件,接下来就可以启用ipv6并且解决这些问题了,如果你对ipv6很陌生,强烈建议你先看完这期ipv6入门教程,对ipv6有个初步的认识,之前讲过的基础内容这里就不再重复唠叨了。
本系列教程用到的openwrt固件还是之前介绍的immortalwrt23.05,如果你用的是其他固件,可能没法实现预期效果,如果你没法自行解决相关问题,建议回看零基础上手软路由教程刷入和我一样的固件,在那期教程中,我让大家将ipv6功能关闭,现在我们需要进行反向操作将其启用,在开始之前你需要先关闭所有正在运行的代理插件和第三方DNS插件,防止出现预期之外的效果,首先在全局网络选项中将ULA前缀删除,点击保存,然后来到dns的高级设置,将过滤ipv6解析取消勾选,点击保存并应用,回到网络接口页面
每个人的家庭网络环境不同,配置方式也会有所区别,我将分别介绍各种环境下的ipv6配置方法,先直接按视频操作将ipv6配置好,等会再解释为什么,首先演示最常见的情况,光猫是桥接模式,开启了ipv6,openwrt负责pppoe拨号,那么应该会有一个wan6的虚拟动态接口,理想情况下这个wan6的dhcpv6接口会有一个ipv6地址,并且有一个ipv6-pd的Prefix Delegation前缀委托,接着编辑lan口,来到高级设置,如果你还想继续下发前缀委托,则勾选这个,我们没有这种进阶的需求,分配长度选择64,后缀这里表示给lan接口分配的ipv6地址的后缀,不填的话默认是::1,这样容易被人扫,别以为ipv6就没人扫,所以建议手动输入一个长的后缀,或者填入这个eui64,什么是eui64等会再说明,防火墙保持默认,进入dhcp的ipv6设置页面,RA设置为服务模式,取消勾选本地dns服务器,进入ra设置,取消勾选o标记,其他保持默认,点击保存,最后点击保存并应用,路由器这边就算是设置好了,lan口将会获取到一个公网ipv6地址,并且负责给局域网分配ipv6前缀,局域网里开启了ipv6的设备现在应该都已经自动获取到公网ipv6地址了,如果你的电脑没有开启ipv6,跟着视频操作启用ipv6协议栈,启用之后稍等片刻,可以通过ipconfig /all指令查看ipv6地址,可以看到我的物理网卡接口出现了多个ipv6地址,要弄清楚这些哪来的我们等会再来详细探讨
接下来演示第二种情况,如果你家的光猫是路由模式,开启了ipv6,openwrt作为二级路由,从wan口通过dhcp获取光猫分配的内网ip,那么我们需要先手动创建一个dhcpv6的接口,如果你已经有了就不用创建,另外如果你的固件通过pppoe拨号没有出现虚拟动态的dhcpv6接口,也可以按照这个方式手动创建,点击添加新接口,名称给个wan6,协议选择dhcpv6客户端,设备选择wan口,或者wan口别名,是一样的,点击创建,高级设置按默认,防火墙设置为wan区域,dhcp不用管,点击保存,然后保存并应用,稍等片刻,此时会有三种情况,第一种情况是wan6接口拿到了ipv6地址以及一个长度64的pd,这种情况比较幸运,说明光猫在路由模式的情况下依然会向下级路由下发pd,接着lan口的配置方式就和刚才路由拨号一样,我这里就不重复啰嗦了,跟着视频操作即可,最后点击保存并应用,稍等片刻lan口会出现一个公网ipv6地址,这样就算是配置好了,如果你按视频配置后lan口没有出现v6地址,可以尝试重启软路由
第二种情况是当你创建wan6接口之后,只有ipv6地址,没有pd,说明光猫没有继续向下级路由发送pd前缀委托,openwrt拿不到pd也就无法给lan口下发前缀,lan口下面的电脑拿不到前缀自然也就无法生成ipv6地址了,注意前缀和前缀委托是两个不同的概念,等会再细说,这种情况我建议将光猫改成桥接,让路由器负责拨号获取pd,不过目前有些地区不让改桥接了,而且超密都改成动态的了,或者你也可以联系运营商换个比较新的光猫,让其在路由模式下也能下发pd,就像我们刚才演示的第一种情况
或者使用接下来不是很推荐的中继模式,实在是拿不到pd了再用,编辑wan6口,配置dhcp服务器,勾选为主接口,ra选择中继,dhcpv6保持禁用,ndp代理选择中继,点击保存,同样编辑lan口的ipv6设置,将ra和ndp设置为中继,点击保存并应用,重启电脑的网络接口,查询一下ip,同样可以获取到ipv6地址
最后再演示一种极端的情况,你的wan口只能拿到一个/128的ipv6地址,多数出现在校园网,中继都不好使,这种情况下电脑要想使用ipv6上网的话就得回到nat时代,也就是nat66,原理和现在我们使用ipv4访问公网需要nat是一样的,家庭网络速通讲过这里就不啰嗦了,直接配置nat6,来到全局网络选项,设置一个ULA唯一本地地址前缀,这个就类似ipv4的192.168内网网段,openwrt默认会随机生成一个,我们刚才已经删了,在这个范围里随便填一个,点击保存,来到防火墙,编辑wan区域,高级设置,开启ipv6伪装,也就是做masquerade假面舞会,俗称nat,点击保存,回到接口,编辑lan口,lan口的配置方式和有pd是一样的,就不重复啰嗦了,最后点击保存并应用,此时lan口就有一个ula地址了,相当于ipv4的192.168.1.1,并且负责给lan口的设备分配内网ipv6地址,重启网络接口,查询ip,可以看到分配了两个fc00开头的ipv6地址
这就是目前主流的网络环境配置ipv6的方法,最好是想办法让路由器获取到pd,实在没办法了再用中继和nat
接下来我们来详细探讨ipv6的工作流程,以大部分用户都能获取到pd的网络拓扑为例,openwrt通过pppoe或者dhcp获取运营商分配的ipv4地址和ipv6地址,以及一个ipv6地址前缀委托pd,假设pd为2001::/60,前缀委托的作用就相当于运营商不知道你家内网的结构,干脆直接把这个前缀给路由器,委托路由器给家里的其他网络设备分配ipv6地址,这个/60表示前缀长度,按照规范最长是/64,具体可以回看ipv6入门那期,不再重复说明
当我在电脑上开启ipv6协议栈之后,网卡接口会自动生成一个叫做linklocal的链路本地地址,你可以简单理解为就是ipv4的192.168内网地址,一般是以fe80开头
接着电脑会通过组播往局域网里发起一条RS的路由器请求数据包,相当于问谁是路由器,我这边要ipv6地址,由于我们刚才在openwrt中打开了lan区域的RA服务,路由器会接收这条信息,并且给电脑回复一个RA路由器通告的数据包,里面包含了运营商分配的ipv6前缀,以及前缀的生存周期,和一些flag标志位信息,电脑拿到数据包之后,获取到了这个前缀,会看这个前缀的A标志位,如果A等于1,那么就会用这个前缀生成一个ipv6地址,如果A等于0,就不会用这个前缀生成地址,对应到openwrt中的选项是这个启用SLAAC,中文全称无状态自动配置,勾选的话A标志位就是1,所以电脑会使用这个/64的前缀给自己生成一个ipv6地址,众所周知ipv6的长度是128个比特,前面64个比特前缀已经给电脑了,后面64个比特该怎么生成呢?最常见的就是通过eui64,我们刚才给软路由lan口配置的ipv6地址就是用eui64生成后缀,eui64的生成规则就是使用当前网卡接口的mac地址,但由于mac地址才48个比特,少了16个比特,于是会在中间插入fffe填充到64个比特,所以我们可以看到lan口的ipv6地址前面64个比特是运营商获取的前缀,后64个比特是mac地址拼接fffe组成的,当然这里还会有点小差异,原因是规定了第七个比特位要取反,讲他徒增理解难度且没什么意义,大家知道就行了,感兴趣的朋友可以用自行谷歌了解
但是eui64的配置方式会造成隐私问题,如果你在不同的网络环境,比如医院机场等公共网络环境获取到了ipv6前缀,用自己的网卡mac拼接后缀,由于mac地址不变,那么不管你到哪,这个ipv6后缀始终是不变的,而且物理mac地址是全球唯一的,可以利用这个特性追踪你的行为,所以现在不管是windows系统还是macos系统还是手机操作系统,默认ipv6后缀都是随机生成,并不是使用eui64生成,可以看到我们这里获取到的ipv6地址前缀是运营商分配的,后缀是和mac地址没有关联的随机值,除此之外为了进一步保护用户隐私,还会生成一个临时地址,用于对外访问,也就是你访问ipv6网站主要用这个临时地址,临时地址会定期自动更换后缀,防止被访问的网站反向追踪你,而上面这个ipv6地址主要用于让别人的访问,比如从公网访问家里的网络服务,后缀虽然也是随机的,但在同网络环境下,windows系统一般不会改变,一直变的话对外提供服务就不好做防火墙规则了,所以你也可以关闭随机后缀的功能,继续使用eui64生成固定后缀,请自行搜索相关设置方法,缺点就是存在刚说的隐私问题,是不是问题就像dns泄露一样,看你对个人隐私的重视程度了
这个是我们刚讲过的linklocal链路本地地址,另外ipv6的默认网关是负责发送RA数据包的openwrt,同样是fe80开头的链路本地地址,链路本地地址是用来在同一链路中进行通信的, 也只能在同一链路中使用,同一链路简单理解就是同一局域网,这后面的%13表示网卡接口id是13
除了刚讲的那几个ipv6地址,这里还有两个受到抨击的地址,受到抨击的英文为Deprecated,在计算机中是已弃用或者已停用的意思,oh我的老伙计,这翻译真糟糕,就像隔壁朱莉大婶做的苹果派一样
计算机术语有很多这种蹩脚的中文翻译,比如缺省、使能、鲁棒、载荷等等,习惯就好
这两个地址是我之前测试的时候留下来的地址,你那边可能没有,也可能比我更多,要弄清楚这个问题需要了解ipv6前缀的生命周期,根据刚才的讲解,电脑从路由器的RA数据包中拿到前缀之后,通过无状态自动配置生成后缀拼接成完整的ipv6地址,并不是直接就拿来用,要先进行DAD重复地址检测,向局域网发送一个数据包,告诉局域网里的其他人我要开始用这个ip地址了,没有人回应的话就说明这个地址没有被别人占用,确认没人用之后才会将ip分配给网络接口,此时ip的生存状态就从试探性的tentative变成preferred首选,在这种状态下的ip可以正常收发数据,另外可以看到还有两个生命周期,pltime首选生命周期和vltime有效生命周期,我们能保持多久的首选状态是看这个plt时间,以秒为单位,2700秒也就是45分钟,plt一直在倒计时,当倒计时完成之后,这个ip地址就会变成Deprecated弃用状态,也就是受到抨击,这种状态的ip不能用来创建新的连接,而当vlt倒计时也完成之后,这个ip将会彻底失效,windows将会从网卡接口删除这个ip,我们可以通过这条指令查看相关生命周期的剩余时间,这个接口id13就是我们的物理网卡接口,可以看到两个受到抨击的ip地址首选生命周期是0,当有效生命周期也变成0之后,这两个ip将会从这个接口删除,这么设计的一个原因是因为运营商分配给我们的ipv6前缀并不是固定的,你断电重启光猫或者重新拨号都有可能发生变化,前缀换了之后,电脑使用之前前缀生成的ip地址也就无法正常上网了,这就需要有个机制来自动更换前缀,还是通过之前讲的RA路由器通告,路由器并不需要等电脑主动发送RS找他要ip,才发送RA数据包,而是会定期自动往局域网推送RA通告,平时可用于更新ip的生存周期,当前缀更换之后,路由器发送的RA数据包中会包含新老两个ipv6前缀,是的RA数据包可以同时发送多个前缀信息,新的前缀会包含正常的生存周期,而老前缀的首选生存周期会被置零,电脑收到数据包之后,根据新的前缀自动生成ipv6地址,新前缀会变成正常的首选ip,而老前缀由于首选生命周期被置零,所以会直接变成抨击状态,于是就成功切换到了新的ip,所以显示受到抨击的ip是正常现象,虽然看着有点碍事但不需要管他
可以看到ipv6对比ipv4要麻烦的多,讲到这里也还只是讲了无状态自动配置这一种模式,除此之外还可以通过dhcpv6分配ipv6地址,而dhcpv6又分为无状态和有状态,dhcp在第一期家庭网络速通也讲过,是负责给局域网设备分配ip地址的,RA消息里的M标志位用来配置是否要找dhcpv6获取ip地址,O标志位用来配置是否要找dhcpv6获取dns服务器,这两个选项我们都关闭了,也就是不找dhcpv6服务器获取ip,但在windows系统上即使RA消息关闭了M和O标志位,还是会主动找dhcpv6服务器获取ipv6地址,dhcpv6目前并不好用,前缀更换之后不能主动推送更新给局域网设备,直到电脑主动发起续约之前用的都是老的前缀,而且安卓设备并不支持dhcpv6,所以我们干脆禁用dhcpv6服务,减少出问题的概率,如果你要使用dhcpv6请自行谷歌了解,这里就不过多介绍了
接下来又到了咱们喜闻乐见的dns环节,dns一直是代理环境中最容易出问题的地方,所以我们直接禁用了ipv6的dns,非常符合国情
RA消息中可以通过RDNSS选项配置dns服务器,但我们没有在这里填入dns服务器的地址,同时取消勾选将路由器本机的ipv6地址当作dns服务器,所以我们的ra数据包中不会有dns信息,电脑也就不会分配dns服务器了,可以看到接口上只有ipv4的dns服务器,没有ipv6的dns服务器那该怎么获取域名的ipv6地址呢?很多朋友有一个误区,以为ipv4和ipv6不兼容,获取域名的ipv6地址就必须通过ipv6的dns服务器,实际并非如此,ipv4的dns服务器可以获取域名的ipv6地址,ipv6的dns服务器也同样可以获取域名的ipv4地址,dns服务器是通过不同的解析类型来返回ipv4还是ipv6的地址,与他本身是不是ipv6的dns服务器无关,比如用ipv4的dns服务器查询A记录就是返回ipv4地址,查询AAAA记录就是返回ipv6地址,还要补充的是,早期的RA是不支持分配dns的,RDNSS是后期加上的配置项,所以一些老系统,比如windows7不支持通过RA获取dns服务器,而且在windows11中,如果同时启用了ipv4和ipv6双栈,从RA的RDNSS里获取的dns不会分配给网卡接口,关掉ipv4协议栈才会分配ipv6的dns,这应该是个bug,所以通过RA分配dns也不太靠谱,索性直接关掉用ipv4的
该讲的应该都讲清楚了,接着我们就可以访问这个网址来检测电脑的ipv6支持情况,可以看到我正在使用尾数为7769的公网ipv6地址访问这个网站,也就是这个临时的ipv6地址,为什么是临时地址刚才也详细说过了,而如果你配置的是nat66,这里显示的v6地址将是路由器wan口的公网ipv6地址,
另外虽然我们没有配置ipv6的dns,但正如刚才讲的,ipv4的dns服务器同样可以获取域名的ipv6地址,所以使用nslookup可以查询到baidu的ipv6地址,是的没错,百度终于又支持ipv6了,我们可以打开浏览器的开发者面板,来到网络面板,访问百度,勾选远程地址列,就能看到我们是通过ipv6的方式访问百度了,至此不翻墙的情况下,我们已经成功的配置好了ipv6
有了ipv6之后,主要解决以下两个问题:
第一种是想要通过公网访问家里的服务,但是又没有公网ipv4地址,也不想做内网穿透,就可以通过公网ipv6地址访问家里的服务,这个我们将在下期讲防火墙再来详细介绍,本期不做讨论
第二种是可以访问ipv6单栈服务,比如有些廉价的vps不提供ipv4地址,只有ipv6地址,那就需要使用ipv6访问,包括很多用户反馈的iptv源是ipv6地址,本地没有ipv6的话也是没法观看的
ipv6带来方便的同时也带来了只有我们才会遇到的新问题,那就是原本正常的代理环境开始变得不正常,具体表现为分流异常,谷歌等黑名单网站无法访问,主要原因又是可爱的dns,众所周知我们现在使用的openwrt代理插件实现方式都是通过iptables或者nftables将流量劫持到clash或者singbox,是走代理还是走直连还是发起dns请求,由clash或singbox决定,如果你的代理插件没有将ipv6的流量劫持到clash或singbox里,并且你配置了公网的ipv6 dns服务器,那么查询dns请求的流量将会直接发送到互联网,于是dns污染,dns泄漏的问题重新回到了你的怀抱,导致代理环境出现问题。
解决这个问题也是简单粗暴,不配置ipv6的dns服务器就行了,也就是我们刚才的配置方法
如果你是按照我的方法配置的openclash和homeproxy以及ipv6,那么你不会出现上述问题,对于只想使用公网ipv6对外提供服务的朋友来说,你可以什么都不用操作,不影响你的正常代理,也不影响你从公网访问家里的ipv6服务
对于直接访问ipv6地址而不是域名,且ipv6不需要代理的朋友来说,也不需要做任何操作,你可以正常使用电脑的ipv6地址访问别人的ipv6地址,因为我们之前配置的homeproxy和openclash全都关闭了对ipv6的支持,访问ipv6地址不会经过代理插件处理,相当于所有ipv6的流量都直连了
以上两种情况已经满足绝大部分使用场景了,但如果你真的需要访问域名对应的ipv6地址,则需要进一步设置,当前没有开启任何代理插件,这台windows电脑可以使用ipv6进行正常上网,先演示上期讲过的代理插件homeproxy,选择一个主节点启用插件,所有配置都是按上期教程操作的,等待启动完成,接着再来进行ipv6测试,提示我没有接入ipv6,但实际上我的电脑有ipv6地址,并且我可以成功ping通ipv6的ip,也可以正常访问ipv6地址的网站,但却检测到了我没有接入ipv6,尝试查询www.baidu.com的DNS解析就会发现端倪,可以看到我们只获取到了baidu的ipv4地址,因为我们的homeproxy配置屏蔽了ipv6的dns解析,来到homeproxy的dns设置页面,可以看到dns策略为仅ipv4,现在的状态就相当于电脑访问百度,先发起dns请求获取百度的ip地址,由于电脑有ipv6的地址,所以会同时发起获取ipv4和ipv6的地址,路由器会将请求劫持到singbox,singbox中的dns策略是仅获取ipv4地址,所以只会给电脑返回百度的ipv4地址,这样的话电脑只能通过ipv4去访问百度了,所以刚才那个检测网站提示我们不支持ipv6访问。
再来看另一种情况,将dns策略改成默认,点击保存并应用,接着重新查询,就可以正常获取百度的ipv6地址了,并且再来检测ipv6支持,就显示成功接入了,而且我们可以正常的科学上网,二者并不影响
现在的状态就相当于电脑访问百度,先发起dns请求获取百度的ip地址,由于电脑有ipv6的地址,所以会同时发起获取ipv4和ipv6的地址,路由器会将请求劫持到singbox,singbox中的dns策略是默认,所以会正常获取百度的ipv4和ipv6,然后返回给电脑,电脑拿到百度的解析结果,一般会优先使用ipv6访问百度,这样就可以正常访问ipv6了,但是要注意的是,我们目前并没有将ipv6的流量劫持到singbox,所有不管是国内还是国外的ipv6流量全都绕过了singbox走直连,可以进入webui中直观的看到这一现象,来到连接页面,可以看到目前所有经过singbox的连接都是ipv4的地址,没有ipv6,比如我现在访问baidu,只能看到少量仅支持ipv4地址的连接,实际上更多的请求已经通过ipv6绕过了singbox,没法在这里看到,要想将ipv6的流量劫持到singbox中,需要开启homeproxy的ipv6支持,这样homeproxy就会帮我们添加ipv6的劫持规则,接着重新启用,再次访问百度,就可以在日志页面查看到ipv6的相关连接了,此时就相当于,电脑获取到百度的ipv6地址之后,访问ipv6的请求会被劫持到singbox,由singbox根据分流规则选择走代理还是直连,百度显然命中了国内的规则,所以走了直连,再来重新进行ipv6测试,同样没有问题,但此时你会发现,这里检测到的公网ipv6地址结尾是9c35,这并不是这台电脑的ip地址,而是路由器wan口的ipv6地址,因为现在请求已经被劫持到singbox了,singbox负责访问目标网站,那么访问网站用到的ip就是singbox所在的软路由设备ip了,这效果就相当于做了一层nat,电脑的ipv6地址没用上,如果你想实现通过电脑ip直接访问,可以勾选这里的绕过中国流量,让国内ipv6的访问请求绕过singbox内核,直接由软路由转发,点击保存并应用,此时当我访问百度的时候,路由器发现访问的目标是国内的ip地址,于是不会将请求劫持到singbox,而是直接转发到互联网,我们再来重新检测,你会发现依然是使用路由器的ipv6地址,通过查找当前连接,可以看到测试网站的ipv6还是进入了singbox内核,并且匹配了走直连的规则,所以检测结果还是使用路由器的ipv6地址,原因是homeproxy的绕过ip段中并没有这个国内的ipv6段,所以没有命中绕过规则,直接进入了singbox内核,而singbox内核用的规则集匹配到了中国的ipv6段,于是走了直连,可以换一个测试网址试试,这个的话就是使用电脑的ipv6进行访问,说明命中了homeproxy的绕过规则,没有进入singbox内核
一方面我们开启劫持ipv6的流量,另一方面又开启了绕过中国大陆的ip,所以如果你的ipv6请求都是直连的话,我建议直接不启用ipv6支持,让homeproxy不要劫持ipv6流量到singbox
而如果你想通过代理访问ipv6的网站,那就必须开启劫持ipv6,并且在我们当前的配置中,需要修改代理网站所使用的dns服务器解析策略,当前为仅ipv4,也就是被代理的网站只能获取ipv4地址,点击编辑,将其改为默认,重新运行,就能正常获取谷歌的ipv6地址了,此时就可以使用ipv6访问谷歌了,但需要你用的节点支持ipv6才行
此时就相当于,电脑获取到谷歌的ipv6地址之后,访问谷歌的ipv6地址,由于启用了ipv6支持,请求会被劫持到singbox,由singbox根据分流规则选择走代理还是直连,谷歌显然命中了代理的规则,所以数据会加密然后发送到节点服务器,节点服务器解密后获取到了目标是个ipv6的地址,如果这个节点支持ipv6,那就会帮我们访问目标,但如果节点不支持ipv6,那就会导致访问失败,比如我换一个不支持ipv6的节点,先将之前的连接打断,尝试访问谷歌,就会无法访问了,现在的机场都不会特别注明节点是否支持ipv6,而且代理访问ipv6并没有什么明显的优势,所以不建议使用代理访问ipv6,除非你有非常明确的需求
以上对ipv6的讲解都是基于上期视频的singbox配置,得益于singbox的realip配置方式,对ipv6的支持非常自然,而clash自带的dns模块是fakeip模式,处理ipv6有点区别,这里简单讲一下openclash中怎么配置,同样是基于openclash那期视频中讲的配置,来到插件设置下的ipv6设置,勾选允许ipv6解析,应用配置,这样就算是配置好了,非常简单,再来进行ipv6测试,同样支持ipv6,但是要注意,这里的公网ip还是路由器的ipv6地址,因为实际上本机都是使用fakeip的ipv4去访问对应的网站,再由clash使用ipv6去访问对应的ipv6网址
此时就相当于电脑要访问百度,首先发起dns请求获取百度的ip地址,clash的dns模块会直接给电脑返回一个ipv4的fakeip,至于什么是fakeip可以回看这期视频,有非常详细的讲解,由于拿到的是ipv4,所以会使用ipv4进行访问,访问请求来到clash,clash根据分流规则选择直连,于是准备直接访问百度,由于开启了允许ipv6解析,会向上游dns发起dns请求获取百度的ip地址,所以会获取到百度的ipv4和ipv6地址,然后clash就可以使用ipv6访问百度了,由于是clash负责访问目标网站,那么访问网站用到的ip就是clash所在的软路由设备ip了,效果就相当于做了一层nat,而且电脑只能获取到域名的ipv4 fakeip,无法获取到域名的真实ipv6地址,你只能使用这种带nat的效果,无法实现ipv6的端到端访问,当然也可以使用第三方dns插件配合clash实现realip,这又是另外的话题了
这里还可以开启ipv6流量代理,也就是将电脑的ipv6流量劫持到clash,但产生ipv6流量的前提是电脑通过dns获取到了ipv6的域名,而电脑通过clash的dns模块只能拿到ipv4的fakeip,拿不到域名的ipv6地址,所以只能劫持一开始就是ipv6地址的流量,域名流量都是fakeip必须进内核进行分流,所以在fakeip中劫持ipv6的使用场景非常有限,如果你没有特殊需求,不建议开启