VMware CentOs8如何通过XShell连接虚拟机,及虚拟机无法ping通百度的解决
作者:闪光的回忆
作者在win10系统下,使用VMware安装了Linux虚拟机,系统是CentOs8.2。
在使用中遇到了一些问题:
- 虚拟机无法联网,无法ping通baidu.com,无法ping通主机
- 虚拟机可以联网,可以ping通baidu.com,也可以ping通主机,但主机不能ping通虚拟机,请求超时。
- 无法通过XShell连接虚拟机中的linux系统。
要逐一解决这些问题,需要对虚拟机及CentOS系统的IP进行正确设置:
- NAT虚拟交换机的IP
- VMnet8虚拟网卡的IP
- CentOS系统的IP
本文的主要目的就是记录如何将虚拟机的Ip正确设置为静态IP。
静态IP的好处是可以便于xShell直连linux系统,避免Linux自动更换ip。
接下来进入正题:
1. 虚拟网络编辑器的设置
首先在Vmware的编辑菜单中,找到虚拟网络编辑器,进行如下设置:
这里我们使用NAT(网络地址转换)模式,通过虚拟NAT和主机网卡进行连接,实现虚拟机联网。
切换到NAT模式后,首先取消勾选使用DHCP(目的是使用自定义的静态Ip),否则,每次上网IP地址可能会发生变化。
接下来,设置子网IP,图中的*** 是可变的,范围是[0~255],第一位范围是[192, 223],第四位是0。设置好后,记下子网Ip。
然后点击NAT设置:
网关IP的前三位和子网IP保持一致,第四位为1~254的任意一位数,然后点击确定。
在192~223这个C类网络中,地址的第四位代表着主机号(主机地址),前三位代表着网络号(网络地址)。
- VMware中的子网IP就是网络号(网络地址),其主机号为0,因此子网IP的第四位必须是0。
- 此外,主机号为255的IP地址,叫做有限广播地址,这个无需声明,只需要记住在分配IP时,不要占用该地址即可。
- 网关IP没有特殊的要求,它是VMware为NAT分配的一个IP地址,因为NAT在这里起到了虚拟交换机的作用,所以需要为其分配一个IP。它的主机号范围为1~254。
接下来将虚拟机切换为使用NAT模式:
点击虚拟机→设置→网络适配器→NAT模式
至此,虚拟网络编辑器中的NAT参数设置完成,接下来需要为虚拟机的适配器分配IP地址。
2. VMnet8虚拟网卡的编辑(虚拟网卡的IP分配)
在第一步中,我们使用了NAT模式来连接主机网络,在NAT模式下,虚拟机会自动创建一个主机虚拟适配器:VMnet8,这是虚拟机用来与主机通信的接口。
我们通过控制面板进入网络连接,或者直接Win+S搜索网络连接。
如果开启了VM网络适配器,那么在里面我们可以找到已启用的VMnet8虚拟网卡(未启用的话,在虚拟网络编辑器中勾选选项即可)。
接下来右击VMnet8虚拟网卡,进入属性界面:
双击Internet协议4,为虚拟机设置静态Ip。
在设置IP地址前,按Win+R
进入cmd,然后键入 ping 刚刚设置的IP
,如果ping不通,说明这个IP还没有被本机使用,可以分配个虚拟机;否则,就要换一个IP地址使用了。
IP地址前三位需要和NAT中设置的相同,第四位,需要避开已使用的地址(0 : 子网IP, 2 : 自定义的网关IP,255:广播地址
),范围同样是1~254。
现在,虚拟网卡的IP地址也分配完了,接下来就是给虚拟机中的linux系统分配静态IP地址。
3. 为CentOs系统分配静态IP地址
我们登入Linux系统,然后在ifcfg-ens33
文件中编辑IP地址。
不同版本系统的IP记录文件名称不同,存放位置也不同,这个需要自行百度查看。
CentOS8系统的操作如下:
键入如下命令,修改ifcfg-ens33
文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
进入文件键入i
进行编辑:
如图所示,进行如下操作:
- 修改IP获取类型:BOOTPROTO=static
- 修改开机启动网卡:ONBOOT=yes
- 添加系统IP:IPADDR=***.***.***.***
- 添加子网掩码:NETMASK=255.255.255.0
- 添加网关IP=***.***.***.***
- 添加DNS解析地址DNS1=8.8.8.8(或114.114.114.114)
然后,按esc
退出编辑,键入:x
回车进行保存并退出。
这时候,三处IP都设置好了。注意这三个IP不要冲突。
接下来,键入
nmcli c reload
重启网卡。
再次尝试联网,ping baidu.com
已经有通信了:
如果你的还是ping不通,可能是由于虚拟机的网络还未生效,通过命令reboot
重启linux系统,然后就可以了。
配置好前三步后,可以通过命令ip addr
查看Linux系统的Ip和端口号。
4. 尝试通过XShell进行连接
如果此时你可以通过主机命令行和虚拟机命令行互相ping通了,但仍无法通过XShell连接。那么除去密码输错的原因,最有可能的就是Linux系统没有开启SSH。
首先检测系统有没有安装Openssh:
yum list installed | grep openssh-server
我的已经安装了,如果你的什么都没有显示,可以通过yum install openssh-server
命令进行安装:
安装完成之后,需要启动sshd
服务,通过systemctl start sshd
命令来开启。
开启后,通过命令systemctl status sshd
来查看sshd服务的状态:
这是可以看到,端口号22也已经开启。
接下来,通过命令systemctl enable sshd
将sshd设置为开机自动启动。
大功告成!再次尝试Xshell连接吧。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。