NetworkManager 将生成 resolv.conf 的域名存储在哪里?

NetworkManager 将生成 resolv.conf 的域名存储在哪里?

我在 CentOS 6 上无法正确设置域名。我的 resolv.conf 如下所示:

nameserver 198.6.100.25
nameserver 198.6.100.53
nameserver 198.6.100.38
# Generated by NetworkManager
domain andyshinn.as
search vcolo.andyshinn.as

我有一个 eth0 接口,其配置如下:

DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
HWADDR=00:0c:29:3b:2a:70
IPADDR=192.168.50.6
NETMASK=255.255.255.0
DNS2=198.6.100.53
GATEWAY=192.168.50.1
DNS1=198.6.100.25
IPV6INIT=no
USERCTL=no

Hosts 文件也可供参考:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.50.6    myvm myvm.vcolo.andyshinn.as

我正在尝试将域名更改为vcolo.andyshinn.as。但重启后,它又恢复为andyshinn.as。通过内联注释,我可以看到它是由 NetworkManager 生成的。但是,system-config-network-tui没有任何关于域名的信息(只有搜索路径)。

Afgrep -r 'andyshinn.as' /etc/*只会显示/etc/sysconfig/networking/profiles/default/resolv.conf另一个编辑选项。但我也尝试编辑此文件,结果相同。这是在 VMware Workstation 中运行的虚拟机。但我已为虚拟机正在使用的 VMnet 接口禁用了 DHCP 服务器。

我不想盲目地禁用 NetworkManager(这似乎是解决大多数 NetworkManager 相关问题的答案),而是想更多地了解它的工作原理和保存配置。那么我的系统最终会以 为andyshinn.as域名,需要进行哪些更新才能将其设置为vcolo.andyshinn.as

答案1

您需要编辑以下文件:/etc/sysconfig/network。设置以下内容:

HOSTNAME=vcolo.andyshinn.as
DOMAIN=andyshinn.as

答案2

将短名称设置到 /etc/sysconfig/network 中

HOSTNAME=vcolo

编辑 /etc/hosts 并设置另一行如下:

[root@vcolo ~]# cat /etc/hosts
127.0.0.1   vcolo.andyshinn.as vcolo
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

答案3

NetworkManager 使用系统中已有的文件。请查看此脚本,/etc/NetworkManager/dispatcher.d/11-dhclient它是 NetworkManager 配置文件的一部分。

具体来说有以下两行:

...
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
...

...    
[ -f /etc/sysconfig/network-scripts/ifcfg-$interface ] && \
    . /etc/sysconfig/network-scripts/ifcfg-$interface
...

如果这些文件存在,这些行将获取 /etc/sysconfig/network 中的内容以及不同的 ifcfg-$interface 文件(ifcfg-eth0、ifcfg-wlan0 等)的内容。

通常你需要/etc/sysconfig/network像这样设置你的文件:

NETWORKING=yes
HOSTNAME=myhost

并设置 DHCP 客户端配置文件,/etc/dhcp/dhclient.conf使其包含以下行:

supersede domain-name "my.domain.com";
prepend domain-search "my.domain.com";

资源

答案4

这在 Fedora 14 上对我有用。您也可以尝试以下命令:

system-config-network

“DNS 配置”您将找到一个用于填写主机名和域的单元格。

我发现,尽管我的网络掩码在 /etc 中的各种 ifcfg-eth0 文件中配置正确,但在启动时设置错误。没有找到它设置在哪里,但使用 system-config-network 我发现它设置为错误的值。使用此工具更正它,问题解决了!

希望它也适合你。

相关内容