如何设置云主机的端口?

HCRM技术_小炮 云主机 2026-05-19 3 0

云服务商的安全组(或防火墙规则)云主机操作系统内部的防火墙,两者缺一不可,否则端口可能无法从外网访问。

以下是通用的配置步骤:

第一步:配置云服务商的安全组(最重要)

这是云服务器的“第一道门禁”,即使操作系统允许,安全组不放行,端口依然无法访问。

1、登录云服务商控制台(阿里云/腾讯云/华为云/AWS等)。

2、找到“安全组” 或“网络与安全” -> “安全组”。

3、选择或创建安全组

- 找到你的云主机绑定的安全组(通常是ECS/UHost/EC2实例详情页可以看到)。

4、添加“入方向”规则(Inbound Rules):

规则方向:入方向(指外部访问你的服务器)。

授权策略:允许(Allow)。

协议类型:常用协议(TCP/UDP等),例如Web服务用TCP,DNS用UDP。

端口范围:填写你需要开放的端口号,例如80(HTTP)、443(HTTPS)、3306(MySQL),如果需要开放多个端口,可以写成8000-900080,443,3306

授权对象非常重要! 不要轻易设为0.0.0.0/0(全世界都可访问),建议设为:

固定IP访问你的IP/32(如202.38.64.1/32

所有IP访问(仅用于测试)0.0.0.0/0(IPv4)或::/0(IPv6)

优先级:如果有冲突规则,优先级高的生效(一般保持默认即可)。

第二步:配置云主机操作系统防火墙(Linux / Windows)

如果是 Linux 系统(CentOS / Ubuntu / Debian)

方法一:使用firewalld(CentOS 7+ / RHEL 8+)

开放某个端口(以 8080 为例)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
开放一个端口范围
sudo firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent
重新加载配置使规则生效
sudo firewall-cmd --reload
查看已开放的端口列表
sudo firewall-cmd --list-ports
关闭某个端口
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload

方法二:使用iptables(经典 Linux 防火墙,自行管理)

开放 80 端口
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
保存规则(不同发行版保存方式不同,以 CentOS 为例)
sudo service iptables save
或者使用 iptables-persistent(Ubuntu/Debian)
sudo netfilter-persistent save
sudo netfilter-persistent reload

如果是 Windows 系统

1、 搜索打开“Windows Defender 防火墙”

2、 点击左侧“高级设置”

3、 右键“入站规则” ->“新建规则”

4、规则类型:选择“端口”。

5、协议和端口:选择“TCP”或“UDP”,勾选“特定本地端口”,输入端口号(如33898080)。

6、操作:选择“允许连接”。

7、配置文件:勾选“域”、“专用”、“公用”(一般默认全选即可)。

8、名称:输入一个你能记住的名字,如“允许Web端口8080”。

9、 点击完成。

第三步:确保服务本身在监听该端口

即使防火墙放行了,你的应用程序也必须在服务器上运行并监听该端口。

检查方法:在服务器内部使用命令查看端口监听状态:

Linuxsudo netstat -tulnpss -tulnp

Windowsnetstat -anoGet-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess

常见问题:如果端口是被动开放(例如你的应用是客户端,需要连接其他服务器的端口,如 MySQL的 3306),则不需要在本机上监听,但需要在安全组出方向开放。

常见问题与解决

1、安全组和防火墙都设置了,还是无法访问?

检查服务是否正在运行:如systemctl status nginx 或查看应用日志。

检查监听地址:确保服务监听的是0.0.0.0(所有IP)而不是127.0.0.1(仅本地),MySQL 默认可能只绑定127.0.0.1,需要修改配置为0.0.0.0::

2、为什么安全组“添加”规则后,要等几分钟才生效?

- 一般瞬间生效,但如果云平台有缓存或延迟,可尝试重启一次云主机或等待1-2分钟。

3、如何快速测试端口是否开放?

- 在你的本地电脑上使用telnet 你的云主机公网IP 端口号(Windows需安装telnet客户端或使用Test-NetConnection PowerShell命令)。

- 在线端口扫描工具(如tool.chinaz.com/port)。

4、端口被占用怎么办?

- 使用lsof -i :端口号(Linux)或netstat -ano(Windows)找到占用进程,修改你的应用端口,或停止占用进程。

1、云服务商安全组放行入方向端口

2、操作系统防火墙放行入方向端口

3、应用程序正在监听0.0.0.0:端口

任何一层被阻挡,外网都无法访问,建议先完成步骤1,因为大多数云平台默认安全组是“全拒绝”状态,这是最容易出问题的地方。

文章摘自:https://idc.huochengrm.cn/zj/25788.html

评论