如何使用 VM 虚拟机端口映射实现数据转发

2020-02-29 17:02:41 浏览数 (1)

随着虚拟化技术的应用,很多环境配置都是在虚拟机中进行的,比如前几天我搭建的 Git 服务器,就是在一个物理机的虚拟机上搭建的,一方面可以做环境隔离,另一方面也方便管理,但是这样会带来另一个新的问题:网络访问

我的多个物理机的网段是相通的,但是虚拟机和其所在物理机使用的是 NAT 模式,所以虚拟机和非其所在的物理机没法直接连通,可以使用如下命令确认下:

代码语言:javascript复制
> telnet 192.168.252.129 22正在连接192.168.252.129...无法打开到主机的连接。在端口 22: 连接失败

下面要介绍的就是如果如何通过 VMware 自身提供的端口转发机制来实现通讯.

环境

物理机:10.13.11.12

物理机:10.13.11.13

虚拟机 IP:搭建在 10.13.11.12 上,IP 为 192.168.252.129

虚拟机:VMware 14

开始设置

查看虚拟机 IP

需要先查看当前的虚拟机 IP,因为后面映射的时候,需要填写 IP 和端口信息:

设置入口

通过 菜单 -> 编辑 -> 虚拟网络编辑器 入口打开设置界面:

提权

我当前使用的是 Windows 7 系统,如果当前用户不是系统的那种 administrator 并且系统开启了 UAC 的话,需要先进行操作提权,才能进行设置,提权操作如下:

NAT 设置入口

提权成功后,需要选择当前虚拟机对应的网络,然后点击「NAT 设置」进入详细设置界面:

添加端口转发

在打开的「NAT 设置」界面,点击「添加」来添加对应的转发端口信息:

设置映射

在弹出的对话框,填入物理机的映射端口,注意不能填已经被占用的端口,然后填写虚拟机的 IP 和要转发的端口,比如我要转发的是 git 默认的 ssh 端口,所以填的 22:

确认连接

填写完成后,一路确定下去,直到完成,然后可以在另一台物理机上验证连通性了:

代码语言:javascript复制
> telnet 10.13.11.12 10001

确认是可以访问的,这时候在 ssh 配置文件 config 中配置了上述配置后,使用 git 也确认是可以连接到虚拟机的 git 服务器的。

以上,我详细记录了通过虚拟机端口映射的方式,解决虚拟机和非宿主机的连接问题,不知道你是否有其他的解决方案,欢迎留言讨论。

0 人点赞