Open Jinnrry opened 1 month ago
背景:我梯子服务器没有ipv6,我使用docker pull拉镜像的时候发现下载没有走代理。进一步排查后是因为docker.io域名解析结果有ipv6,下载的时候优先使用ipv6,从而导致没有走代理。
问题分析:
目前helloworld项目已经引入了chinadns-ng作为dns服务器,我看chinadns-ng的启动命令为
/var/etc/ssrplus/bin/chinadns-ng -l 5333 -4 china -p 3 -c 114.114.114.114 -t 127.0.0.1#5335 -N -f
其中-N表示禁用ipv6,于是我使用 nslookup docker.io 127.0.0.1:5333 测试,返回结果中没有ipv6解析结果。
-N
nslookup docker.io 127.0.0.1:5333
但是openwrt使用dnsmasq管理53端口,而dnsmasq配置为GFW域名通过dns2tcp去查询海外dns,非GFW域名使用chinadns-ng查询。dns2tcp的查询结果是没有禁用ipv6的,chinadns是禁用ipv6的,这样最终就导致国内域名没有ipv6,反而海外域名有ipv6。
背景:我梯子服务器没有ipv6,我使用docker pull拉镜像的时候发现下载没有走代理。进一步排查后是因为docker.io域名解析结果有ipv6,下载的时候优先使用ipv6,从而导致没有走代理。
问题分析:
目前helloworld项目已经引入了chinadns-ng作为dns服务器,我看chinadns-ng的启动命令为
/var/etc/ssrplus/bin/chinadns-ng -l 5333 -4 china -p 3 -c 114.114.114.114 -t 127.0.0.1#5335 -N -f
其中
-N
表示禁用ipv6,于是我使用nslookup docker.io 127.0.0.1:5333
测试,返回结果中没有ipv6解析结果。但是openwrt使用dnsmasq管理53端口,而dnsmasq配置为GFW域名通过dns2tcp去查询海外dns,非GFW域名使用chinadns-ng查询。dns2tcp的查询结果是没有禁用ipv6的,chinadns是禁用ipv6的,这样最终就导致国内域名没有ipv6,反而海外域名有ipv6。