2020年12月10日星期四

在openwrt中使用luci-app-https-dns-proxy,并设置代理

 大家知道在国内dns是被干扰的。而且在DNS干扰方面是越来越严重。这十多年干扰的方式过程是这样的:

1. 十年前干扰DNS,就是国内的DNS服务器将一些海外网站的IP换成一个不可到达的假IP。这时候,可以通过host,或者更换成国外的DNS服务器就可以避免干扰;

2. 后来除了DNS继续干扰,同时将一些网站IP直接丢包。如谷歌IP,即使你获得真的IP也无法连上;

3. 接着将国外多数DNS服务器IP直接丢包,这样即使你更换成国外的DNS服务器,发现已经连不上DNS服务器,所以也就查询不到海外网站的IP。

4. 再后来,国内建立个假的国外DNS服务器,如8.8.8.8 和1.1.1.1, 你发现ping是正常的。即使你将你的DNS服务器设置为上面这些DNS服务器,发现返回来的还是干扰的IP地址。因为你连上的就是一个假的“国外”DNS服务器。


针对上面的问题,一个解决方案是使用DNS Over HTTPS Proxy (DoH)+privoxy。 下面介绍如何在openwrt上使用DoH

1. 在Openwrt上输入命令:

opkg update
opkg install luci-app-https-dns-proxy
opkg install privoxy

2. 设置privoxy

   修改/etc/config/privoxy 文件,提换为如下内容:

config	privoxy	'privoxy'
	option	confdir		'/etc/privoxy'
	option	logdir		'/var/log'
	option	logfile		'privoxy.log'
	list listen_address	'0.0.0.0:8118'
	option  forward_socks5   '/ 0.0.0.0:1080  .'

这里假定你已经安装了sock5的代理,而且端口是1080。 安装privoxy的 原因是将socks5代理转成http的代理。我发现luci-app-https-dns-proxy不支持socks5,只支持http,虽然一些文档中说是支持socks5的。你们也可以尝试你们的是否可以支持socks5.

3. 设置luci-app-https-dns-proxy


如果你试试socks5, 可以将代理这里改成 socks5://127.0.0.1:1080 (但是我的不成功)。如果不设置代理,在个别区域DoH是没法使用的,因为如上面第4点原因,DoH是依靠bootstrap_dns (1.1.1.1), 这个IP地址本身就是假的。所以https的证书验证就没有通过,所以查询不到IP。只有通过国外代理的方式才能找到真正的IP。

4. 设置dnsmasq

    编辑文件/etc/dnsmasq.conf, 在文件后面加上一行  server=127.0.0.1#5054

至于设置中需要用到的socks5代理,shadowsocks、vmess、vless、trojan、xray等等这些工具都能提供。这里不详细介绍。

没有评论:

发表评论

安装 PaddleOCR的方法

  安装飞桨版本:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/develop/install/pip/windows-pip.html 命令:  python -m pip...