![强制 DHCP 服务器更新客户端计算机的 IP 地址,而无需在客户端计算机中执行任何操作](https://linux22.com/image/593286/%E5%BC%BA%E5%88%B6%20DHCP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9B%B4%E6%96%B0%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%8C%E8%80%8C%E6%97%A0%E9%9C%80%E5%9C%A8%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%AD%E6%89%A7%E8%A1%8C%E4%BB%BB%E4%BD%95%E6%93%8D%E4%BD%9C.png)
我想知道,是否有办法可以强制 DHCP 服务器立即更新客户端计算机的 IP 地址,而无需我亲自前往客户端计算机?事实上,想象一下,我无法访问客户端计算机。
这是我的情况,
当客户端连接到 LAN 时,它首先从 DHCP 服务器获得一个随机 IP 地址,例如 A。想象一下,有人将客户端连接到 LAN,但他一开始并没有在 dhcpd.conf 中将任何 IP 地址映射到其 MAC 地址。
我想在这里提一下,同一子网中其他机器已经在 dhcpd.conf 中配置了 IP 地址到 MAC 地址的映射。
接下来,我修改 dhcpd.conf 文件,将客户端的新 IP 地址 B 映射到其 MAC 地址。
但是,现在我需要将旧的 IP 地址 A 立即更改为 B。
我不想调整默认租约时间或者弄乱 dhcpd.conf 中的租用时间。
任何其他方法(例如重新启动服务)都可以,因为除了那台机器之外,所有其他机器的 IP 地址都已与 dhcpd.conf 中的 MAC 地址绑定在一起。
注意:我无法重新启动 LAN 中的任何机器,甚至无法重新启动运行 dhcp 服务器的机器。
希望我已经表达清楚了。
谢谢
答案1
这力新提供服务器向客户端指示更新的机制。
不确定它是否在你的发行版中实现。
答案2
您无法通过 DHCP 本身。它没有这方面的规定。
您唯一能做的就是强制客户端断开/重新连接。
- 拉动电缆。
- 如果客户端位于您有权访问的托管交换机上,则您可以禁用/启用交换机端口。
- 如果您可以远程登录到客户端,并且您在客户端上拥有所需的授权,那么您可能能够从客户端禁用/启用网络接口。这将需要一个脚本来执行此操作,该脚本无需“启动会话”即可启动,因为一旦断开连接,该会话就会中止。(例如,在 *nix 命令行上使用“nohup”或使用 crontab。)在 Windows 系统上,如果您拥有该客户端的管理员帐户,则远程重新启动 TCPIP 服务即可解决问题。
答案3
虽然这不是“即时”的,但是已经是最快的了。
- 在 中添加预订
dhcpd.conf
。 - 重新开始
dhcpd
。 - 切断客户端计算机的网络连接。(最好禁用客户端计算机所连接的受管理交换机端口,将跳线从配线架拉到非受管理交换机会更加繁琐。)
- 通过以下方式使 dhcpd 的旧租约过期奥姆壳(1)通过将
ends
时间改变为过去的某个时间(例如 00:00:00:00)。 恢复客户端机器的网络连接。
- 第一个租约必须过期,否则客户端机器将
DHCPREQUEST
为其第一个地址创建一个,并且 dhcpd 将授予它,因为它仍然是一个有效的租约。 - 将客户端机器移动到另一个 VLAN 而不删除租约可能会起作用,但当客户端机器返回其原始 VLAN 时,dhcpd 将授予哪个有效租约还是一个问题。
- 添加具有固定地址的主机条目会自动生成租约条目,这就是为什么修改第一个租约的到期时间而不是改变其 IP 地址的原因。
- 第一个租约必须过期,否则客户端机器将
答案4
据我所知你不能:一旦 Dhcp 服务器为客户端提供了 IP 地址,它就无法对客户端采取行动。而且由于你无法访问客户端,所以更改其 IP 的唯一方法是等待时间到期。