VirtualBox + CentOS:启用 DHCP 获取 IPv4 地址

发布于:2025-07-19 ⋅ 阅读:(16) ⋅ 点赞:(0)

标题:
VirtualBox + CentOS:启用 DHCP 获取 IPv4 地址

日期:
2025-07-18


一、问题现象

最小化安装的 CentOS 7 虚拟机里敲:

ip addr

输出只有 lo127.0.0.1 以及 enp0s3 的 IPv6 链路本地地址,没有 IPv4,于是就有了本文。


二、先别急着 dhclient,三步排除“配置错误”

经验:90 % 的“没 IP”都不是 DHCP 服务器的问题,而是下面三件事之一。

✅ Step 1:虚拟机网卡真的“插上线”了吗?

VirtualBox / VMware / Hyper-V 通用 checklist:

  • 右侧小电视图标 → “连接”必须打勾
  • 网络模式:
    • 想直接上网 → 选 NAT
    • 想跟宿主机同网段 → 选 桥接
  • 改完必须 重启虚拟机 才能生效

✅ Step 2:CentOS 配置里把 DHCP 关掉了?

打开网卡配置文件:

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

确保下面两行存在且没有被注释:

BOOTPROTO=dhcp
ONBOOT=yes

如果刚刚改过,保存后:

sudo systemctl restart network

✅ Step 3:接口本身是不是 DOWN?

ip link

如果看到 state DOWN,手动拉起:

sudo ip link set enp0s3 up

此时再 ip addr,大概率已经有 inet …/24 了;如果仍旧没有,再继续往下看。


三、确认 DHCP 服务器是否真的给了地址

到这里,99 % 的“低级错误”已经排除,我们才需要“抓包”一样地去跟 DHCP 握手。

手动触发一次 DHCP 过程

sudo dhclient -v enp0s3

观察输出:

  • 看到 DHCPACK from 192.168.x.1 就 OK
  • 若长时间卡在 DHCPDISCOVER 无回应,说明:
可能原因 排查方法
虚拟机网络模式选成“仅主机” 回到 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 跑起来


六、参考资料


如果这篇文章帮到了你,欢迎点赞、转发、留言讨论!


网站公告

今日签到

点亮在社区的每一天
去签到