安装好虚拟机后,想要用xshell远程登陆centos,结果显示无法连接。检查发现网络无法连通,在CentOS 7终端中能够访问互联网,也能够ping通物理机的ip地址,然而在Windows中始终不能ping通虚拟机的ip地址,为此把网上的各种方法都试遍了,最后发现是防火墙的问题。写这篇文章记录一下物理机和虚拟机是如何相互ping通、在ping通过程中遇到的问题以及解决的方法。

在centos 7中启动SSH服务

开启centos虚拟机后,打开终端,输入

systemctl status sshd.service  #查看ssh服务的状态

在这里插入图片描述
从上述命令行红色框中我们可以看到,ssh服务正在运行;

我们还可以使用以下命令开启、关闭、重启ssh服务

systemctl start sshd.service  #启动ssh服务
systemctl stop sshd.service  #关闭ssh服务
systemctl restart sshd.service  #重启ssh服务
systemctl enable sshd.service  #开机自启动ssh服务

检查网络的连通性

想要实现远程连接,就必须知道对方的地址,在网络中唯一的标识地址就是ip地址了。在centos的终端我们输入ifconfig
在这里插入图片描述
在图中红色框内就是当前的ip地址;

返回我们的windows桌面,按win+r键输入cmd进入终端,输入ipconfig
在这里插入图片描述
红色框内即为主机当前的ip地址。

由以上可知我的虚拟机的ip地址为:192.168.105.128,主机的ip地址为:10.16.68.152。我们继续在windows的命令行窗口输入ping 192.168.105.128(注意ping后有一个空格)。
在这里插入图片描述
我们可以看到主机已经ping通虚拟机,接收到了回复。这是我在尝试多次后的结果,稍后对不能ping通的解决办法进行详细说明。现在先记录物理机和虚拟机如何互相ping通。

同理,打开虚拟机的终端,输入ping 10.16.68.15(ping后有一个空格)
在这里插入图片描述
收到了来自于物理机的回复,这样两者就算是相互ping通。

相互ping通的操作方法

一、虚拟机网络连接方式选择NAT模式

打开虚拟机,依次点击编辑、虚拟网络编辑器,进入到以下界面,选择VMnet8,它会默认勾选方框内的内容,不要取消,否则进入之后会无法联网。我们可以看到 ip 为:192.168.105.0,子网掩码为:255.255.255.0,点击NAT设置,我们看到网关为:196.168.105.2
在这里插入图片描述

二、虚拟机网络设置

右键桌面右下角的网络,点击打开”网络和Internet设置“,点击更改适配器选项;或者win+r输入control打开控制面板,依次点击网络和Internet、网络和共享中心、更改适配器选项,进入以下界面:
在这里插入图片描述
在适配器中,我们看到有一个VMware Network Adapter VMnet8的网络适配器,VMware中的虚拟机就是通过这个虚拟的适配器与主机共享ip地址,从而实现网络通信。

右键VMware Network Adapter VMnet8,点击属性,双击Internet版本协议4,进入设置ip地址界面。在上一步中我的虚拟网络编辑器ip 为:192.168.105.0,子网掩码为:255.255.255.0,网关为:196.168.105.2,因此VMnet8的ip 为:192.168.105.3,子网掩码为:255.255.255.0,网关为:196.168.105.2,。每个人的ip地址不同,根据自己虚拟编辑器中的ip信息,将VMnet8中的ip设置为同一网段,也就是前三位相同即可。
在这里插入图片描述

三、CentOS网络设置

这个操作的目的是为了使centos的ip地址和以上两步的ip相同。如果一致没必要做这一步。

打开CentOS虚拟机终端,输入

vi /etc/sysconfig/network-scripts/ifcfg-ens33

进入网络配置文件,此时会发现命令行是只读模式,无法修改,按一下A或I进入插入模式,更改

BOOTPROTO=dhcp为BOOTPROTO=static,

同时在末尾增加

IPADDR=192.168.105.88 #根据自己的网络段设置
NETMASK=255.255.255.0
GATEWAY=192.168.105.2 #根据自己的网络段设置
ONBOOT=yes #根据自己的网络段设置

输完后按下ESC,再按下:wq!(注意是:wq!)。
有的人可能遇到无法保存的情况,原因是没有修改权限,只需输入:

w ! sudo tee %

这一过程来源于
佛祖下的灯芯centos网络配置.

关闭防火墙命令

一、关闭CentOS 防火墙

systemctl stop firewalld #暂时关闭防火墙
systemctl status firewalld #查看防火墙状态
systemctl disable firewalld #永久关闭防火墙
systemctl enable firewalld #重启防火墙

二、关闭Windows防火墙

win+r输入control,打开控制面板,点击系统和安全,打开防火墙。注意这里不是简单的关闭防火墙,之前我也只是关闭了防火墙,结果主机依然不能ping通物理机,而且关闭了防火墙会导致系统安全性能变差。因此我们启动防火墙,点击高级设置。
在这里插入图片描述

在这里插入图片描述
将下图红色框中的都设为允许。
在这里插入图片描述
点击入站规则,点击回显请求-ICMPv4-Ih,点击启用规则,保存退出。(注意我这里已经启用规则了,所以显示禁用规则)
在这里插入图片描述
到这里大部分不能ping通的问题都能解决了。如果还不行,请尝试将虚拟网络适配器VMnet8先禁用再重启,或者在配置VMnet8的ip时,不要设置为196.168.105.0,改为196.168.x.0(x∈[2,254])。

XShell连接CentOS

打开XSell,点击新建
在这里插入图片描述
输入虚拟机ip地址,选择SSH协议,点击确定。
在这里插入图片描述
选中创建的会话,点击连接。
在这里插入图片描述
第一次连接会让输入你连接到的虚拟机的用户名和密码。用户名为:root 密码为:快乐星球
连接上了!

还可参考牛人视频:https://www.zhihu.com/zvideo/1351532792124219392

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