在受限的VPS环境下 使用233boy的sing-box脚本 检测DNS域名解析问题
在受限的VPS环境下 使用233boy的sing-box脚本.
在安装完后, 如果想搭建带域名的协议, 如 vmess+websocket+tls 协议.
233脚本会校验你的域名是否解析到正确的IP.
这时, 也许你会遇到问题. 脚本会报错说你的域名没有正确设置DNS解析.
思路
原始233脚本的代码是:
is_host_dns=$(_wget -qO- --header="accept: application/dns-json" "https://one.one.one.one/dns-query?name=$host&type=$is_dns_type")
这个 one.one.one.one 肯定是在受限的VPS环境下不能访问的.
在我之前的博文中, 为了解决检测本机IP的问题, 把 one.one.one.one 替换为了 www.cloudflare.com
所以在检测DNS解析的地方就出问题了.
实际上, 先不说在受限的VPS上, 就是在自由的网络环境下, https://www.cloudflare.com /dns-query 也是没有检测DNS解决的功能的.
正确的应该是 https://cloudflare-dns.com/dns-query
在受限的VPS环境下, 可以用什么方法检测DNS解析呢?
功能可用的选择之一是 alidns (安全性和稳定性请自行评估)
source: https://www.alidns.com/knowledge?type=SETTING_DOCS#company_json
========
实践
在 sing-box 脚本安装完之后, 将 one.one.one.one/dns-query 替换为 dns.alidns.com/resolve
落实为 sed 命令则为
find /etc/sing-box/sh -type f -name "*.sh" -exec sed -i 's/one\.one\.one\.one\/dns-query/dns.alidns.com\/resolve/gi' {} +
========
完
当然, 本文只处理了检测DNS解析的问题.
如果你在受限的VPS环境下 使用233boy脚本, 在本文的处理完成后, 还要处理检测本机IP的问题, 请参考之前的博文.
========
后记
同理可得
233boy的v2ray脚本
find /etc/v2ray/sh -type f -name "*.sh" -exec sed -i 's/one\.one\.one\.one\/dns-query/dns.alidns.com\/resolve/gi' {} +
233boy的xray脚本
find /etc/xray/sh -type f -name "*.sh" -exec sed -i 's/one\.one\.one\.one\/dns-query/dns.alidns.com\/resolve/gi' {} +
如果因为什么奇怪的原因, ali的dns检测也不能工作, 就是想强行取消脚本报错退出的功能, 那么看这篇
回复删除https://zelikk.blogspot.com/2024/10/233boy-sing-box-skip-err.html