Linux系统通过DHCP动态获取IP地址,本质是网卡向局域网DHCP服务器发起请求并自动接收IP、子网掩码、网关和DNS等参数;需先确认网卡名(如ens33)和网络管理方式(Netplan/NetworkManager/network-scripts),再按发行版编辑对应配置文件或执行nmcli/dhclient命令,并用ip addr和ip route验证结果。

Linux 系统通过 DHCP 动态获取 IP 地址,本质是让网卡向局域网内的 DHCP 服务器发起请求,并自动接收分配的 IP、子网掩码、网关和 DNS 等参数。具体操作方式取决于你用的发行版和网络管理工具,不是所有系统都用同一套配置方法。
确认当前网卡名和网络管理方式
先弄清两件事:你的物理/虚拟网卡叫什么(比如 ens33、eth0 或 enp0s3),以及系统用的是哪套网络管理机制。
- 运行 ip -br a 或 ip link show 查看可用网卡列表
- 检查是否启用 NetworkManager:systemctl is-active NetworkManager
- 查看是否使用 Netplan(常见于 Ubuntu 17.10+):ls /etc/netplan/
- 检查传统 network-scripts(CentOS/RHEL 7 及更早):ls /etc/sysconfig/network-scripts/ifcfg-*
按发行版选择对应配置方式
不同系统默认工具不同,改错地方会导致配置不生效。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
Ubuntu 17.10 及更新版本(含 Server):编辑 /etc/netplan/*.yaml,确保类似如下内容(以 ens33 为例):
network:
version: 2
ethernets:
ens33:
dhcp4: true
dhcp6: false
保存后执行 sudo netplan apply -
Fedora / CentOS Stream / Ubuntu Desktop 等带桌面环境的系统:优先用 NetworkManager。
命令行执行:
sudo nmcli con mod "有线连接 1" ipv4.method auto
sudo nmcli con up "有线连接 1"
(连接名可通过 nmcli con 列出) -
CentOS/RHEL 7 或更老系统:编辑 /etc/sysconfig/network-scripts/ifcfg-eth0(把 eth0 换成你的网卡名),确保含以下两行:
BOOTPROTO=dhcp
ONBOOT=yes
然后重启服务:sudo systemctl restart network
手动触发 DHCP 获取(临时调试用)
如果配置已设好但没拿到 IP,可跳过服务重启,直接用 dhclient 强制拉取:
- 先确认 dhclient 已安装:which dhclient,未安装则运行 sudo apt install isc-dhcp-client(Debian/Ubuntu)或 sudo yum install dhcp-client(RHEL/CentOS)
- 释放旧租约并请求新地址:sudo dhclient -r ens33 && sudo dhclient -v ens33
- 查看结果:ip addr show ens33 或 hostname -I
验证是否成功获取动态 IP
别只看命令有没有报错,要确认实际参数已写入:
- 运行 ip a show ens33,观察是否有 inet 行(如 inet 192.168.1.10/24)
- 检查路由表:ip route | grep default,应显示通过某网关转发
- 测试连通性:ping -c 3 8.8.8.8 和 ping -c 3 www.baidu.com(后者还能验证 DNS 是否正常)

















