关于 dnscrypt-proxy 的使用问题

大家好,我是 opensuse 新人。刚用上滚动更新版。刚刚入门,在 dnscrypt 的使用上遇到了困难。论坛大神很多,希望在这里能够获得解答:grinning:

我按照 修改 dns 的说明 ,从官网下载了 http://software.opensuse.org/download.html?project=server%3Adns&package=dnscrypt-proxy 版本的 dnscrypt,并且点击安装了。

然后用 rpm -ql dnscrypt-proxy | grep systemd 检索得到服务名称为 /usr/lib/systemd/system/dnscrypt-proxy@.service,于是我运行了如下几条命令启用 dnscrypt 服务:

sudo systemctl enable dnscrypt-proxy@.service
sudo systemctl start dnscrypt-proxy@default.service

运行后,我用 sudo systemctl status 检查之,显示服务已经运行,似乎没有什么异常。

于是,我着手把 resolv.conf 改为 nameserver 127.0.0.1 ,结果,仍然不能成功打开被 dns 干扰的网站。

并且还有一个严重的问题,/etc/resolv.conf 在每次网络状况变化后都会被重置,不能储存永久性的变化。

我猜我的问题在于没有正确地指定 dns 为 127.0.0.1 所致。搜索了很久,都没有在网上找到解决办法。

请问我遗漏了什么配置操作吗?

————————————————

附:

还有一个比较神奇的现象,我第一次装的是官网的 ymp 版本,然后有一次运行 zypper dup 的时候,提示说目前安装的 dnscrypt 版本冲突,解决办法是降级。我降级了再尝试了很久,都没法使得 dnscrypt 正常运行起来。目前已经 remove 掉较低版本,重新安装了 ymp 的版本

关于第二个问题,这里有一个略显 Hack 的 tip:

resolv.conf 默认是一指向别处的链接,前段时间上车 smartdns 也需要配置为本地,机缘巧合之下我的 resolv.conf 变成了一个正常文本文件,并且网络变化之后也并没有继续变成链接文件,所以你只需要建立同名文本文件,即可不被网络环境变化重置,若需要恢复也直接 sudo netconfig update -f 即可。

1赞

另外 dnscrypt-proxy 在默认 oss 源里有,而且和 wiki 指向的 server:dns 库貌似版本是一样的?

已经尝试您的提示。现在 /etc/resolv.conf 是一个普通文件了,在写入 nameserver 127.0.0.1 后,整个网络连接都罢工了。正常网站和被 dns 干扰的网站都打不开,执行 ping baidu.com 结果:

ping: baidu.com: 域名解析暂时失败

——————
更正:我在这种情景下回复了此帖。suse 论坛的访问似乎没有被影响,很奇怪

没有用过 dnscrypt-proxy 是不是还需要另外的配置,比如上游 dns 什么的?那篇中文 wiki 上次变动已经是 14 年了,去参考一下其他教程可能靠谱一点。


这个会不会是你一直打开着网页,不需要重新进行 dns 请求

其实 Firefox 的 DoH 就能满足需求,没必要去改系统级别

看一下 dnscrypt-proxy 的 log,它可能根本没有连上适合的服务器

学习一下 systemd 的 instantiated service。正确的用法是:

systemctl enable/start dnscrypt-proxy@ 配置名

你连 /etc/dnscrypt-proxy.conf.d 下面的配置都没有吧。

题外话:不知道为什么已经出来几年的功能没人知道;不知道为什么发行版遍地都是的做法在 Archlinux 就是 brilliant idea,在 openSUSE 就叫 user experience killer;不知道为什么为啥一个服务器软件会期望装上直接就能用(以前我也这么想,我曾经认为 nginx 装上我的 wordpress 就应该能访问)…

1赞

友情提醒楼主:
尝试楼上正统方案之前先跑跑 sudo netconfig update -f 才能恢复链接文件
之后再修改 /etc/resolv.conf 不迟

再次友情提醒楼主:
配置 NETCONFIG_DNS_POLICY="" 之后,sudo netconfig update -f 不会强制覆盖 resolv.conf 了,并且重启之后会将 resolv.conf 链接源文件清空,即你在这种配置下,若你的 /etc/resolv.conf 为那个链接文件,内容也会为空。

(然后我还是继续用我的文本文件 Hack 好了。

大神们,我想问下,这个和 git 上那个 tcp dns proxy 有啥区别?这个我整不了