这个过程的核心是配置安全组(或防火墙) 和网络ACL,并确保云主机内部服务正在监听正确的端口,下图清晰地展示了数据流如何从公网穿透到你的云主机:
flowchart TD
subgraph A [公网用户]
direction LR
U[用户] --“请求数据包<br>(目标: 云主机公网IP:端口)”--> R[互联网路由器]
end
subgraph B [云服务商网络]
F[云防火墙/安全组] --“检查规则<br>放行指定端口”--> L[负载均衡器/虚拟交换机]
end
subgraph C [你的云主机]
direction LR
L --“数据包到达<br>云主机虚拟网卡”--> S[内部服务<br>(如Nginx, SSH, RDP)]
end
A --> B --> C下面我以国内最常用的阿里云和腾讯云为例,详细说明操作步骤和原理。
你可以把你的云主机想象成一个有独立房间(服务端口)的大楼(云主机IP),安全组就是大楼门口的智能警卫+邮局分拣员。
1、公网请求:用户访问你的云主机公网IP的某个端口(例如121.40.xx.xx:80)。
2、安全组检查:请求数据包先到达云平台,由安全组规则进行检查。
* 如果规则允许从外部访问该端口,则放行。
* 如果规则拒绝或无相关规则,则拦截。
3、路由到主机:放行的数据包被路由到你的云主机虚拟网卡。
4、内部服务响应:云主机内部运行的服务(如Nginx、Apache)监听对应的端口,收到请求并处理,然后返回响应。
详细步骤(以映射Web服务的80端口为例)
登录云服务商控制台,进入云主机实例详情页。
找到“公网IP” 或“弹性公网IP” 地址并记下。
安全组是一种虚拟防火墙,是控制进出流量的核心。
1、找到安全组:在云主机实例详情页,找到关联的安全组,点击其ID/名称进入配置页面。
2、添加入站规则:
规则方向选择入方向(Inbound)。
授权策略选择允许。
协议类型
* Web服务常用TCP。
* 某些游戏或语音服务可能用UDP。
端口范围
单个端口80
端口段80/80 或8000-9000
* 常用端口也可用预设值,如HTTP (80)。
授权对象(源地址)
0.0.0.0/0 表示允许所有IP地址访问。(注意此设置存在安全风险,仅用于测试或公开服务)
* 为了安全,建议设置为特定的IP或CIDR网段,如您的办公室IP/32 或123.120.xx.xx/28。
优先级通常数字越小优先级越高,保持默认即可。
3、保存规则,规则通常会立即生效。
不同云服务商入口略有差异:
阿里云控制台 ->ECS ->实例 ->安全组 ->配置规则
腾讯云控制台 ->CVM ->安全组 ->入站规则
华为云控制台 ->ECS ->访问控制 ->安全组
安全组放行后,还需确保云主机内部满足以下条件:
1、服务已启动:确保你的Web服务器(Nginx/Apache/Tomcat)正在运行。
# Linux 示例:检查Nginx状态
systemctl status nginx
# 如果未运行,启动它
systemctl start nginx2、监听正确端口:服务配置为监听你映射的端口(如80)。
# Linux 示例:查看监听端口的程序
netstat -tlnp | grep :80
# 或使用 ss 命令
ss -tlnp | grep :803、系统防火墙(可选但重要):
Linux(如CentOS 7+,使用firewalld)
# 开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重载防火墙
firewall-cmd --reloadUbuntu(使用UFW)
sudo ufw allow 80/tcp
sudo ufw reloadWindows在“Windows Defender 防火墙”的高级设置中添加入站规则。
在浏览器中输入:http://你的公网IP。
如果一切配置正确,你应该能看到你的网站页面。
| 服务/应用 | 协议 | 默认端口 | 备注 |
| HTTP网站 | TCP | 80 | 明文传输 |
| HTTPS网站 | TCP | 443 | 加密传输 |
| SSH远程连接 | TCP | 22 | Linux远程管理 |
| Windows远程桌面 | TCP | 3389 | Windows远程管理 |
| MySQL数据库 | TCP | 3306 | 强烈建议不要对公网开放,应通过内网或VPN访问 |
| 自定义应用 | TCP/UDP | 8080, 3000 | 根据你的程序设置 |
1、弹性公网IP:可以与云主机解绑和绑定,更换IP更方便。
2、负载均衡器:如果你有多台云主机提供服务,通常会将公网IP绑定到负载均衡器上,由负载均衡器将流量分发给后端的云主机集群,此时需要在负载均衡器上配置监听端口和转发规则,后端云主机的安全组只需允许来自负载均衡器内网IP的流量即可。
3、NAT网关:为私有子网内的云主机提供访问公网或接受公网请求的能力,也是一种网络映射方式。
4、端口转发:在云主机内部,你可以使用iptables(Linux)或netsh(Windows)进行更复杂的端口转发,例如将公网8080端口转发到内部服务的80端口。
最小化开放原则只开放必需的端口,避免使用0.0.0.0/0 开放高危端口(如22、3389、3306),建议使用VPN或云堡垒机进行远程管理。
修改默认端口对于SSH、RDP等服务,考虑修改为不常用的高端口(如 2222),能减少大量自动化攻击。
强密码为所有对外服务设置复杂且唯一的密码或密钥。
总结流程:
获取公网IP -> 登录控制台 -> 配置安全组入站规则(协议/端口/源)-> 启动并确认内部服务及防火墙 -> 测试访问。
按照这个流程,你就能成功地将云主机的服务映射到公网了,如果遇到问题,请依次检查:安全组规则、云主机内部防火墙、服务状态和监听地址。
文章摘自:https://idc.huochengrm.cn/zj/23748.html
评论