New*_*ser 12 centos networkmanager
现在,我的 /etc/resolv.conf 看起来像这样:
# Generated by NetworkManager
nameserver 10.165.246.33
nameserver 192.135.82.60
nameserver 10.165.74.2
Run Code Online (Sandbox Code Playgroud)
前两个名称服务器是通过 DHCP 自动配置的;最后一个是我在 NetworkManager 中手动添加的。它也是最重要的一个,因为它解析我们的内部域名(例如build-server-17.our-company-domain.com
)。
麻烦的是,网络管理器将其添加到下的/etc/resolv.conf
,访问内部网URL所以当我的浏览器尝试使用前两种服务器解决它,它需要年龄。
如何让 NetworkManager在自动配置的 DNS 服务器之前添加手动配置的 DNS 服务器?
alf*_*ema 13
我不小心在这里创建了一个重复的问题。答案就在那里,但本质上,您需要创建:
/etc/dhcp/dhclient.conf
Run Code Online (Sandbox Code Playgroud)
如果它不存在,并添加:
prepend domain-name-servers [ip address of server];
Run Code Online (Sandbox Code Playgroud)
不要忘记最后的分号!
之后,只需自动重新启动即可将“/etc/resolv.conf”中的“nameserver [ip address of server]”行移至顶部!
我不知道要具体解决哪个系统,但如果您正在使用,请尝试以 root 身份(或)resolvconf
执行以下操作:su -
sudo -i
echo 'nameserver 10.165.74.2' >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u
Run Code Online (Sandbox Code Playgroud)
该文件中有一条警告,指出手动更改将被覆盖;但是,在上下文中,该消息适用于/etc/resolv.conf
,而不是/etc/resolvconf/resolv.conf.d/head
。
这应该将所需的名称服务器放在列表中的第一位。当然,如果这适用于您的操作系统,则可以从 NetworkManager 中删除 10.165.74.2。
本地解析器dnsmasq
也是一个很好的前进路径。使用dnsmasq
,人们可以对 DNS 和 DHCP 进行更多控制。例如,在这种情况下,dnsmasq
可以使用其选项根据指定的域名查询特定的名称服务器server
。dnsmasq.conf
请参阅下面可能与您的目标相关的片段。
# Add other name servers here, with domain specs if they are for
# non-public domains.
server=/our-company-domain.com/10.165.74.2
Run Code Online (Sandbox Code Playgroud)
更新
感谢您提到操作系统。在CentOS 7上,有很多方法。在 GUI 中,单击应用程序 > 系统工具 > 设置 > 网络。选择要配置的连接。
关闭自动 DNS 并提供名称服务器。应用配置。
下次 NetworkManager 启动该连接时,它会写入自定义值。(测试时,我关闭网络然后再次打开,因为我有两个网络连接。)
根据文件,
- NetworkManager 提供了一个简单的基于 Curses 的文本用户界面 (TUI) nmtui。
- 提供了一个命令行工具 nmcli,允许用户和脚本与 NetworkManager 交互。请注意,nmcli 可用于无 GUI 系统(例如服务器)来控制 NetworkManager 的各个方面。它与 GUI 工具处于同等地位。
特别是,nmcli
文档看起来非常好。