Alex F.🍺.jpeg

Credit Alex F.🍺

本文章的诞生来自于最近一位新疆用户的反馈,因你所知道的原因,运营商提供的IPv4地址近期无法正常连接机场节点,无法实现代理,全红,QX 开启 DNS IPv6 解析后,使用运营商提供的IPv6地址才得以连上机场节点;本文如有疏漏或疑问,欢迎点击右侧🫱📧按钮联系博主进行反馈;

P.S. 提醒⚠️:反馈中提到的机场此前支持新疆地区用户使用,近期IPv4网络封锁,仅剩IPv6网络得以访问(即便如此,该地区网络仍处于严格的封锁中...,不稳定,多变,状态升级...大部分机场亦因此原因逐渐放弃对该地区用户的单独维护...);在购买机场前请务必事先咨询新疆用户是否可用,再进行购买(月付),否则即便修改IPv6也无济于事;

基于以上,延伸出本文;

Quantumult X 配置 IPv6/DNS 及 filter设置(分流规则)

支付宝 IPv6网络.jpg

如果你打开支付宝,你大概可以看到app底部显示:支付宝支持 IPv6 网络;Quantumult X (以下简称QX)默认的配置文件是默认禁用IPv6的,即默认不解析域名的AAAA记录;

DNS AAAA记录或 A记录是一种DNS记录,它将一个域名或子域名映射到IPv6(网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6))。当有人在地址栏中输入一个域名或子域名时,这将引导浏览器登陆到正确的网站。AAAA记录与A记录类似,只是它让你指定服务器的IPv6地址,而不是IPv4。目前,DNS AAAA记录并不像A记录那样流行;但是,随着IPv6的采用不断扩大,其使用量正在迅速飙升。 Credit powerdmarc

下面就QX启用 IPv6 / DNS 及 filter(分流规则)相关设置聊一聊。

别急着往下看;现在,你可以通过 https://test-ipv6.com/index.html.zh_CN 测试你的浏览器和网络是否支持IPv6,并显示你当前的IPv4 和IPv6 地址满分10分。(你可以通过 Quantumult X 的分流设置,使用机场节点访问IPv6网络,如果你的机场提供IPv6节点的话,具体分流设置查阅后文;)

如果你不确定测试结果中的IPv4/IPv6地址是你本地的,还是机场节点的,请复制测试结果中的IP:打开 https://search.censys.io/https://myip.ms/ ,粘贴,即可查看该IP地址相关信息详情🔎(IP所属ISP运营商/公司/所属国家所在地区/所有者是谁==);

以下是 QX 配置文件示例中关于DNS设置项的描述:

# The DNS servers fetched from current network(system) will always be used for better performance(you can disable this feature by using "no-system", but you should at least add one customized DNS server like "server=223.5.5.5").
# When no-ipv6 is set, the DNS module of Quantumult X Tunnel will directly let the AAAA query fail but still allow the A query from IPv6 DNS servers.

# 从当前网络(系统)获取的 DNS 服务器将始终用于获得更好的性能(您可以使用“no-system”禁用此功能,但您至少应该添加一个自定义 DNS 服务器,例如“server=223.5.5.5” )。
# 当设置 no-ipv6 时,Quantumult X Tunnel 的 DNS 模块将直接让 AAAA 查询失败,但仍允许来自 IPv6 DNS 服务器的 A 查询。

QX - 设置 - 配置文件 - 配置:找到 [dns] 配置项,默认配置如下

[dns]
;circumvent-ipv4-answer = 127.0.0.1, 0.0.0.0
;circumvent-ipv6-answer = ::
;prefer-doh3
;no-system
no-ipv6
server = 223.5.5.5
server = 114.114.114.114
server = 119.29.29.29
server = 8.8.8.8

