问题:平时使用Xshell能连接虚拟机,现在突然连接不上,使用ip addr 命令查看ip地址
ens33
接口状态为 DOWN,没有分配IP地址,这通常意味着该网络接口未激活或存在配置问题。(因为平时能连接,就说明不存在配置问题,那么就是网络接口未激活)
ens33网络接口未激活的问题排查过程:
- 检查并重新启动NetworkManager服务: 如果NetworkManager服务正在运行,它可能会干扰网络接口的激活。可以尝试停止并禁用NetworkManager服务,然后尝试重新启动网络服务。
依次输入一下四个命令:
chkconfig NetworkManager off
service NetworkManager stop
chkconfig network on
service network start
出现OK,再次连接就成功了。
解释:
- chkconfig NetworkManager off 这个命令用于更改系统运行级别设置,将NetworkManager服务设置为在系统启动时不自动启动。
- service NetworkManager stop 此命令会立即停止NetworkManager服务
- chkconfig network on 这个命令将传统的network服务设置为在系统启动时自动启动。network服务负责管理网络接口的启动和停止。将其设置为自动启动可以确保在每次系统启动时,网络服务都被激活。
- service network start 此命令会立即启动network服务
我就是这个原因引起的。如果不是这个原因还有其他的:
-
检查网络接口配置文件: 在
/etc/sysconfig/network-scripts/
目录下,找到对应的网络配置文件(例如ifcfg-ens33
),确保其中的配置正确,特别是ONBOOT
参数是否设置为yes
以在启动时激活网络接口。cd /etc/sysconfig/network-scripts vi ifcfg-ens33
将
ONBOOT=no
改为ONBOOT=yes
,然后保存退出,并尝试重新启动网络服务。 -
手动激活网络接口: 使用命令行直接激活网络接口。
sudo ip link set dev ens33 up
或者使用
ifup
命令:ifup ens33
-
检查网卡驱动: 确保系统已安装正确的网卡驱动。可以通过以下命令查看是否存在网卡驱动:
lsmod | grep ethernet
如果未列出相应的驱动模块,则需要先安装对应的驱动程序。
-
检查防火墙设置: 防火墙设置可能会阻止网络连接的激活。确保防火墙允许相关的网络流量通过。
systemctl status firewalld
如果防火墙正在运行,请确保已添加允许网络流量通过的规则。
-
重启网络服务: 尝试重启网络服务,以尝试解决可能的服务问题。
sudo systemctl restart network
-
关闭防火墙和SELinux: 如果防火墙或SELinux的设置导致网络连接问题,可以尝试临时关闭它们以进行测试
systemctl stop firewalld systemctl disable firewalld setenforce 0
-
使用NetworkManager重新激活连接: 如果上述方法都不奏效,可以尝试使用NetworkManager重新激活网络连接。
systemctl stop NetworkManager systemctl disable NetworkManager nmcli connection up id "Connection Name"