开放web与数据库端口需分层放行、最小授权:云平台安全组和系统防火墙必须同时配置;web端口80/443应限制访问来源,数据库端口3306/6379/1433严禁公网暴露,仅允许可信内网ip访问,并验证规则生效、服务监听及外部连通性。

开放 Web 与数据库服务端口,核心是“分层放行、最小授权”。云服务器上必须同时通过云平台安全组(第一道门)和系统防火墙(第二道门),缺一不可;本地 Windows 或 Linux 服务器则需检查系统级防火墙规则。关键不是“全开”,而是明确谁访问、用什么协议、连哪个端口。
Web 服务端口(80/443)怎么开
HTTP(80)和 HTTPS(443)是网站对外服务的基础端口,开放时务必限制来源,避免暴露在全网扫描下:
- 云平台(如阿里云、UCloud):在安全组中添加入方向规则,协议选 TCP,端口填 80 或 443,源地址建议设为 0.0.0.0/0(全网可访)仅限生产网站;测试环境可限定为你的办公 IP 段,例如 203.123.45.0/24
- Linux 系统防火墙(firewalld):
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload - Ubuntu/Debian(ufw):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp - Windows 防火墙:控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则 → 选择“端口”→ TCP → 特定本地端口填 80,443 → 允许连接 → 作用域按需限制 IP 范围
数据库端口(3306、6379、1433 等)怎么开
数据库端口绝不能对公网开放(除非有强认证+IP 白名单+隧道等加固措施)。正确做法是只允许可信来源访问:
- MySQL(3306):仅允许应用服务器内网 IP 访问,比如应用服务器 IP 是 10.0.1.5,则安全组规则中源地址填 10.0.1.5/32,系统防火墙也加对应限制
- Redis(6379):默认不监听外网(bind 127.0.0.1),如需跨机访问,先改配置绑定内网地址(如 bind 10.0.1.10),再在防火墙中只放行该子网,例如 10.0.1.0/24
- SQL Server(1433):Windows 防火墙需手动添加入站规则,目标端口 1433,协议 TCP,并在“作用域”选项卡中指定“远程 IP 地址”为应用服务器或 DBA 管理机的固定 IP
- 所有数据库端口都不建议开启 ICMP(ping)响应,防止被探测发现——云平台安全组里禁用“全部 ICMP”类型,Linux 上可用 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 临时关闭
SSH 远程管理端口(22)的安全建议
22 端口是攻击高频目标,开放它不等于“放开不管”:
- 云平台安全组中,源地址绝不填 0.0.0.0/0,应精确到管理员固定公网 IP 或跳板机 IP
- Linux 系统防火墙可叠加 IP 限制(firewalld 示例):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.123.45.101" port port="22" protocol="tcp" accept' - 更进一步:修改 SSH 默认端口(如改为 2222)、禁用 root 登录、启用密钥登录、配合 fail2ban 自动封禁暴力尝试 IP
验证端口是否真正通了
配完别急着重启服务,先做三步验证:
- 查规则是否生效:Linux 执行 sudo firewall-cmd --list-ports(firewalld)或 sudo ufw status verbose(ufw);Windows 在高级安全防火墙里确认入站规则状态为“已启用”
- 查服务是否监听:运行 ss -tlnp | grep ':80\|:443\|:3306',确认进程绑定的是 0.0.0.0(全网)或具体内网 IP,而非仅 127.0.0.1
- 从外部真实测试:用另一台机器执行 telnet your-server-ip 80 或 nc -zv your-server-ip 3306;也可用在线端口检测工具(如 ping.pe)验证公网可达性











