VM 端口映射问题
环境:
宿主机:WIN 10 --192.168.9.87
虚拟机:CentOS ---192.168.255.129
联通模式:NAT模式
一、VM做端口映射
1.为了方便管理,设置虚拟机为静态IP
2.配置端口
3.测试ssh -p 5555 192.168.9.87 是否能转到 192.168.255.129
发现无法访问。【192.168.9.87与192.168.255.129 防火墙都已经关闭】
二、问题排查
1.127.0.0.1:5555 可以顺利访问 192.168.9.87:5555 无法访问
因此可以推断数据包到127.0.0.1 却没有到达192.168.9.87
换句话说 数据包到达本地的VM8网卡 没有到达本地连接 在192.168.255.129上检查与192.168.9.87的连通性,果然不通
2.连通性问题稍后解决。先解决目前的问题,此时有两种办法
第一种:
①宿主机进行再次端口转发 将192.168.9.87的数据转发到127.0.0.1:5555,此时宿主机需要再开通一个端口,比如8888【不能选择同一端口】
②确认宿主机ip helper服务是不是在运行
③然后cmd 运行命令
netsh interface portproxy add v4tov4 listenport=8888 connectaddress=127.0.0.1 connectport=5557 【添加转发端口】
添加成功后,可以访问 。实际上路由 外部->192.168.9.87:8888->127.0.0.1:5557->192.168.255.129
第二种:
将VM8网卡与本地连接打通 互联,开通本机路由功能【后续研究】
三、其他问题
1.在192.168.255.129 无法ping通 宿主机 192.168.9.87,可以ping通网关 192.168.255.2
2.静态IP无法访问,DHCP可以,推测是网络配置问题
3.ping VM8的网卡无法ping通
4.netstat -rn检查linux本机路由信息
发现没有0.0.0.0的路由
5.检查/etc/sysconfig/network-scripts 下的网卡配置文件后发现是里面网关配置问题,更正后重启network后正常
6.192.168.9.87:5555 这个可以访问了 192.168.9.87:8888 可以删除此条转发
netsh interface portproxy delete v4tov4 listenport=8888
四、补充
上述整个网络拓扑如下图
因此,当VM8不生效时,宿主机可以通过特定端口进行虚拟机访问,虚拟机能正常返回数据包
当NAT网关不生效时,或者虚拟机未设置网关,宿主机可以正常访问虚拟机,但是虚拟机的返回数据包将丢失
虚拟机连接外网,如果是静态IP ,则通过NAT网关到达宿主机,再通过DNS服务器进行域名解析就可以正常访问外部域名网络。
----------------------------------------------------------------------------------------------------------------------------
另外十分感谢一位大神的热心帮助,解决了困扰了半天的问题。