在启动时更改/设置DNS设置
我有一种情况,我不提供对机器的访问权限,但可能存在需要更改IP设置的情况。 我已经通过提供带有静态和DHCP信息(适当时重命名)的文件的USB记忆棒和重启后的脚本,检查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设置)
提前感谢您的任何帮助和建议!
你不应该在Ubuntu中编辑/etc/resolv.conf
。
当DHCP客户端,NetworkManager或ifup
更改DNS信息时,Ubuntu正在使用resolvconf
程序生成/etc/resolv.conf
。
最好的办法是添加
dns-nameservers 192.168.3.45 192.168.8.10
到/etc/network/interfaces
的相应节。 进行此更改后,您通常必须使用ifdown
和ifup
将信息的界面推送到resolvconf
并因此推送到/etc/resolv.conf
,但是可以在没有upup的情况下推送信息,如以下答案中所述还提供了一些可能对您有帮助的背景信息。
更改/ etc / network / interfaces后,如何让resolvconf重新生成resolv.conf?