🛠Debian 10通过systemd-resolved修改DNS

2025-2-6|2025-2-12
Yawatasensei
Yawatasensei
type
status
date
slug
summary
tags
category
icon
password
😀
过年时候在CoalCloud的服务器到期忘了续费,结果机器关停。续费之后发现Caddy的反代无论如何都无法生效,查看日志发现是无法申请到域名的证书,无法解析letsencrypt的域名。直接修改/etc/resolve.conf 又无法保存,发现是一个链接文件。尽管直接删除链接文件之后,重新新建一个resolve.conf 可以解决DNS解析的问题,但是还是想在系统根源上解决问题。

📝 问题复现

起因是Ahref提示我博客的大部分图片都挂了,无法正常访问,我直接访问会提示502 bad gateway,而我的图片是通过CoalCloud的服务器提供的反向代理来使用notion图床,所以根源在于反向代理挂了。

Caddy日志

我的反代是通过Caddy来实现。Caddy的日志的如下:
可以看到是因为无法解析https://acme-staging-v02.api.letsencrypt.org/directory 域名而导致的签发证书失败。原因在于这台云服务器本身的DNS配置问题。

云服务器DNS检查

在我的一贯印象中,Linux系统的DNS服务配置是在/etc/resolve.conf 中,可以在这台Debian 10的云服务器上,我通过cat命令输出/etc/resolve.conf 内的内容为空,而且通过vim 去编辑,即便是具有root 权限的模式下,却无法保存,具体的vim错误提示忘记截图保存了,大概意思就是无法写入到resolve.conf这个文件中。
通过ls -l命令查看,/etc/resolve.conf 文件是/run/systemd/resolve/stub-resolv.conf 的软链接文件。
通过查阅资料,原来Debian 10系统的DNS服务是由systemd-resolved 提供,同时/run/systemd/resolve/stub-resolv.conf 也是由systemd-resolved 生成,那么修改系统DNS的方法就不再是修改/etc/resolve.conf文件,而是去修改systemd-resolved的配置文件,配置文件位于/etc/systemd/resolved.conf ,文件内容如下:
将DNS前面的注释去掉,并添加上Google DNS和Cloudflare DNS,并删除掉Cache前面的注释,允许DNS Cache缓存之后,通过命令systemctl restart systemd-resolved.service 重启即可。

🤗 总结归纳

其实也可以非常粗暴的将systemd-resolved干掉,还使用原来的/etc/resolve.confsystemd本身是作为启动管理的软件,现在野心有点大,什么都想插一脚。但是看到支持DNSSECDOT支持,之后可能会用到,所以还是先进行保留。

📎 参考文章

 
💡
有关Debian安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~ 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
SEO和Google Adsense的关系RouterOS如何直接访问光猫
Loading...