在受限的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' {} +

评论

  1. 如果因为什么奇怪的原因, ali的dns检测也不能工作, 就是想强行取消脚本报错退出的功能, 那么看这篇
    https://zelikk.blogspot.com/2024/10/233boy-sing-box-skip-err.html

    回复删除

发表评论

The Hot3 in Last 30 Days

RackNerd VPS搭Hysteria2 HY2梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存

RackNerd VPS搭V2Ray WSS梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存