服务公告
如何开启服务器端口,服务器端口如何正确开启?
发布时间:2025-09-13 02:03
下面给出一套“能落地”的标准流程,确保端口真的开通、可达且可控。✅
一、开启端口的正确顺序(通用)
- 服务监听:应用要先监听目标端口(如 80/443/3306)。
- 系统防火墙放行:Linux(firewalld/ufw)或 Windows 防火墙添加入站规则。
- 云安全组:在云主机控制台放行对应端口与来源网段。
- 逐级验证:本机→同网段→外网三层连通性测试。
- 收紧策略:仅放必要来源、协议与端口,按需限速。🔒
二、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 的最新实践,按此执行即可规范地开启并验证服务器端口,同时兼顾安全与可维护性。🚀
下一篇: 技术热线 搭建,技术热线如何高效搭建?