Linux命令之dhclient
简介
dhclient命令的作用是:使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议。
场景:
1、若是使用ifconfig可以看到网卡信息,但是没有获取到具体的IP地址,那么可以使用该命令。
2、在云服务器中,若是服务器已启动,但是公网IP不能连接,那么可以考虑直接该命令来获取私有IP,然后公网IP才可以访问。
也可以将该命令加入启动项。
1 | echo "dhclient" >> /etc/rc.local |
注意:
该命令是由NetworkManager服务调用的,所以,请不要禁用NetworkManager服务。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | systemctl start NetworkManager systemctl enable NetworkManager systemctl status NetworkManager [root@lhroracle ~]$ systemctl status NetworkManager ● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-05-24 08:58:54 HKT; 3min 1s ago Docs: man:NetworkManager(8) Main PID: 3579 (NetworkManager) Tasks: 4 Memory: 8.9M CGroup: /system.slice/NetworkManager.service ├─3579 /usr/sbin/NetworkManager --no-daemon └─3606 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03-eth0.lease -cf /var/lib/NetworkManager/dhclient-eth0.conf eth0 May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8282] dhcp4 (eth0): domain name 'openstacklocal' May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8282] dhcp4 (eth0): state changed unknown -> bound May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8291] device (eth0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'assume') May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8298] device (eth0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'assume') May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8299] device (eth0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'assume') May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8304] manager: NetworkManager state is now CONNECTED_SITE May 24 08:58:54 lhroracle dhclient[3606]: bound to 10.0.0.136 -- renewal in 39615 seconds. May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8344] device (eth0): Activation: successful, device activated. May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8349] manager: NetworkManager state is now CONNECTED_GLOBAL May 24 08:58:54 lhroracle NetworkManager[3579]: <info> [1653353934.8353] manager: startup complete |
常用参数
语法格式:
1 | dhclient [参数] [网络接口] |
-p | 指定dhcp客户端监听的端口号(默认端口号86) |
---|---|
-d | 总是以前台方式运行程序 |
-q | 安静模式,不打印任何错误的提示信息 |
-r | 释放ip地址 |
-n | 不配置任何接口 |
-x | 停止正在运行的DHCP客户端,而不释放当前租约,杀死现有的dhclient |
-s | 在获取ip地址之前指定DHCP服务器 |
-w | 即使没有找到广播接口,也继续运行 |
参考实例
在指定网络接口上发出DHCP请求:
1 | [root@linuxcool ~]# dhclient eth0 |
释放IP地址:
1 2 | [root@linuxcool ~]# dhclient -r Killed old client process |
从指定的服务器获取ip地址:
1 | [root@linuxcool ~]# dhclient -s 192.168.60.240 |
停止运行dhclient:
1 2 | [root@linuxcool ~]# dhclient -x Killed old client process |