记录一次 xshell 无法连接 虚拟机下的linux过程

为了尝试配置nginx,于是在本地的虚拟机下安装了centos来进行一些试验。但安装好后,过程并不顺利。于是记录下来,方便往日回顾问题。

输入ip addr 指令,并没有显示ip地址

通过查询,这是因为网卡未启动的原因。

cd /etc/sysconfig/network-scripts

vi ifcfg-ens33

进入到network文件夹,然后对ens33进行配置。

ONBOOT=YES

systemctl restart network

配置好退出,并重启网络

这时候,输入 ip addr 可以发现已经可以获取到ip地址

inet 192.168.xxx.xxx

通过 ping指令也能测试网络是否正常。但还没有结束,因为这个IP地址是动态分配的,还需要回到ens33的配置文件,把ip设置为静态,这样才能稳定通过IP来连接。

BOOTPROTO=dhcp 设置为BOOTPROTO=static,然后添加IPADDR=192.168.xxx.xxx,这里的IP地址,可以通过虚拟机的虚拟网络编辑器 NAT模式下的网关知道。例如我的是192.168.231.2,那我这里的就是IPADDR=192.168.231.3

然后添加子网掩码PREFIX=24,相当于NETMASK=255.255.255.0

配置网关的IP地址 GATEWAY=192.168.231.2

然后指定一个DNS服务器,DNS1=114.114.114.114,这个是由国内公共DNS服务提供商CNNIC运营的。

保存退出,再次重启网络服务,可以发现IP地址已经变成配置好的静态地址。通过PING指令测试网络也没有问题。

正当以为一切顺利的时候,用xShell进行连接,发现连接不上。

检查是否没安装ssh服务

因为xShell是通过ssh连接,所以我先检测了虚拟机是否没有安装ssh服务,可以通过ssh -V指令来查看

如果没有则安装

yum install openssh-server

systemctl start sshd

systemctl enable sshd

systemctl status sshd

通过指令可以知道ssh已经处于运行状态。

于是我再次使用xShell进行连接,但发现还是不行。

检查防火墙是否没有放行 22 端口

因为ssh默认通过22端口连接,于是查看是否防火墙问题。

先通过systemctl status firewalld命令查看防火墙运行状态,如果运行,则firewall-cmd --list-all查看是否已经放行22端口。(firewall-cmd --zone=public --list-ports 也可以)

如果没有,则添加22端口。

firewall-cmd --zone=public --add-port=22/tcp --permanent

然后重启防火墙firewall-cmd --reload

这时候再通过firewall-cmd --zone=public --list-ports 可以看到,已经有22端口。

但但是!当我再次连接的时候,还是失败了。

于是通过百度,发现了可能是网络适配器的问题。

检查网络适配器

因为虚拟机是通过nat连接网络,对应的VMnet8是处于关闭状态的,于是连忙启动,然后再次连接,但是连接上了吗?并没有。通过检索知道,主机想要连接到虚拟机,需要保证同处一个局域网下,于是我又开始检查起了IP地址。

然后发现这个适配器的IP地址与虚拟机linux系统配置的静态IP地址并不处于同一个局域网下,也就是前3段不同,于是修改适配器的地址,从动态分配改为静态IP。

双击选中项

把IP地址写定,前三段与虚拟机配置一致,保存退出,然后重启适配器。

再次连接虚拟机下的linux系统。大功告成。

相关推荐
神梦流13 分钟前
GE 引擎的非标准数据流处理:稀疏张量与自定义算子在图优化中的语义保持
linux·运维·服务器
.小墨迹1 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
Lsir10110_1 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
Sheffield1 小时前
command和shell模块到底区别在哪?
linux·云计算·ansible
历程里程碑1 小时前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法
郝学胜-神的一滴2 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
承渊政道2 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
技术路上的探险家2 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker
代码AC不AC2 小时前
【Linux】深入理解缓冲区
linux·缓冲区·标准错误
Doro再努力2 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim