安装好虚拟机后,想要用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 密码为:快乐星球
连接上了!
还可参考牛人视频:/zvideo/1351532792124219392
如果觉得《NAT模式下 虚拟机能ping通主机 主机不能ping通虚拟机的解决办法》对你有帮助,请点赞、收藏,并留下你的观点哦!