通过网络地址转换(NAT)或桥接(Bridged)模式,将云主机的一个端口映射到内部虚拟机的远程桌面(RDP)或SSH端口上。
下面我为您提供两种主流方案的详细步骤和说明。
方案一:端口映射(NAT模式) - 最推荐、最安全
这是最常用且安全的方法,原理是让云主机充当虚拟机的路由器(使用NAT模式),然后将云主机某个外部端口的流量转发到虚拟机的远程端口(如3389或22)。
步骤详解(以安装Windows虚拟机并使用RDP连接为例):
1、在云主机上配置虚拟机网络
* 在虚拟化软件(如 VMware Workstation, VirtualBox)中,将虚拟机的网络连接模式设置为NAT模式。
* 启动虚拟机,确保其能通过云主机正常上网(这验证了NAT网络是通的)。
2、查看虚拟机的内部IP地址
* 在虚拟机内部,打开命令提示符(CMD),输入ipconfig
。
* 记录下 IPv4 地址,例如192.168.1.105
,这是虚拟机在云主机内部网络中的地址。
3、在云主机上设置端口转发规则
这一步是关键,我们需要在云主机操作系统内部设置一条规则“将所有发送到云主机外部端口X的流量,都转发给内部虚拟机的3389端口”。
对于Windows云主机(使用PowerShell)
以管理员身份打开PowerShell,运行以下命令(请替换-LocalIP
和-LocalPort
为你的虚拟机IP和端口):
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=33389 connectaddress=192.168.1.105 connectport=3389
listenport=33389
: 云主机对外的端口(可自定义,不要用常用端口)。
connectaddress=192.168.1.105
: 虚拟机的内部IP。
connectport=3389
: 虚拟机的RDP端口。
对于Linux云主机(使用iptables)
sudo iptables -t nat -A PREROUTING -p tcp --dport 33389 -j DNAT --to-destination 192.168.1.105:3389 sudo iptables -A FORWARD -p tcp -d 192.168.1.105 --dport 3389 -j ACCEPT
(如果需要持久化保存iptables规则,需要额外操作)
4、放行云主机防火墙端口
云主机系统防火墙确保云主机上的Windows防火墙或Linux防火墙(如ufw/firewalld)允许你刚才自定义的端口(例如33389
)入站。
云平台安全组(最关键的一步!)
登录到你的云服务商控制台(如阿里云、腾讯云),找到你的云主机实例。
* 进入其安全组配置。
* 添加入站规则,允许公网IP通过TCP
协议访问你刚才设置的端口(例如33389
),源(Source)可以设置为你的本地公网IP以获得最大安全性,或者设置为0.0.0.0/0
(允许任何IP访问,不安全,仅用于测试)。
5、远程连接
* 在你的本地电脑上,打开远程桌面连接(mstsc)工具。
在“计算机”一栏中,填写你的云主机公网IP:端口
例如123.123.123.123:33389
* 点击连接,输入虚拟机的用户名和密码,即可成功登录。
方案二:桥接(Bridged)模式 - 较复杂,不常用
此方法尝试让虚拟机和云主机并列,直接从云服务商那里获取一个独立的内网IP。但通常不推荐,原因如下:
大多数云平台不允许虚拟机(作为“子机”)通过桥接模式获取到与云主机同网段的IP。
即使获取到,该内网IP也无法被公网直接访问,最终还是需要云主机做一次端口转发,不如方案一直接。
如果您的云平台支持(通常需要自定义网络),步骤是:
1、 将虚拟机网络设置为桥接模式,并桥接到云主机的物理网卡。
2、 配置虚拟机通过DHCP获取IP,或者手动设置一个与云主机内网同网段且未被占用的IP。
3、 后续步骤同方案一的第4、5步:在云平台安全组中放行虚拟机的IP和RDP/SSH端口,然后直接使用虚拟机的内网IP进行连接(但通常只能从同VPC下的其他云主机连接,无法从公网直连),要从公网连,依然需要端口映射。
特性 | 方案一:端口映射(NAT) | 方案二:桥接(Bridged) |
复杂度 | 简单 | 复杂 |
通用性 | 高,适用于所有云平台 | 低,受云平台网络限制 |
安全性 | 高,可自定义外部端口 | 中,依赖安全组精细控制 |
推荐度 | ★★★★★(极力推荐) | ★★☆☆☆ |
给你的最终建议:
1、无脑选择【方案一:端口映射】,这是最标准、问题最少的做法。
2、牢记安全组规则:90%的连接失败都是因为忘了在云平台控制台配置安全组,务必确保安全组允许了你自定义的端口。
3、注意两层防火墙:既要配置云平台的安全组,也要配置云主机操作系统自身的防火墙。
4、端口选择:避免使用 well-known 端口(如22, 3389, 80, 443),选择一个不常见的高位端口(如 53389, 10022等)可以避免很多自动化攻击扫描。
按照方案一的步骤操作,你一定能成功远程连接到云主机内的虚拟机。
文章摘自:https://idc.huochengrm.cn/zj/15513.html
评论
诗浩广
回复通过远程桌面软件如TeamViewer或VNC连接到云主机,即可远程管理安装在虚拟机上的操作系统。