Jam*_*wey 7 rhel dns centos networkmanager resolv.conf
使用 Red Hat 7 中的网络管理器,我发现在更改主机名后使用旧/错误搜索域的问题。在 /etc/resolv.conf 中,我看到:
# Generated by NetworkManager
search **ec2.internal** d.sample.com
nameserver 172.31.0.2
Run Code Online (Sandbox Code Playgroud)
当我输入时hostname,我会看到我想要的输出:
[root@testing01 ~]# hostname
testing01.d.sample.com
Run Code Online (Sandbox Code Playgroud)
但不是替换搜索域,而是将新域名附加到搜索域。我想完全摆脱 ec2.internal 并完全给这个域斧头。/etc/resolv.conf直接编辑文件会被网络管理器破坏。我不想禁用网络管理器,我宁愿不禁用 NM 的管理,/etc/resolv.conf除非我绝对必须这样做。
因此,1) 为什么 NM 不断恢复我的搜索域和 2) 如何仅使用 nmcli 或命令行工具解决此问题?
经过几个小时的摸索,我能够解决这个问题。事实证明,这是通过 DHCP 设置的:
nmcli -f ip4 device show eth0
IP4.ADDRESS[1]: 172.31.53.162/20
IP4.GATEWAY: 172.31.48.1
IP4.DNS[1]: 172.31.0.2
IP4.DOMAIN[1]: ec2.internal
Run Code Online (Sandbox Code Playgroud)
我能够通过覆盖网络接口的 ipv4.dns-search 值来覆盖 IP4.DOMAIN[1]:
nmcli connection modify uuid \`nmcli connection show --active | grep 802-3-ethernet | awk '{print $(NF-2)}' | tail -n 1` ipv4.dns-search d.sample.com
Run Code Online (Sandbox Code Playgroud)
或者更简单地说,
nmcli connection modify System\ eth0 ipv4.dns-search "d.sample.com"
Run Code Online (Sandbox Code Playgroud)
然后你必须重新启动NetworkManager
systemctl restart NetworkManager.service
Run Code Online (Sandbox Code Playgroud)
我还发现,因为我正在使用 Amazon 实例,所以我需要更新我的 cloud.cfg 文件。
当网络发生更改或更新时,/etc/resolv.conf 文件将始终被覆盖。您可以通过编辑文件/etc/resolvconf/resolv.conf.d/夹中的文件来控制写入的内容......即head文件。
将其放在/etc/resolvconf/resolv.conf.d/head文件中:
nameserver 172.31.0.2
search testing01.d.sample.com
Run Code Online (Sandbox Code Playgroud)
现在这将是/etc/resolv.conf每次更新时的标题。
对于基于 Redhat 的系统,请使用以下步骤:
编辑位于以下位置的网络脚本:/etc/sysconfig/network-scripts。您将看到检测到的网络设备的条目(即网络适配器的 ifcfg-eth0 eth0)。
编辑此文件 ( /etc/sysconfig/network-scripts/ifcfg-eth0):
附加这一行:
DOMAIN=sample.com
Run Code Online (Sandbox Code Playgroud)
还运行此命令:
$ sudo hostnamectl set-hostname --static "testing01.d.sample.com"
Run Code Online (Sandbox Code Playgroud)
您很可能必须重新启动系统才能使更改生效。
| 归档时间: |
|
| 查看次数: |
43806 次 |
| 最近记录: |