服务公告

服务公告 > 行业新闻 > 如何开启服务器端口,服务器端口如何正确开启?

如何开启服务器端口,服务器端口如何正确开启?

发布时间:2025-09-13 02:03

下面给出一套“能落地”的标准流程,确保端口真的开通、可达且可控。✅

一、开启端口的正确顺序(通用)

  1. 服务监听:应用要先监听目标端口(如 80/443/3306)。
  2. 系统防火墙放行:Linux(firewalld/ufw)或 Windows 防火墙添加入站规则。
  3. 云安全组:在云主机控制台放行对应端口与来源网段。
  4. 逐级验证:本机→同网段→外网三层连通性测试。
  5. 收紧策略:仅放必要来源、协议与端口,按需限速。🔒

二、Linux 常用做法

1)先确认服务是否在监听

ss -lntp | grep :80

说明:出现 LISTEN 且看到进程 PID/程序名,代表应用已监听 TCP/80;否则需先修应用配置。

2)RHEL/CentOS/Rocky 等(firewalld)

# 永久放行 TCP/80 并重载
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

说明--permanent 写入配置;--reload 生效;--list-ports 校验结果。支持临时开放:

sudo firewall-cmd --add-port=80/tcp --timeout=1h

进阶:仅允许固定源访问(如公司出口 IP)

sudo firewall-cmd --permanent \
  --add-rich-rule='rule family="ipv4" source address="203.0.113.10/32" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --reload

SELinux 口径(非 80/443 的 Web 端口)

# 例如 Nginx 监听 8080
sudo semanage port -a -t http_port_t -p tcp 8080 || sudo semanage port -m -t http_port_t -p tcp 8080

说明:避免 SELinux 拒绝自定义端口(RHEL9/8 默认启用)。

3)Ubuntu/Debian(ufw)

# 开启 UFW 并放行
sudo ufw enable
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw status numbered

说明comment 标注用途便于后续维护;需要限制来源时:

sudo ufw allow from 203.0.113.10 to any port 22 proto tcp comment 'SSH from office'

4)定位冲突与占用

sudo lsof -i :80
sudo fuser -v 80/tcp

说明:确认被谁占用,便于改端口或停冗余服务。🛠️


三、Windows Server(2019/2022)

# 放行 TCP/80
New-NetFirewallRule -DisplayName "Allow HTTP 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow

# 检查本机监听与进程
netstat -ano | findstr :80

# 远端验证(在客户端执行)
Test-NetConnection -ComputerName <服务器IP> -Port 80

说明:使用 PowerShell 创建入站规则;用 Test-NetConnection 快速测通。🧪


四、云安全组不可忽略

  • 入站:协议 TCP/UDP、端口范围(如 80/443/3306)、来源网段(尽量收敛到公司/业务所需 IP 段)。
  • 多层防护一致:系统防火墙与安全组规则需“同向放行”,否则外网仍不可达。
  • 双栈:若需要 IPv6,安全组与本机防火墙都要放通对应规则。🌐

五、三层验证闭环

# 服务器本机
curl -I http://127.0.0.1:80
# 同网段其它机器
curl -I http://<内网IP>:80
# 外网客户端(或本机外网探测)
curl -I http://<公网IP>:80
# TCP 探测
nc -vz <目标IP> 80

说明:逐层定位是“服务配置、系统防火墙、云安全组或网络路径”哪个环节拦了流量。🔍


六、常见坑位与规避

  • 只开了端口,服务没启动 → 先看 ss -lntp
  • 多重防火墙叠加 → 统一梳理:系统防火墙 + 云安全组 + WAF/IPS。
  • 端口被占用 → lsof/fuser 找占用者,改端口或停重复服务。
  • 只开 IPv6/或仅 IPv4 → 对应协议栈都要放通。
  • 全网放开敏感端口(如 22/3306)→ 使用白名单、端口敲门、或跳板机,并开启暴力破解限制。⚠️

七、最小暴露的最佳实践(可直接复用)

  • SSH 仅白名单firewalld rich-rule/ufw from 指定来源。
  • 限速(缓解爆破/扫端口):
# firewalld 对 SSH 设置连接速率(示例)
sudo firewall-cmd --permanent \
  --add-rich-rule='rule service name="ssh" limit value="5/m" accept'
sudo firewall-cmd --reload
  • 临时开放:调试用 --timeout,避免忘记关闭。
  • 变更留痕:所有规则加注释,定期导出备份规则。📝

端口开启对照速查表

场景 工具/命令 核心点
RHEL/CentOS/Rocky firewall-cmd --add-port=80/tcp --permanent && --reload 永久放行并重载
Ubuntu/Debian ufw allow 80/tcp ufw status核验
Windows Server New-NetFirewallRule … -LocalPort 80 用 Test-NetConnection外检
限定来源 firewalld rich-rule / ufw from 收敛到固定网段
SELinux semanage port -a/-m 自定义 Web 端口放通

以上流程覆盖主流发行版与 Windows Server 的最新实践,按此执行即可规范地开启并验证服务器端口,同时兼顾安全与可维护性。🚀