0
点赞
收藏
分享

微信扫一扫

NAT模式虚拟机能ping通宿主机但是telnet不通 教你如何设置网关走出误区


今天跟大家聊聊如何正确配置NAT模式下虚拟机的网关。

如标题所言,我一开始在设置网关的时候一直存在着误区,而这个误区也导致标题中的问题:虚拟机能ping通宿主机,但是telnet不通,这就很奇葩了。

如下网络拓扑图。

NAT模式虚拟机能ping通宿主机但是telnet不通 教你如何设置网关走出误区_运维


虚拟机ping 192.168.137.1是可以ping通的,但是telnet 192.168.137.1 3306却不通(宿主机安装了MySQL)。

这里的宿主机充当网关的角色,在虚拟机的/etc/sysconfig/network-scripts/ifcfg-ens33文件中也会写死网关IP,如下所示。

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0fdc7a3f-980e-4662-a20b-6fa76f472550"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.137.134
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
DNS1=8.8.8.8

在宿主机上执行ipconfig/all,查看VMnet8网卡,IP地址也确实是192.168.137.1,这没问题啊。

经过查询各种资料,最终发现,上面我对虚拟机和宿主机之间的网络拓扑的理解是有问题的。

上面的网络拓扑图,是将网关和宿主机的IP地址设置成了同一个,因此在telnet的时候,其实是telnet网关的端口,而网关仅用于路由,因此telnet就会失败。

明确网关仅用于路由这一点之后,一切就好办了,网关就是网关,宿主机只是连接在网关上的一个节点,和虚拟机地位相等,即网关的IP和宿主机的IP要不一样(虽然网关和宿主机是同一个机器),改造后的网络拓扑图如下所示。

NAT模式虚拟机能ping通宿主机但是telnet不通 教你如何设置网关走出误区_NAT模式_02


因为我们是想让虚拟机能连通宿主机上的服务,改造之后,我们就不telnet 192.168.137.1网关IP了,而是telnet 192.168.137.2宿主机的IP,这个是可以telnet的。

那如何配置呢?有三步。

  • 第一步:

配置/etc/sysconfig/network-scripts/ifcfg-ens33。

这个上面已经说过了,网关IP还是192.168.137.1。

  • 第二步:

VMware虚拟机中,打开虚拟网络编辑器,设置NAT模式的网关IP为192.168.137.1。

NAT模式虚拟机能ping通宿主机但是telnet不通 教你如何设置网关走出误区_虚拟机_03

  • (重点)第三步:

打开宿主机网络适配器,设置VMnet8网卡的IP地址为192.168.137.2,网关IP为192.168.137.1。

NAT模式虚拟机能ping通宿主机但是telnet不通 教你如何设置网关走出误区_linux_04

以上都设置好后,重启虚拟机,再telnet就没问题了


举报

相关推荐

0 条评论