在启动时更改/设置 DNS 设置

在启动时更改/设置 DNS 设置

我遇到过一种情况,即我无法授予对计算机的访问权限,但在某些情况下可能需要更改 IP 设置。我通过提供一个 USB 棒和一个包含静态和 DHCP 信息(根据需要重命名)的文件以及一个脚本来解决这个问题,该脚本在重新启动时会检查 USB 棒中的文件并覆盖 /etc/network/interfaces

到这里,一切都很好。

但是,文件 /etc/resolv.conf 保存 DNS 信息(据我所知)并且我不确定该文件的结构如何。

对于我来说,构建一个文件 /etc/resolv.conf 的最佳方法是什么,该文件可以用上面的 /etc/network/interfaces 但 DNS 设置覆盖?

举例来说,我使用静态 IP,我的 /etc/resolv.conf 如下所示:

    nameserver 192.168.1.254 

我已看到一个演示文件,其中似乎包含在 /etc/network/interfaces 文件中,如下所示(这只是从搜索中得出的,不是我的文件):

    iface eth0 inet static
        address 192.168.3.3
        netmask 255.255.255.0
        gateway 192.168.3.1
        dns-search example.com
        dns-nameservers 192.168.3.45 192.168.8.10

我可以将所有信息放在一个文件中吗?如果可以,那么 /etc/resolv.conf 文件中的内容是什么?

说实话,我宁愿将所有内容放在一个文件中,这样最终用户只需修改一个文件就可以更轻松。

如果可以在一个文件中完成,那么 DHCP 的示例是什么(关于 DHCP 设置)

提前感谢您的任何帮助和建议!

答案1

您不应该/etc/resolv.conf在 Ubuntu 中编辑。

Ubuntu 正在使用当 DNS 信息被 DHCP 客户端、NetworkManager 或 更改时resolvconf生成的程序。/etc/resolv.confifup

最好的办法是添加

dns-nameservers 192.168.3.45 192.168.8.10

到您的 中的相应节/etc/network/interfaces。进行此更改后,您通常必须ifdownifup要将信息推送到的界面resolvconf,从而/etc/resolv.conf,但可以在没有下载的情况下推送信息,如以下答案中所述,它还提供了一些可能对您有帮助的背景信息。

更改 /etc/network/interfaces 后,如何让 resolvconf 重新生成 resolv.conf?

相关内容