dns over https by pure python
dohpp的全名是DNS over HTTPS by Pure Python
,它是由Python构建的,依赖于GoogleDNS的DOH服务。目的是为了避免DNS抢答,DNS污染和DNS劫持。
可以使用dohpp作为DNS服务器来维护网络的干净和安全~
git clone
git clone https://github.com/JamCh01/dohpp.git
cd dohpp
pip install -r requirements.txt
请注意,因为使用了asyncio,所以仅支持Python3。
dohpp提供了默认的config.json
,它位于dohpp/dohpp/config.json
。请根据实际情况进行修改:
{
"proxy": {
"addr": "127.0.0.1",
"port": 1080,
"auth": ""
},
"google_dns_url": "https://dns.google.com/resolve?{ext}",
"cache_timeout": 1800,
"async_https": false,
"listen": "127.0.0.1",
"port": 53,
"local": ""
}
proxy字段指定了socks5的代理,因为某些特殊的原因使用GoogleDNS需要代理。
查询后的域名解析记录缓存时间,默认1800s。
使用异步HTTPS请求来代替同步HTTPS请求,默认false。
dohpp工作的IP,默认为127.0.0.1。
dohpp工作的端口,默认为53。
edns使用,目的是获得最合理的解析记录,默认为空。请注意,为空时可能会使用socks5服务器的最优查询结果进行返回。
当然这些配置可以不设置,或者丢失部分记录,dohpp会使用默认的配置进行工作。
python /path/to/dohpp/server.py
之后更改本机DNS服务器为127.0.0.1
或配置中listen的数值。
It works well!