服务器被攻破,八成和端口有关。要么开了一堆用不到的服务,要么把敏感端口暴露在公网。端口管理是服务器安全里性价比最高的一件事:关掉不该开的,攻击面立刻缩小。
这篇讲端口安全的完整方法论:怎么审计现有端口、怎么按需开放、怎么持续监控。命令全部可抄。
需要云服务器可以看看财富云计算:NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,一键开服面板,主流游戏快速部署。
一、核心原则:默认拒绝,按需开放
安全策略只有两种逻辑:
- 黑名单:默认全开,封掉危险的(❌ 永远追不上新威胁)
- 白名单:默认全关,只开需要的(✅ 最小攻击面)
所有成熟的安全体系都是白名单思维。落到服务器上就是:
INPUT 默认 DROP → 只放行明确需要的端口和来源二、第一步:审计现有端口
# 看所有监听中的 TCP/UDP 端口和对应进程
ss -tulnp
# 只看 TCP
ss -tlnp
# 输出解读:
# Netid State Local Address:Port Process
# tcp LISTEN 0.0.0.0:22 sshd
# tcp LISTEN 127.0.0.1:3306 mysqld ← 只听本地,安全
# tcp LISTEN 0.0.0.0:6379 redis-server ← 全网可达,危险!重点看两列:
- Local Address:
0.0.0.0或::= 监听所有网卡(公网可达);127.0.0.1= 只听本地(安全) - Process:这个端口是谁开的,用不用得上
再对比防火墙实际放行了什么:
# iptables 规则
iptables -L -n -v
# firewalld
firewall-cmd --list-all
# ufw
ufw status verbose最后去云厂商控制台看安全组规则——这层在系统外面,很多人忘了它。
三、第二步:判定每个端口该不该开
常见端口安全评级
| 端口 | 服务 | 公网开放建议 |
|---|---|---|
| 22 | SSH | ⚠️ 可开,但改端口 + 密钥登录 + fail2ban |
| 80/443 | HTTP/HTTPS | ✅ 必须开 |
| 3306 | MySQL | ❌ 绝不开,只听 127.0.0.1 |
| 6379 | Redis | ❌ 绝不开,只听 127.0.0.1 |
| 27017 | MongoDB | ❌ 绝不开(无认证默认被拖库) |
| 5432 | PostgreSQL | ❌ 不开 |
| 9200/9300 | Elasticsearch | ❌ 绝不开(重灾区) |
| 3389 | Windows 远程桌面 | ⚠️ 可开,改端口 + 强密码 + 限制来源 IP |
| 445/139/135 | SMB/NetBIOS | ❌ 关掉(蠕虫病毒入口) |
| 23 | Telnet | ❌ 明文协议,直接禁用 |
| 21 | FTP | ❌ 明文,用 SFTP 代替 |
| 111 | rpcbind | ❌ 不用 NFS 就关 |
| 游戏端口 | 游戏服 | ✅ 按需开 UDP/TCP |
「用不到的服务」清单
这些在云服务器上基本用不到,默认开机自启的话关掉:
# 看开机自启的服务
systemctl list-unit-files --state=enabled
# 常见可禁用的(确认用不到再禁)
systemctl disable --now postfix # 邮件
systemctl disable --now rpcbind # NFS/文件共享
systemctl disable --now bluetooth # 蓝牙
systemctl disable --now avahi-daemon # 设备发现
systemctl disable --now cups # 打印
systemctl disable --now ModemManager # 调制解调器禁一个服务少一个监听端口,也少一个潜在漏洞。
四、第三步:按需开放的配置方法
场景 1:Web 服务器
# ufw 配置(Debian/Ubuntu)
ufw default deny incoming # 默认拒绝入站
ufw default allow outgoing # 默认允许出站
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable场景 2:游戏服务器
# 以方舟为例,UDP 游戏端口 + TCP RCON
ufw allow 7777/udp # 游戏端口
ufw allow 7778/udp # 查询端口
ufw allow 27015/udp # Steam 查询
ufw allow 27020/tcp # RCON(建议限制来源 IP)
# RCON 只给管理员 IP:
ufw allow from 1.2.3.4 to any port 27020 proto tcp场景 3:数据库只听本地
# 不需要防火墙规则——因为只听 127.0.0.1,外部根本进不来
# MySQL: bind-address = 127.0.0.1
# Redis: bind 127.0.0.1
# 但要确认防火墙没有放行(双保险)
ufw status | grep 3306 # 应该没有任何规则firewalld 版本(CentOS/RHEL)
# 查看
firewall-cmd --list-ports
firewall-cmd --list-services
# 放行
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-service=https
# 富规则:限制来源 IP(更安全)
firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="1.2.3.4"
port port="22" protocol="tcp" accept'
# 删除默认服务(比如 dhcpv6-client 不用就删)
firewall-cmd --permanent --remove-service=dhcpv6-client
firewall-cmd --reload五、第四步:云安全组(最外层防线)
系统防火墙之外,云厂商的安全组是第一道门。去控制台配:
| 方向 | 建议 |
|---|---|
| 入站 | 只放行 22(限制来源 IP)、80、443、游戏端口 |
| 出站 | 一般全放行(除非严格环境) |
两个常见错误:
- 图省事选「放通全部端口」——等于没配
- 只配了系统防火墙忘了安全组——外层没挡,内层规则形同虚设
NAT 型云服务器的特殊性:没有独立公网 IP,公网访问全部经过服务商网关的端口映射。这时候:
- 映射端口清单 = 你的公网攻击面。控制台里逐个核对,用不到的映射删掉
- 网关层一般自带基础防护,比裸公网 IP 安全
- 千万别为了「方便」把 3306、6379 加进映射
六、第五步:持续监控端口变化
端口不是配一次就完事——装个新软件、中个马,都会冒出新监听。
定期巡检脚本
#!/bin/bash
# /opt/scripts/port-audit.sh
# 对比当前监听端口和基线,发现新增就告警
BASELINE="/opt/scripts/port-baseline.txt"
CURRENT="/tmp/port-current.txt"
ss -tuln | awk 'NR>1 {print $1, $5}' | sort > "$CURRENT"
if [ ! -f "$BASELINE" ]; then
cp "$CURRENT" "$BASELINE"
echo "基线已建立"
exit 0
fi
NEW=$(comm -13 "$BASELINE" "$CURRENT")
if [ -n "$NEW" ]; then
echo "发现新监听端口:"
echo "$NEW"
# 发告警(邮件/企业微信,按你的方式)
fi# 挂 crontab 每天检查
0 8 * * * /opt/scripts/port-audit.sh用工具扫自己
# 装 nmap,从外部视角看暴露面
apt install -y nmap # 或 yum install -y nmap
# 扫自己的公网 IP(看网关/安全组实际放行什么)
nmap -sS -Pn -p- 你的公网IP
# -p- 扫全部 65535 个端口扫出来的端口,逐个问自己:这个是我开的吗?用得到吗? 有一个算一个处理掉。
七、端口变更的正确流程
以后要开新端口,按这个流程:
- 确认必要性:这个服务必须公网访问吗?能不能只听本地 + 反代?
- 确认协议:TCP 还是 UDP?游戏服常见 UDP,别只开 TCP
- 最小来源:能限制 IP 就限制(管理端口尤其)
- 三层都要开:系统防火墙(ufw/iptables)+ 云安全组 + NAT 映射(如果用 NAT 机型)
- 更新基线:把新端口加进
port-baseline.txt - 验证:
nmap从外网扫,确认开对了、开够了
八、常见问题
Q:ufw 开了防火墙,自己也被挡了?
先 ufw allow 22/tcp 再 ufw enable。如果已经作死锁死自己,用控制台 VNC 进去关掉 ufw 再重新配。
Q:SSH 端口改还是不改?
改。22 端口每天被扫几百次,改成 22222 之类的非常规端口能挡掉 90% 的自动化扫描。改完记得安全组和防火墙同步放行。
Q:游戏端口 UDP 和 TCP 都要开吗?
看游戏。方舟、RUST、帕鲁的游戏端口是 UDP;查询端口有些是 UDP 有些是 TCP;RCON 是 TCP。开之前查好该游戏用哪些协议,开错了玩家进不来。
Q:端口开着但服务挂了,和端口关闭有区别吗?
扫描结果一样(都不通),但资源占用和安全意义不同。服务挂了的端口如果进程还在(僵死),可能被利用。用不到的服务直接禁掉,别只关端口。
Q:怎么知道某个端口被谁在连?
ss -tunp | grep :端口号
# 或装 netstat
netstat -tunp | grep :端口号Q:Docker 的端口怎么管?
Docker 会直接操作 iptables,绕过 ufw 规则!用 Docker 的话,端口绑定要绑到具体 IP:-p 127.0.0.1:8080:80,别用 -p 8080:80(那是绑 0.0.0.0)。或者用 Docker 的网络隔离。
小结
端口安全五步:审计现有端口 → 关掉用不到的服务 → 默认拒绝按需放行 → 三层(系统防火墙+安全组+映射)同步配置 → 定期扫描对比基线。这套做完,你的公网攻击面就只剩「必须暴露的那几个端口」,被扫到漏洞的概率大幅下降。
更多安全教程见财富云计算知识库:防火墙配置、fail2ban、SSH 密钥登录、安全基线全系列。需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,网关映射可控,暴露面更小。
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]# 强密码 + 限制管理 IP + 不用默认端口预防比补救重要:竞技服开白名单/密码,只放熟人进RCON 密码别用默认,定期换别把测试服长期挂公网选带网关防护的 NAT 服务商六、攻击后的复盘加固攻击停止不是结束,按这个清单加固:[ ] 分析日志,找到攻击入口(哪个端口、哪个接口、什么特征)[ ] 关掉不必要的端口和服务(见端口最小化)[ ] Nginx 限流/连接数限制加上[ ] fail2ba[...]
2026-10-14 回复
[...]sudo firewall-cmd --list-all # CentOS四层顺序:平台 → 安全组 → 服务监听 → 系统防火墙。90% 的「连不上」死在前两层,尤其是 UDP 只放了 TCP。更完整的排查见开服常见报错与解决。被攻击时的紧急处理:安全组一键「拒绝所有入方向」断网止血,分析完再精准放行,流程见云服务器被攻击怎么办。七、高级:内网与多机场景多台机器互访(Web + DB 分离)[...]
2026-10-15 回复
[...]# CPUQuota=300%3. 独立数据盘/目录网站数据库、游戏存档、网盘文件各放各的目录,备份可以分别做,见服务器备份与快照策略。三、端口规划:多服务共存的交通规则NAT 型机器只有一个公网 IP,所有服务靠端口区分。端口分配表是共存方案的宪法,开服前先画好:服务内网端口映射公网端口协议说明SSH22随机高端口TCP改掉 22 防扫描帕鲁游戏821120001UDP游戏主端口帕鲁查询2701[...]
2026-10-18 回复
[...]4核16G照常有 公网IP:端口 才能进维度NAT 型独立 IPCPU / 内存 / 磁盘性能完全一致一致出站连接(你连别人)无限制无限制入站连接(别人连你)需端口映射IP 直连可映射端口数平台规则(通常 5-20)65535价格独立 IP 一半以下全价结论先行:对 90% 的个人用户场景,NAT 型和独立 IP 的体验差距只在「配置端口映射」这一步。二、完全无感的场景:映射[...]
2026-10-18 回复
[...]}反向代理配置见Nginx 反向代理与多站点,端口映射前提见NAT 端口映射完全指南。管理类服务(Kuma)务必加访问控制,见服务器端口安全。五、安全四件套(容器化也要装)容器不映射管理端口到公网:Kuma、数据库这类只走 Nginx 反代 + 访问控制。镜像来源可信:只用官方/知名社区镜像,别用来路不明的镜像(镜像里可以藏挖矿程序,见开源程序部署安全检查)。Docker socket 不给普通容[...]
2026-10-18 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复
[...]restart: unless-stopped具体部署步骤(含证书、合法域名配置)见小程序后端搭建实战。两个方案的详细对比见网站环境怎么选。五、安全与备份:上线前的最后一道关小程序后端是 7×24 对着公网的,基本功课不能省:防火墙只开 443 和 SSH 端口,MySQL/Redis 的 3306/6379 绝不对外,见服务器端口安全:最小化开放SSH 用密钥登录,关密码登录,见SSH 安全加固[...]
2026-10-18 回复
[...]find /backup -name 'vw-*.tar.gz' -mtime +30 -deletersync 增量备份方案见rsync 同步与定时备份实战,定时任务见crontab 计划任务完全指南。导出密码库要加密:Bitwarden 支持加密导出(.json 加密格式),明文导出只用于迁移,导完立刻删。六、安全加固清单密码库是"一把钥匙开所有锁"的地方,安全按最高标准:[ ] SIGNUP[...]
2026-10-18 回复
[...]-d '{"longUrl": "https://z0w.cn/wiki/", "tags": ["api"]}'301 vs 302 的选择(重要,影响 SEO):302(临时跳转):默认推荐。搜索引擎把权重算给目标页,不传递短链域名的权重——推广场景用这个301(永久跳转):权重传递给目标页,适合"这个短链就是永久[...]
2026-10-18 回复
[...]</html>注意:CDN 脚本在国内访问不稳定,建议把 docsify 的 JS/CSS 下载到自己服务器。 Docsify 适合"今晚就要上线"的场景,长期大量文档还是构建型方案(SEO 更好、首屏更快)。五、文档站的通用功课SEO:静态文档站是搜索引擎最友好的形态,但配置要对——每个页面独立 title、配 sitemap.xml、提交收录,方法见网站 SEO 基础优化指南。速度[...]
2026-10-18 回复