VMware端口映射实验以及原理

本文介绍了如何通过VMware进行端口映射实验,并详细解释了配置步骤,包括虚拟网络编辑器的使用、防火墙规则的设置等。通过实验,实现了从物理机上的特定端口转发到虚拟机的服务端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VMware端口映射实验以及原理

原理

通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能。

实验

机器:物理机 ip 10.1.2.88 测试机ip 同一网段内即可

软件 :vmware centos ip 192.168.79.132

首先查看centos的IP地址

ifconfig

在这里插入图片描述

打开vmware上的虚拟网络编辑器 用管理员的权限更改NAT模式设置

请添加图片描述

点击NAT设置 点击添加 主机端口是10022(自己在物理机上开的新的端口 下面介绍)

虚拟机IP地址 是centos的ip:192.168.79.132

虚拟机端口 ssh连接就是22

然后点击确定
请添加图片描述

配置物理机端口

打开防火墙 高级设置 入站规则 新建规则就行 端口写成10022 然后下一步就行

请添加图片描述

最后配置完毕 进行测试

打开ssh连接工具 进行配置

请添加图片描述

连接成功

请添加图片描述

最后把添加的10022端口在防火墙中删除!

### VMware 端口映射配置教程 为了实现在 VMware 中进行端口映射以支持局域网通信,可以按照以下方法操作: #### 1. **确认虚拟机网络模式** 确保虚拟机的网络适配器设置为 NAT 模式。这可以通过 VMware 的虚拟机设置界面完成,在网络适配器选项中选择 NAT。 --- #### 2. **进入 VMware 虚拟网络编辑器** 打开 VMware 后,点击菜单栏中的 `编辑` -> `虚拟网络编辑器`。在此窗口中,找到并选择当前正在使用的 NAT 网络(通常是 VMnet8),然后点击右侧的 `NAT 设置` 按钮[^1]。 --- #### 3. **添加端口转发规则** 在弹出的 NAT 设置窗口中,切换到 `端口转发` 页面。点击 `添加` 按钮来创建一个新的端口转发规则: - 主机 IP 地址:留空表示监听所有接口。 - 主机端口:这是外部设备用来访问虚拟机服务的入口端口号。 - 类型:选择 TCP 或 UDP,取决于目标应用程序协议。 - 虚拟机 IP 地址:填写虚拟机的实际 IP 地址(例如 `192.168.88.111`)。 - 虚拟机端口:指定虚拟机内部的服务端口号(例如达梦数据库默认使用的是 `5236`)。 完成后保存设置[^1]。 --- #### 4. **修改 vmnetnat.conf 文件(可选方式)** 如果希望通过手动编辑配置文件的方式实现端口映射,则需定位至 VMware 的 NAT 配置文件路径,通常位于: ``` C:\ProgramData\VMware\vmnetnat.conf ``` 打开该文件后,查找 `[incomingtcp]` 部分,并按如下格式新增一条记录: ```plaintext <主机端口> = <虚拟机IP>:<虚拟机端口> ``` 例如,要将宿主机的 `1020` 端口映射到虚拟机的 `5236` 端口,应写成: ```plaintext 1020 = 192.168.88.111:5236 ``` 保存文件后重启 VMware Services 来使更改生效[^2]。 --- #### 5. **关闭防火墙** 无论是 Windows 宿主机还是 Linux/Windows 虚拟机,都需要确保其各自的防火墙不会阻止新开放的端口。建议临时禁用防火墙测试连通性,或者仅允许特定端口通过防火墙规则[^1]。 --- #### 6. **验证效果** 假设 WiFi 接入点分配给宿主机的 IP 是 `192.168.7.20`,那么其他局域网内的计算机可通过 `<宿主机IP>:<主机端口>` 访问虚拟机上的服务。例如: ```bash telnet 192.168.7.20 1020 ``` 此命令应该能够成功连接到运行在虚拟机上的达梦数据库实例。 --- ### 示例代码 以下是用于测试连接的一个简单 Python 脚本示例: ```python import socket def test_connection(host, port): try: sock = socket.create_connection((host, port), timeout=5) print(f"Successfully connected to {host}:{port}") sock.close() except Exception as e: print(f"Failed to connect to {host}:{port}. Error: {e}") if __name__ == "__main__": test_connection("192.168.7.20", 1020) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值