标题: VirtualBox + CentOS:启用 DHCP 获取 IPv4 地址
日期: 2025-07-18
最小化安装的 CentOS 7 虚拟机里敲:
ip addr
输出只有 lo
的 127.0.0.1
以及 enp0s3
的 IPv6 链路本地地址,没有 IPv4,于是就有了本文。
dhclient
,三步排除“配置错误”经验:90 % 的“没 IP”都不是 DHCP 服务器的问题,而是下面三件事之一。
VirtualBox / VMware / Hyper-V 通用 checklist:
打开网卡配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
确保下面两行存在且没有被注释:
BOOTPROTO=dhcp
ONBOOT=yes
如果刚刚改过,保存后:
sudo systemctl restart network
ip link
如果看到 state DOWN
,手动拉起:
sudo ip link set enp0s3 up
此时再 ip addr
,大概率已经有 inet …/24
了;如果仍旧没有,再继续往下看。
到这里,99 % 的“低级错误”已经排除,我们才需要“抓包”一样地去跟 DHCP 握手。
sudo dhclient -v enp0s3
观察输出:
DHCPACK from 192.168.x.1
就 OKDHCPDISCOVER
无回应,说明:可能原因 | 排查方法 |
---|---|
虚拟机网络模式选成“仅主机” | 回到 Step 1 改桥接/NAT |
宿主机防火墙/公司网络屏蔽 DHCP | 换网络或手动设静态 IP |
DHCP 地址池耗尽 | 让网管查服务器 |
把下面脚本保存成 netcheck.sh
,一键输出所有关键信息:
#!/usr/bin/env bash
set -e
echo "=== Link status ==="
ip -br link
echo -e "\n=== Address status ==="
ip -br addr
echo -e "\n=== Route status ==="
ip route || true
echo -e "\n=== DHCP retry ==="
sudo dhclient -v $(ip -o link | awk -F': ' '$2!="lo"{print $2}' | head -n1)
“ip addr 没 IP地址”问题 , 先看 虚拟机网卡插没插线,再看 配置文件写没写对, 最后才让 DHCP 跑起来。
man ip
, man dhclient