直接解决步骤(5分钟搞定)
- 检查虚拟机网络模式 → 设为 NAT 或桥接模式(在 VMware/VirtualBox 中设置)。
- 重启 DHCP 获取 IP → 虚拟机内执行:
sudo dhclient -r ens33 && sudo dhclient ens33
- 手动设置静态 IP(可选) → 编辑配置文件:
添加以下内容(示例):sudo nano /etc/netplan/01-netcfg.yaml
保存后运行:network: ethernets: ens33: addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: {addresses: [8.8.8.8]} version: 2
sudo netplan apply
- 放行 SSH 端口 → 执行:
sudo ufw allow ssh
为什么会出现 169.254.x.x?
这个地址是系统自动分配的**“临时救急IP”**,意味着:
- ❌ DHCP 服务不可用:虚拟机没拿到局域网(或宿主机)分配的 IP。
- ❌ 网络配置错误:虚拟机的网络模式(NAT/桥接)设置错误。
- ❌ 防火墙/路由器限制:DHCP 请求被拦截。
详细操作指南
1. 检查网络模式
- NAT 模式:虚拟机通过宿主机上网,IP 通常为
192.168.x.x
(适合个人测试)。 - 桥接模式:虚拟机直接使用物理网络,IP 与宿主机同一网段(需局域网有 DHCP 服务)。
2. 重新获取 DHCP 地址
如果 dhclient
报错,先安装 DHCP 客户端:
sudo apt update && sudo apt install isc-dhcp-client -y
3. 手动配置静态 IP 的原因
- 适用场景:局域网无 DHCP 服务,或需固定 IP 方便 SSH 连接。
- 关键参数:
addresses
:IP 和子网掩码(如192.168.1.100/24
)。gateway4
:网关(一般填路由器 IP,如192.168.1.1
)。nameservers
:DNS 服务器(填8.8.8.8
或本地运营商 DNS)。
4. 其他可能问题
- SSH 服务未安装:
sudo apt install openssh-server -y && sudo systemctl start ssh
- 防火墙阻拦:
sudo ufw disable # 临时关闭防火墙(测试用)
总结
- 先做快速解决步骤 → 90% 的问题能修复。
- 仍无效? → 检查宿主机的虚拟网络设置(如 VMware 的“虚拟网络编辑器”)。
提示:如果虚拟机用于开发测试,NAT 模式+端口转发是最简单的方案!