最近想试试自己在本地的centos7这个发行上部署一下mysql8,学习的过程需要解决一下网络问题,仅此记录一下操作的过程以及遇到的问题供大家参考。
首先依据网上众多教程(或者鸟叔的教程)把centos7 创建好,环境需要把网络配置成NAT,并使得电脑本机的 VMnet8 与 linux系统的ip配置处于同一个网段,这样才能网络互通。原理图如下:
图示中的NAT设备如同iptables一样,对发送过来的ip地址做转换,用于将私有局域网转换成一个公有的ip地址;我们知道,NAT必须要主动向外界发消息,不然外界无法访问内部,即我们不能走"物理网卡-NAT设备"这条线相连。可以在把centos7安装好后尝试一下ping 一下centos的ip,我自己试了一下是ping不通的。
那么如何解决物理机与虚拟机的网络抵达呢?查询了一下相关资料,得知这个问题在引入了VMnet8后可以解决,VMnet8使得物理机网络与虚拟网络有一个重叠,即可以通过VMnet8可以访问到虚拟机(我自己的理解,如果有不对可以在评论区指正一下)。
NAT在外部公网(internet)上正常使用可以使多台计算机共享Internet连接。通过这种方法,申请一个合法IP地址,就把整个局域网中的计算机通过NAT接入到了Internet中。这时NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。这里提到的内部地址,是指在内部网络中分配给节点的私有IP地址,这个地址只能在内部网络中使用,不能被路由(一种网络技术,可以实现不同路径转发)
https://zhuanlan.zhihu.com/p/426335377——可在这里详细看下NAT的原理,这里不多赘述了,我也是从这学习的。
步入正题,既然我们想让xshell能连上我们本地的centos,那么就要保证VMnet8 和 我们的centos分配的 IP 保证在一个网段内。而我们IP如果在一开始安装centos7时配置了DHCP,那么就需要修改为静态IP并配置在VMnet8的网段下,这样就能保证网络可达了。
比如我刚才查看我的IP地址被默认分配成192.168.120.100,而我的VMnet8的IP地址是192.168.79.1:
所创建的centos7的网络地址是192.168.79.0,说明其网络配置是挂在VMnet8虚拟网卡下的,两者处于同一网段):
当然centos7的网络编辑器中有一个ip泳池范围:
进入centos中输入命令:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=114.114.114.114 是国内的DNS服务器IP,DNS2=8.8.8.8 是国外的谷歌DNS服务器,国内的会快一点,优先配置DNS1为国内的。
重启网络配置:
service network restart
查看ip配置:
ip addr
因为配置了DNS,所以我们可以直接在虚拟机中ping 一下 百度看看:
可以看到与百度的网络通了。
可以直接通过xshell连接本地的centos7了。