由于国内网络环境特殊,经常在服务器上使用 proxychains 来开展一些工作。但是 proxychains 如果启用了 proxy_dns
这一项便会使用硬指定的 DNS 服务器 4.2.2.2
(微软的),这个 DNS 服务器经常抽风,恰逢今天用着用着又抽风了,就找了一下解决方案。
proxychains 使用一个 shell 脚本来指定 DNS 服务器位置,这个脚本名为 proxyresolv
。首先在系统目录下找到该文件:
sudo find / -name proxyresolv
笔者系统为 Debian 10.2 x64。执行上述命令后找到 proxyresolv
文件位置为 /usr/lib/proxychains3/proxyresolv
。
然后编辑该文件,打开即可看到那个 4.2.2.2
,更改为喜欢的 DNS 服务器即可:
#!/bin/sh
# This script is called by proxychains to resolve DNS names
# DNS server used to resolve names
DNS_SERVER=${PROXYRESOLV_DNS:-4.2.2.2} # 修改此处的 DNS 服务器地址
参考资料:
https://blog.carnal0wnage.com/2013/09/changing-proxychains-hardcoded-dns.html