更新网络内的 DNS 服务器 IP

更新网络内的 DNS 服务器 IP

我不确定这是否可行,但是有没有办法在所有客户端上更新 DNS 服务器 IP,而无需为每台机器手动执行此操作?

所有客户端都有静态 IP 地址,DNS 服务器位于使用 bind 的 Fedora 机器上。客户端都是 unix 机器。

更新:对于 Windows 框,您将如何做?

答案1

我会使用我最喜欢的脚本语言编写一个脚本来修改 /etc/resolv.conf,并在每台使用 SSH 的远程机器上执行它。

假设旧 DNS 服务器是 192.168.1.1,新 DNS 服务器是 192.168.100.100:

perl -pi -e's/192.168.1.1/192.168.100.100/' /etc/resolv.conf

只需使用 SSH 在远程机器上执行该命令,您就大功告成了。(希望您已设置基于证书的身份验证,这样您就不必输入密码来连接每个主机。)


编辑:在 Windows 机器上

“netsh”命令是你的好朋友。假设网络连接仍为“本地连接”,你可以执行以下操作:

netsh interface ip set dns name="Local Area Connection" static 192.168.100.100 primary

这将设置在连接“本地连接”上指定的主 DNS 服务器。

如果连接已重命名,那么最好使用 转储配置netsh interface ip dump,解析该输出,然后使用 netsh 进行必要的更改。

答案2

好吧,如果这些客户端不是服务器,那么现在是时候考虑部署 DHCP 了(如果您还没有考虑过的话)。然后您只需在 DHCP 服务器中更改它,然后重新启动客户端或让客户端运行sudo dhclient

答案3

在 Windows 上,如果您有域,则可以通过组策略推出新的 DNS 服务器。奇怪的是,它不会在 ipconfig 中显示新值,但仍会使用它进行实际的名称解析(您可以使用 nslookup 进行测试)。

相关内容