虚拟机 SSH 连不上?169.254.x.x 地址的快速解决方案

直接解决步骤(5分钟搞定)

  1. 检查虚拟机网络模式 → 设为 NAT 或桥接模式(在 VMware/VirtualBox 中设置)。
  2. 重启 DHCP 获取 IP → 虚拟机内执行:
    sudo dhclient -r ens33 && sudo dhclient ens33
    
  3. 手动设置静态 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
  4. 放行 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 模式+端口转发是最简单的方案!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值