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.conf
,systemd
本身是作为启动管理的软件,现在野心有点大,什么都想插一脚。但是看到支持DNSSEC
和DOT
支持,之后可能会用到,所以还是先进行保留。📎 参考文章
有关Debian安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!