将 no-ipv6 注释掉 即可开启 IPv6 解析(使用半角 ; # // 进行注释),如下:

[dns]
;circumvent-ipv4-answer = 127.0.0.1, 0.0.0.0
;circumvent-ipv6-answer = ::
;prefer-doh3
no-system
;no-ipv6
server = 223.5.5.5
server = 114.114.114.114
server = 119.29.29.29
server=[2400:3200:baba::1]
server=[2400:3200::1]
server=[2402:4e00::]
;server = 8.8.8.8

以上,我们注释掉了 no-ipv6 设置以便能正常解析出各类网络服务的域名的 AAAA 记录,启用 no-system 设置以便禁用系统DNS(一般为运营商提供或路由分配)并新增了3个 IPv6 DNS 服务器(来自阿里云公共dns以及腾讯云即dnspod公共dns);

最后,QX设置 - 其他设置 - 打开兼容性增强;(需要先关闭QX开关,再才能打开兼容性增强

最终返回给访问者的IP地址视客户端和递归 DNS 的策略而定。

通过上述文字说明,如果你仍然不会进行IPv6设置,可参阅以下图示:

QX DNS设置及IPv6解析记录等 图示

QX DNS 设置及DNS查询记录/网络活动TCP-横版.jpg

QX DNS设置及DNS查询记录/网络活动TCP-竖版

QX DNS设置及DNS查询记录/网络活动TCP-竖版.jpg

以上,QX配置IPv6/DNS结束。

DNS/CDN以及IPv4/IPv6双栈网络

DNS是什么?

how does dns work.jpg

Credit Praveen Dandu;

域名系统 (DNS) 是互联网的电话簿。人们通过例如 nytimes.com 或 espn.com 等域名在线访问信息。Web 浏览器通过 互联网协议 (IP) 地址进行交互。DNS 将域名转换为 IP 地址,以便浏览器能够加载互联网资源。

连接到 Internet 的每个设备都有一个唯一 IP 地址,其他计算机可使用该 IP 地址查找此设备。DNS 服务器使人们无需存储例如 192.168.1.1(IPv4 中)等 IP 地址或更复杂的较新字母数字 IP 地址,例如 2400:cb00:2048:1::c629:d7a2(IPv6 中)。 Credit Cloudflare;(Cloudflare 被誉为赛博活佛,以下简称CF)

双栈域名:域名同时设置A记录及AAAA记录的,即为双栈域名;你可以通过IPv6或IPv4访问该域名;

CDN是什么?

without CDN and with CDN.png

IMG Credit Alicloud;

内容分发网络 (CDN) 是一个分布在不同地理位置的服务器群,用于缓存靠近最终用户的内容。CDN 可以快速传输加载互联网内容所需的资产,包括 HTML 网页、JavaScript 文件、样式表、图像和视频。

CDN 服务的受欢迎程度不断提高,当今大部分 Web 流量都通过 CDN 传送,包括 Facebook、Netflix 和Amazon 等主要网站的流量。 Credit Cloudflare

IPv6是什么?

IPv4 IPv6.png

网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的协议。用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。

IPv6的设计目的是取代IPv4,然而长期以来IPv4在互联网流量中仍占据主要地位,IPv6的使用增长缓慢。在2022年4月,通过IPv6使用Google服务的用户百分率首次超过40%。

Credit 维基百科

IPv4/IPv6双栈网络

IPv6 与IPv4 不兼容。

“ipv4和ipv6的协议栈不同,这意味着,其对应的ip包的封装和解析不同,那么只支持ipv4的机器就无法直接与ipv6的服务器进行通信。但目前已经有越来越多人使用ipv6进行通信,如果仅仅让服务器支持ipv4,这无疑会损失一大部分用户,特别是针对于海外业务。” Credit hobbybear;

“IPv4(互联网协议版本 4)是开创性的协议,为我们所知的互联网奠定了基础。 然而,随着互联网以前所未有的速度增长,IPv4 显然存在局限性,最明显的是可用 IP 地址池已耗尽。 这种迫在眉睫的稀缺需要一种新的协议——IPv6。IPv6 是互联网协议的第六次修订版,拥有极大扩展的地址空间。 它能够容纳几乎难以想象数量的唯一IP地址,有效解决地址耗尽问题。 然而,IPv4 仍然是主导协议,因此需要两者共存。

双栈解决方案 The Dual Stack Solution:IPv4 和 IPv6 双栈是这两个世界之间的桥梁。它允许设备、网络和服务同时使用 IPv4 和 IPv6 进行操作。 这种过渡机制有助于IPv6的逐步集成,同时保持与IPv4的兼容性。”

Credit interlir.com;

如果你使用过云服务器,开启一个实例后,会为你提供一个 IPv4 地址和一个 IPv6 地址,即双栈;你可以通过这两个地址访问你的网络服务;最终在配置域名DNS解析时,会需要填写A记录和AAAA记录,A记录指向IPv4 地址,AAAA记录指向IPv6 地址;普通用户访问你的域名时,DNS将视情况将域名解析为A记录或AAAA记录,如果用户的设备为 IPv6 only 时则提供 IPv6地址供其访问;

IPv6 only / IPv6 优先解析

就收集到的咨询总结:在未使用代理工具的情况下,你的电子设备,包括笔记本/Mac/iPad/iPhone/Android 大多是以 IPv6 解析优先的,你将优先通过本地IPv6网络访问支付宝/小红书...。

使用代理工具后,如QX/Surge/小火箭,它们会全权接管你电子设备上的所有网络请求,控制/改变其行为;例如利用QX拦截广告...等;

如无特别情况,geoip, cn 策略务必选择 direct

geoip, cn, direct

指定IPv6网络访问

1.你的宽带运营商(ISP)正常提供IPv4/IPv6,2.博客 https://limbopro.com/ (以本博客举例)是双栈域名,同时支持 IPv6/IPv4 访问;但你只想通过 IPv6网络 访问本博客该怎么操作

获取 域名的 AAAA 记录

QX DNS设置及DNS查询记录/网络活动TCP-横版.jpg

QX DNS设置及DNS查询记录/网络活动TCP-竖版

QX DNS设置及DNS查询记录/网络活动TCP-竖版.jpg

如图所示,首先是获取域名的 AAAA 记录 -> IPv6 地址;访问博客,记住访问的时间,然后在 QX首页 - 底部的 DNS 查询记录查看,你可以找到 limbopro.com 对应的 AAAA 记录

2606:4700:3033::ac43:80b9, 2606:4700:3030::6815:234

因为 Cloudclare CDN IPv6 节点众多,你得到的 AAAA记录 可能与我得到的 AAAA记录 可能不同;以上面获得 AAAA记录 举例:

以上仅为举例,方便大家进一步了解QX的DNS查询功能;Mac 可以使用终端app,输入如下命令获取域名的AAAA记录:

nslookup -q=AAAA limbopro.com

终端app输入上述命令,回车得到如下结果:

Server:     223.5.5.5
Address:    223.5.5.5#53

Non-authoritative answer:
limbopro.com    has AAAA address 2606:4700:3033::ac43:80b9
limbopro.com    has AAAA address 2606:4700:3030::6815:234

以上。

打开 QX - 设置 - 配置文件 - 编辑 - 在 [dns] 下添加:address = /limbopro.com/[2606:4700:3030::6815:234](该 address 仅用于测试,测试后记得删掉/注释掉)

[dns]
address = /limbopro.com/[2606:4700:3030::6815:234]

[filter_local] 下添加: host-keyword, limbopro, direct (该分流规则仅用于测试,测试后记得删掉/注释掉)

[filter_local]
host-keyword, limbopro, direct

保存;

此时刷新博客页面,记住刷新时间;打开 QX首页 - 底部的 搜索🔍按钮(网络活动TCP) - 搜 limbopro.com ,找到对应的 访问时间,点击查看详细记录;

指定IPv6网络直连访问毒奶博客 - Direct .jpg

具体如图所示;为什么这里举例中,分流规则设置成了 direct? host-keyword, limbopro, direct,因为如果最终我们走了代理节点(proxy),代理服务器上的 dns 亦会优先使用IPv4(不一定会按照我们的设置来);所以,我们使用 direct 在举例中能更好的控制域名的解析行为,在此例中,QX将优先以我们设置的 address = /limbopro.com/[2606:4700:3030::6815:234] 为准,最终得以优先使用本地的IPv6网络访问博客成功;

你可以按上述操作进行尝试;尝试完成后,记得删除或注释相应设置;本博客通过代理访问时打开速度会更快(当然,首先你的节点要足够快。);

为什么要配置 IPv6

根据工信部通信〔 2018 〕 77 号文的要求,运营商应于 2018年12月31日之前为宽带用户在无任何前提条件,无需申请,无任何费用的前提下,为用户开通 IPv6 网络服务。

对于不使用代理软件的非翻墙用户而言,IPv6/IPv4 日常均可正常使用(在准许入网后,运营商应无条件为你的设备网络分配IPv4/IPv6地址),完全无需额外进行设置

如果你使用代理工具如QX,Surge,小火箭等或需额外进行设置才能正常访问IPv6网络服务,就像小红书,抖音,支付宝大都支持IPv6访问,但你使用了QX,默认配置的情况下,你只能通过IPv4网络访问他们的服务;

查看本机IPv6地址:手机/笔记本 - 设置 - Wi-Fi - 找到此时已连接的 Wi-Fi - 更多 - IPv6地址;其他设备类似,或谷歌一下;

其他

分流规则(可选设置)

你可以通过 https://test-ipv6.com/index.html.zh_CN 测试你的浏览器和网络是否支持IPv6,并显示你当前的IPv4 和IPv6 地址。满分10分。

1.进入Qx 配置文件 - 点击编辑,找到[filter_local]配置项;新增 ip6-cidr, ::/0,direct,该设置表示所有IPv6网络均使用 direct 直连即本地网络进行访问,将该设置放在 geoip, cn, direct 上方即可,*** 表示其他你自己设置的规则final, proxy 表示除了已设置好的分流规则外,其他没有明确规定好分流规则的的所有互联网请求,均走策略 proxy,其中 proxy 可以更改为你喜欢的策略,direct,reject等等;

[filter_local]
***
***
ip6-cidr, ::/0,direct
geoip, cn, direct
final, proxy

其中 ip6-cidr, ::/0,direct ,你可以将 direct 改成其他策略:proxy 或 reject;

如果你想知道你的机场节点是否支持IPv6网络,可临时添加分流规则:ip6-cidr, ::/0,proxy,proxy 可改成你指定的策略组或指定的节点,然后再次访问 https://test-ipv6.com/index.html.zh_CN 进行测试,满分10分,如果机场未给节点域名**配置IPv4/IPv6双栈,则不会显示IPv6信息;
你的公网 IPv6 地址是:

复制测试结果中的IPv6地址,打开 https://search.censys.io/https://myip.ms/ ,粘贴,即可查看该IP地址相关信息详情🔎(IP所属ISP运营商/公司/所属国家所在地区/所有者是谁==);

测试完后记得禁用该分流规则;

::/0 仅为举例使用,在日常实践中请使用 明确的 IPv6 地址段

为 CF CDN 全球IPv6节点配置分流规则;

例如 Cloudflare CDN 的 IPv6 地址段,大部分机场官网以及外网大多数互联网服务均依赖 CF 的 CDN,一来可以加速全球各地用户网络访问,二来可以使得官网抵御大规模ddos攻击;关于 Cloudflare 防御设置可以参阅我们更多文章;本博客内容亦托管于 Cloudflare CDN,即支持IPv4/IPv6网络访问,托CF的福,每个月可以省下可观的服务器带宽;

https://www.cloudflare.com/ips/
https://www.cloudflare.com/ips-v6 如下:

2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32
2a06:98c0::/29
2c0f:f248::/32

你可以为 QX 单独为它们添加分流规则 - QX - 设置 - 配置文件 - 编辑 - filter-local:

ip6-cidr,2400:cb00::/32,proxy
ip6-cidr,2606:4700::/32,proxy
ip6-cidr,2803:f800::/32,proxy
ip6-cidr,2405:b500::/32,proxy
ip6-cidr,2405:8100::/32,proxy
ip6-cidr,2a06:98c0::/29,proxy
ip6-cidr,2c0f:f248::/32,proxy

有些用户喜欢看直播的,如果有直播源的IPv6地址,亦可进行分流规则设置,如果直播源在国内的,需要国内IPv6才能访问的,需要将proxy改为direct

附注

参阅:QX - 设置 - 配置文件 - 示例配置;这里有最新的示例;你可以查看作者对各个功能模块的功能描述及操作规范;
参阅:https://github.com/crossutility/Quantumult-X/blob/master/sample.conf
参阅:https://github.com/crossutility/Quantumult-X/issues/94

最后修改:2024 年 08 月 24 日 01 : 11 AM