![在 Windows DNS 上注册 Linux 主机名](https://linux22.com/image/730617/%E5%9C%A8%20Windows%20DNS%20%E4%B8%8A%E6%B3%A8%E5%86%8C%20Linux%20%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
如何在 Windows 服务器 DNS 中注册 DHCP Linux 客户端的主机名?
我有一个小型企业混合网络,其中:
- DCHP Windows 工作站(主机名示例
win1
:)- 约10台机器
- 机器在域上,无需特殊配置。
- DHCP Linux(Debian stretch)工作站(主机名示例
lin1
:)- 约20台机器
sssd
使用以下方式连接到域realm join
- 可以在任何机器上使用 AD 凭据
/etc/nsswitch.conf
包含hosts: files dns
,我认为这意味着 Linux 客户端可以从 DNS 导入主机名
- 在静态 IP 上运行 Windows Server 的 DHCP/DNS 服务器
从任何机器我都可以ping win1
,但不能ping lin1
告诉我们:
- 所有机器都使用 DNS 正常(可以 ping 通
win1
) - Windows 主机名会自动注册
- Linux 主机名不会自动注册
被拒绝的解决方案:
hosts
:我们没有静态 IP,因此我不会手动维护文件的主副本hosts
并在每次发布新的 DHCP 租约时分发它。A
向 DNS添加记录:再次,我不想在发布新的 DHCP 租约时手动更新记录。avahi
:Windows 客户端看不到 Linux 客户端。
我还没尝试过的事情:
likewise
:我不想像sssd
这样放弃并从头开始重新配置所有 20 台机器。但如果lw-register-dns
可以解决问题,并且不会与 冲突sssd
,那么这可能是一个解决方案。 我仍然觉得客户端需要创建一个 cron-job 来修改 DNS 很奇怪,我最好限制 DNS 写访问权限。winbind
,似乎也可以sssd
完全替代。我尝试了链接的建议,但重新启动客户端的网络服务后没有看到任何差异。nmbd
. 工作站已经使用了smbclient
,它们真的也需要成为功能齐全的 samba 服务器吗?net ads dns register -P
。我需要访问 DNS 才能启用不安全的更新。
答案1
所以最终答案根本不是在linux-client端,而是在DHCP配置上。
在“Windows Server 2016 Standard”上,我必须执行以下操作才能使其正常工作。
- 打开“DHCP”桌面应用程序
- 选择 DNS 选项卡
- 展开代表你的域的节点
- 右键单击“IPv4”
- 从上下文菜单中选择“属性”
- 勾选“根据以下设置启用DNS动态更新:”
- 选择“始终动态更新 DNS 记录”
- 选中“动态更新不请求更新的 DHCP 客户端的 DNS 记录”
结果并不是立竿见影的。重启机器并没有强制更新。我在星期五做了更改,到星期三,所有 Linux 客户端似乎都已列在 DNS 中。
我能够通过查看同一台服务器上的“DNS管理器”来确认添加的内容。
答案2
/etc/nsswitch.conf
包含hosts: files dns
,我认为这意味着 Linux 客户端可以从 DNS 导入主机名
您所做的假设是错误的。该行表示系统将如何尝试查找您输入的主机名或域名。例如,当 ping 域名时,或者在浏览器中输入 URL 时。files
请参阅/etc/hosts
和,您可以手动指定域到 IP 绑定。dns
请参阅系统正在使用的 DNS 服务器。因此,使用您的配置,如果您输入,ping google.com
系统将首先在 (/etc/hosts) 中查找 google.com 和关联的 IP files
,然后如果在 中找不到匹配项,它将检查 DNS /etc/hosts
。
当 Windows 计算机加入域时,它们将成为受信任的资源。如果该服务安装在域上并由 AD 管理,则在加入域时会为它们创建 DNS 记录。要允许非 Windows 计算机在 DNS 中注册其主机名,必须将区域配置为允许更新。非 Windows 计算机还需要在文件中配置正确的域,/etc/hostname
以便它与 AD 环境的域名匹配。