Linux发行版众多,NetworkManager、dhclient、dhcpcd以及基于NM的Netplan,基本都是随OS自动安装且和系统内核版本无关。譬如dhclient作为Debian采用的DHCP客户端,至Debian 12仍然不离不弃,符合其稳定趋向的选择。Ubuntu则早早就抛弃了dhclient,采用NetworkManager并提供更为抽象的Netpaln。
使用ps命令查看进程,基本可明确出当前DHCP客户端信息。NetworkManager是标准的Linux网络配置工具套件,不仅仅是管理dhcp客户端,所以一般安装的应用中还会有nmcli乃至伪图形化的nmtui。
ps aux | grep dhcp #ps aux | grep Network #dpkg -l | grep nmcli #dpkg -l | grep nmtui
嵌入式设备接触的不多,手头的Armbian盒子的OS一般都使用NetwokManager。树莓派据说是使用dhcpcd的。
Debian VPS,则毫无疑问地保留了dhclient。
两者的“挂钩”触发机制不同,dhclient非常直白(dhcpcd亦然),会调用/etc/dhcp/**-hooks.d/下的脚本,而NM则采用了dispatcher方式,会调用/etc/NetworkManager/dispatcher.d/下的脚本。
之前写了个脚本仅仅适配NM,还需要调整一下以兼容dhclient。这样个人所有的设备和VPS就都可以一键使用了。
文章评论