DNS解锁失败,试试在VPS上使用DOH

缘起

购买DNS解锁服务后,一直使用的不错,既可以通过修改本机dns,也可以通过修改客户端的dns实现解锁。

结果在一台VPS上吃瘪,不管怎么设置,都无法进行解锁,后来了解到是因为idc做了dns劫持,所以不管怎么设置dns都无效。于是乎最后通过DOH的配置才用上DNS解锁。

环境说明:

  • VPS一台:操作系统Debian11
  • 解锁DOH一个(是一个https网址),如:https://jiesuo.hkdns.net/dns-query

配置过程

安装DNSProxy

VERSION=$(curl -s https://api.github.com/repos/AdguardTeam/dnsproxy/releases/latest | grep tag_name | cut -d '"' -f 4) && echo "Latest AdguardTeam dnsproxy version is $VERSION"
wget -O dnsproxy.tar.gz "https://github.com/AdguardTeam/dnsproxy/releases/download/${VERSION}/dnsproxy-linux-amd64-${VERSION}.tar.gz"
tar -xzvf dnsproxy.tar.gz
mv linux-amd64/dnsproxy /usr/bin/dnsproxy
rmdir linux-amd64

测试DNSProxy和DOH

启动一个dns代理进程:

dnsproxy -l 127.0.0.1 -p 53 -u https://jiesuo.hkdns.net/dns-query -b 8.8.8.8:53

测试DOH的DNS:

保持刚才启动的dns代理进程,再开一个ssh终端,进行测试:

dig @127.0.0.1 streamdns-test-front.com
##以下为输入内容,主要查看Anser section部分的内容,如果能够解析,则成功
; <<>> DiG 9.16.27-Debian <<>> example.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30028
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            20944   IN      A       93.184.216.34

;; Query time: 32 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Sep 14 14:47:01 CST 2022
;; MSG SIZE  rcvd: 56

测试成功后,然后把dns代理进程停掉。

将DNSProxy做成后台进程

安装Supervisor :

apt install supervisor -y

设置配置文件:

 

注意修改command中的命令,为刚才测试成功的dns代理命令,本例为:dnsproxy -l 127.0.0.1 -p 53 -u https://jiesuo.hkdns.net/dns-query -b 8.8.8.8:53

cat > /etc/supervisor/conf.d/dnsproxy.conf <<EOF
[program:dnsproxy]
command = dnsproxy -l 127.0.0.1 -p 53 -u https://jiesuo.hkdns.net/dns-query -b 8.8.8.8:53
user = root
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/dnsproxy.log
stderr_logfile = /var/log/supervisor/dnsproxy.error.log
environment = LANG="en_US.UTF-8"
EOF

重新启动Supervisor服务:

systemctl restart supervisor
一个本地的dns解析服务安装成功,剩下的就随意发挥了

返场,设置本地dns为127.0.0.1

本处演示简单粗暴的debian的dns配置方法,其余设置方法自行查询:

echo -e "nameserver 127.0.0.1" > /etc/resolv.conf #写入DNS
chattr +i /etc/resolv.conf #锁定文件

 

 

 

 

THE END
分享
二维码
海报
DNS解锁失败,试试在VPS上使用DOH
缘起 购买DNS解锁服务后,一直使用的不错,既可以通过修改本机dns,也可以通过修改客户端的dns实现解锁。 结果在一台VPS上吃瘪,不管怎么设置,都无法进行解……
<<上一篇
下一篇>>