VMware Workstation 17.5.1 网络故障排查:解决 NAT 模式无法访问外网问题

问题描述

在虚拟机中版本VMware 17.5.1,linux环境centos7.9 使用的是NAT方式,连接不到外网的解决方案,原因是网络服务冲突,CentOS 7 开始从传统的 network 服务向 NetworkManager 过渡 ,传统 network 服务NetworkManager 服务 同时运行,导致资源竞争,在较新的 CentOS 8/9 中,已经完全转向 NetworkManager,这种问题就很少见了。

之前能ping通外部网络的都有ens33网络模块,会有一个局域网的ip,类似于192.168.31.143这样的ip模块,这个不存在。

bash 复制代码
[stark@localhost ~]$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:a3:0e:0f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

解决步骤

1、清理冲突进程

停止了所有可能冲突的服务和进程,为重新配置提供了干净的环境

bash 复制代码
sudo systemctl stop NetworkManager
sudo systemctl stop network
sudo pkill dhclient

2、重置接口状态

清除了可能存在的旧 IP 配置,重置了网络接口的软件状态

bash 复制代码
sudo ip addr flush dev ens33
sudo ip link set dev ens33 down

3、检查网络配置文件

bash 复制代码
sudo cat /etc/sysconfig/network-scripts/ifcfg-ens33
//确保内容如下:
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens33
DEVICE=ens33
ONBOOT=yes

4、重启网络服务

bash 复制代码
# 先启动 NetworkManager
sudo systemctl start NetworkManager

# 等待几秒后启动 network 服务
sudo systemctl start network

5、如果仍然失败,使用 NetworkManager 直接管理

bash 复制代码
# 禁用传统的 network 服务
sudo systemctl disable network

# 启用 NetworkManager
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager

# 使用 nmcli 配置网络
sudo nmcli connection delete ens33 2>/dev/null
sudo nmcli connection add type ethernet con-name ens33 ifname ens33
sudo nmcli connection up ens33

6、手动获取 IP 地址

bash 复制代码
# 启用网络接口
sudo ip link set ens33 up

# 强制释放并重新获取 IP
sudo dhclient -r ens33
sudo dhclient -v ens33

# 检查是否获取到 IP
ip addr show ens33

7、验证

bash 复制代码
[stark@localhost ~]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.31.143  netmask 255.255.255.0  broadcast 192.168.31.255
        inet6 fe80::20c:29ff:fe78:2946  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:78:29:46  txqueuelen 1000  (Ethernet)
        RX packets 147  bytes 27275 (26.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27  bytes 4553 (4.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:a3:0e:0f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

至此,完美解决了VMware 不能访问外网的问题!

相关推荐
爱莉希雅&&&31 分钟前
linux中MySQL数据库备份恢复的四种方法(更新中)
linux·数据库·mysql·数据库备份·mysqldumper
coppher1 小时前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
xyz5991 小时前
如何在 WSL 中删除指定版本的 Ubuntu 以及安装
linux·运维·ubuntu
亚空间仓鼠2 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...2 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家3 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun343 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
草莓熊Lotso3 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu3 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
-SGlow-3 小时前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器