Linux 的 DNS 配置


本文的起因是某天在用 freshrss 的时候突然报错

Access to database is denied for *** : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for ***.sql.tencentcdb.com failed: Try again

其中的关键信息我使用 * 进行了替代

就提示消息的显示,是指数据库连接不上,但是我也有在用腾讯云的其他数据库服务,并没有出问题。

接下来就是逐一进行排除:

  1. 我在本地手动连接了 freshrss 的数据库,成功!由此判断数据库本身没有问题。

  2. 既然数据库没有问题,那就是服务器的问题,开始检查网络连接,一切正常,除了这个数据库,其他的不受影响。

  3. 然后我在想,是不是网络协议栈中的某一层出错了。

  4. 试着用nslookup 看一下域名信息,查不到 ╰( ̄ω ̄o) ,好了找到病灶了,开始动手术。

  5. 先看其他域名是否正常,使用 nslookup baidu.com 是成功解析的,那估计就是现在配置的域名服务器没有收录这个域名

  6. 结果一看,原本的就配置了个本地服务器。。。,加上阿里的公共 DNS 解析服务器

    sudo nano  /etc/resolv.conf

  7. 上面只是临时修改 dns,重启后即失效下面是永久修改

  8. 修改 /etc/systemd/resolved.conf 文件

    vi  /etc/systemd/resolved.conf
  1. 这里我们可以看到这些参数:

    # 指定 DNS 服务器,以空白分隔,支持 IPv4 或 IPv6 位置
    DNS=8.8.8.8 114.114.115.115
    # 备用 DNS 服务器
    FallbackDNS=8.8.8.8
    # 设置搜索域名
    Domains=domain.com
    # 设置 LLMNR 是否激活,可用的选项有 yes、no、resolve
    LLMNR=yes
    # 设置 MulticastDNS 是否激活,可用的选项有 yes、no、resolve
    MulticastDNS=yes
    # 设置 DNSSEC 是否激活,可用的选项有 yes、no、allow-downgrade
    DNSSEC=yes
    # 设置缓存是否激活,可用的选项有 yes、no、no-negative
    Cache=no-negative

    根据需要修改 resolved.conf 文件中的DNS,然后保存。

  2. 重启 systemd-resolved 服务

    systemctl restart systemd-resolved
  1. 设置开机启动 systemd-resolved 服务

    systemctl enable systemd-resolved
  2. 备份 systemd-resolved 托管文件 resolv.conf

    mv /etc/resolv.conf /etc/resolv.conf.bak
  3. 重新生成。

    ln -s /run/systemd/resolve/resolv.conf /etc/

如果本文帮助到了你,帮我点个广告可以咩(o′┏▽┓`o)


评论
 上一篇
Go 设计模式-函数选项模式 Go 设计模式-函数选项模式
函数选项模式是 Go 语言中常用的一种设计模式,它可以让我们在创建对象时更灵活地设置选项,避免了使用多个构造函数或者传递大量参数的问题。本文通过一个具体的示例,详细说明了如何在 Go 中实现函数选项模式。
2023-11-09
下一篇 
Buffer-Overflow Attack(Set-UID Version) Buffer-Overflow Attack(Set-UID Version)
本文深入探讨了缓冲区溢出漏洞及其利用方法,基于Seed-Lab的实验环境。文章首先解释了缓冲区溢出的基本概念和产生原因,随后详细介绍了如何在32位和64位系统中发起攻击,包括对抗地址随机化、StackGuard保护机制和不可执行栈等安全措施。
2023-11-03
  目录