虚拟机网络解决方法

虚拟机没网络,记录解决方法

  1. 本地VMware NET Service服务异常。
  • 解决方法:win + R,输入services.msc ,重新启动VMware NAT Servise服务
  1. 虚拟机输入 sudo dhclient,检查网络是否正常。
    若网络恢复正常,极有可能的两种情况:
    (1)状态文件损坏/记录错误:网络管理服务在意外断电时,其运行状态文件(State File)被意外锁定或写入了错误的状态(例如被标记为了 NetworkingEnabled=false)。导致每次开机时,服务读取到这个状态,误以为用户“禁用了网络”,从而不主动发起 DHCP 请求。
    (2)DHCP 租期缓存文件损坏:网络服务内部维护着一个 DHCP Lease 缓存,强制关机导致该文件变成乱码或损坏。开机时服务尝试解析该缓存文件失败,导致整个接口初始化流程卡死。
  • 解决方法:
# 确认环境:Ubuntu 桌面版默认使用 NetworkManager,而服务器版(Server)默认使用 systemd-networkd
# 检查两个主流网络管理服务的运行状态
systemctl is-active NetworkManager systemd-networkd

# 假设是Ubuntu桌面版
# 0. 关闭NetworkManager
sudo systemctl stop NetworkManager
# 1. 删除全局状态文件(强制让其恢复 NetworkingEnabled=true 的默认状态)
sudo rm -f /var/lib/NetworkManager/NetworkManager.state
# 2. 删除内部的 DHCP 租约缓存文件(解决解析卡死问题)
sudo rm -f /var/lib/NetworkManager/*.lease
# 3. 重启NetworkManager
sudo systemctl start NetworkManager
# 4. 检测网络是否畅通
ping -c 4 baidu.com

补充,如果是 systemd-networkd 处于 active 状态(Ubuntu Server 版)
如果你的环境是 Server 版,处理思路相同,只需清理 systemd-networkd 的运行时状态和租约

sudo systemctl stop systemd-networkd
sudo rm -rf /run/systemd/netif/leases/*
sudo rm -rf /run/systemd/netif/state
sudo systemctl start systemd-networkd
posted @ 2025-09-01 09:59  热带雨霖  阅读(105)  评论(0)    收藏  举报