AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 732325
Accepted
Adam C
Adam C
Asked: 2015-10-29 11:02:00 +0800 CST2015-10-29 11:02:00 +0800 CST 2015-10-29 11:02:00 +0800 CST

如何在 CentOS 中保留 resolv.conf 选项,例如旋转、超时?

  • 772

CentOS 将/etc/resolv.conf定期清除任何手动更改。Linux 中的默认设置在合理时间内故障转移方面很差(每次以相同的顺序查询名称服务器,超时 5 秒,重试 2 次)。

因此,您的第一个 DNSresolv.conf本质上是关键路径。如果它失败了,您可以在故障转移之前查看 10 秒。

这些默认值是可以调整的(参见resolv.conf手册页),但是如何在 CentOS 中永久更改任何更改并通过重新启动等保持不变?

domain-name-system
  • 7 7 个回答
  • 25357 Views

7 个回答

  • Voted
  1. Best Answer
    Adam C
    2015-10-29T11:06:24+08:002015-10-29T11:06:24+08:00

    答案可以在/sbin/dhclient-script:

    if [ -n "${RES_OPTIONS}" ]; then
        echo "options ${RES_OPTIONS}" >> ${rscf}
    fi
    

    RES_OPTIONS但是,您可以在哪里设置以使脚本拾取它并不是很明显- 可以在ifcfg-ethX文件中设置搜索域等某些内容,但在其他地方设置解析器选项。您想要的文件实际上是/etc/sysconfig/network. 要设置相关选项,请在该文件中添加类似于此行的内容:

    RES_OPTIONS="rotate timeout:1 retries:1"
    

    这会将超时设置为 1 秒,使用一次重试并告诉客户端每个请求轮换其解析器,而不是每次都按顺序遍历列表。

    如果您想让更改立即生效,请发出service network restart命令并检查您的新功能/etc/resolv.conf。这是我在测试时的样子:

    # cat /etc/resolv.conf 
    ; generated by /sbin/dhclient-script
    search example.com
    options rotate timeout:1 retries:1
    nameserver 10.1.1.2
    nameserver 10.1.1.1
    
    • 15
  2. Thomas Guyot-Sionnest
    2020-04-16T20:18:28+08:002020-04-16T20:18:28+08:00

    公认的答案是在使用旧版网络脚本时。如果您使用NetworkManager,您甚至可能没有/etc/sysconfig/network,如果您这样做,它仍然不会用于由NetworkManager管理的连接。

    如果您使用NetworkManager:

    要添加选项,例如添加rotate到bond0:

    nmcli con mod bond0 +ipv4.dns-options rotate
    

    要删除该选项:

    nmcli con mod bond0 -ipv4.dns-options rotate
    

    +改变选项也很好;NetworkManager足够聪明,可以检测现有选项并更新它们。例如,更改超时值:

    root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
    ipv4.dns-options:                       "rotate,timeout:5"
    root@debian:~# nmcli con mod bond0 +ipv4.dns-options timeout:3
    root@debian:~# nmcli con show bond0 |grep ipv4.dns-options
    ipv4.dns-options:                       "rotate,timeout:3"
    

    这意味着该值将被删除,甚至不需要。要删除超时:

    nmcli con mod bond0 -ipv4.dns-options timeout
    

    它也可以使用超时值,但该值将被忽略,因此删除timeout:5也将删除任何其他超时值。

    注意:在调查这个问题时,我发现了一个在network-manager v1.14.6、v1.15.2-dev和v1.16中修复的相关错误。如果您遇到任何问题,请先检查您的网络管理器版本。

    • 6
  3. Hielke Walinga
    2020-06-30T09:56:58+08:002020-06-30T09:56:58+08:00

    由于这个答案出现在我搜索如何在我的机器(MX Linux、Debian 衍生产品)上执行此操作并且它没有该发行版的答案,我想添加如何为该发行版执行此操作:

    编辑这个文件:

     /etc/resolvconf/resolv.conf.d/head
    
    • 1
  4. Evgeny F
    2017-02-12T12:18:20+08:002017-02-12T12:18:20+08:00

    只需添加

    resolv_conf_options=rotate\ timeout:1\ retries:1
    

    在你的resolvconf.conf

    • 0
  5. Aaron Copley
    2020-04-18T08:22:47+08:002020-04-18T08:22:47+08:00

    如果您需要使用平面文件而不是nmcli命令(例如使用配置管理工具)来执行此操作,Red Hat 提供了另一种解决方案。

    创建一个脚本/etc/NetworkManager/dispatcher.d/15-resolv,将自定义复制/etc/resolv.conf到位。

    #!/bin/bash
    #
    # Description : script to override default resolv.conf file
    # with customized file.
    cp -f /etc/resolv.conf.custom /etc/resolv.conf
    

    重新启动 NetworkManager 后,将执行此脚本,将文件替换为您自己的文件。

    https://access.redhat.com/solutions/61921

    • 0
  6. Aaron Copley
    2020-04-18T08:32:46+08:002020-04-18T08:32:46+08:00

    您可以告诉 NetworkManager 不要一起管理/etc/resolv.conf文件。

    1. 创建/etc/NetworkManager/conf.d/90-dns-none.conf具有以下内容的文件:

      [main]
      dns=none
      
    2. 重新加载 NetworkManager 服务:

      systemctl reload NetworkManager
      

    来自的文档有第二种解决方案,其中涉及用/etc/resolv.conf符号链接替换文件。

    读一读:22. 手动配置 /etc/resolv.conf 文件

    • 0
  7. Chuichi
    2015-10-29T18:21:19+08:002015-10-29T18:21:19+08:00

    上次我新订阅的 linux VPS 也遇到了同样的问题。我如何解决它是使用 chattr +i 命令使文件不可变。在对 resolv.conf 文件进行必要的更改后,只需转到 /etc 文件夹并运行它:

    chattr +i resolv.conf

    如果您想恢复设置,只需执行以下操作:

    chattr -i resolv.conf

    完整指南供您参考: http ://boxtutor.com/fix-etcresolv-conf-is-not-saving-after-server-reboot/

    • -4

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve