服务器高危端口关闭安全加固指南:零基础也能自己动手
为什么必须关闭服务器高危端口
买回一台云服务器或物理机后,默认状态下很多服务会监听在常见端口上。
这些端口常被扫描工具和黑客盯上,一旦存在弱口令或漏洞,服务器就极容易沦陷。高危端口主要指:
- 22端口(SSH,远程管理)
- 3389端口(Windows RDP,远程桌面)
- 23端口(Telnet,明文传输)
- 445端口(SMB,常被勒索病毒利用)
- 135/137/139端口(Windows 服务漏洞)
- 3306端口(MySQL,默认数据库端口)
- 6379端口(Redis,未授权访问风险)
核心思路是:只开放业务需要的端口,其余一律关闭或修改成非标准端口。 下面按步骤操作,适用于Linux和Windows系统。
第一步:登录服务器并检查当前开放端口
不论你是用SSH连接Linux服务器,还是用远程桌面连接Windows,先进入系统,执行端口扫描命令。
Linux 系统(CentOS/Ubuntu/Debian):
ss -tuln | grep LISTEN
或使用传统命令:
netstat -tuln | grep LISTEN
Windows 系统:
打开命令提示符(管理员),运行:
netstat -an | findstr LISTENING
你会看到类似 0.0.0.0:22 或 0.0.0.0:3389 的行,这些就是当前监听端口。
把结果记录下来,确认哪些是业务必须的(如80/443 Web端口,某些专用端口),其余就是我们要处理的高危端口。
第二步:三种方式关闭或加固高危端口
根据你的使用习惯和系统类型,选择其中一种或组合使用。
方式一:修改服务端口(以SSH为例)
将默认22端口改成高位端口(如12345),减少被扫到的概率。
- 编辑SSH配置文件:
sudo vim /etc/ssh/sshd_config
- 找到
#Port 22,去掉注释,将22改为Port 12345。 - 重启SSH服务:
sudo systemctl restart sshd
- 务必记住:下次登录需加端口参数
ssh -p 12345 user@ip。
注意:改完端口后,原有22端口立即失效。
如果你在远程操作,建议先把防火墙规则打开新端口再重启服务,否则可能连不上。
方式二:使用防火墙限制端口(推荐)
防火墙是最直接、最安全的方案,即便服务监听在默认端口,也可以通过规则拒绝外部访问。
Linux 用 firewalld(CentOS/RHEL 7+):
# 查看当前区域规则
sudo firewall-cmd --list-all
# 移除不需要的端口(例如移除22端口)
sudo firewall-cmd --permanent --remove-port=22/tcp
# 重新加载生效
sudo firewall-cmd --reload
Linux 用 ufw(Ubuntu/Debian):
# 默认拒绝所有入站
sudo ufw default deny incoming
# 允许需要的端口(如80、443)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 拒绝高危端口(如22)
sudo ufw deny 22/tcp
# 启用防火墙
sudo ufw enable
Windows 防火墙:
- 打开“控制面板” → “Windows Defender 防火墙” → “高级设置”。
- 点击“入站规则” → “新建规则”。
- 选择“端口” → 输入要阻塞的端口号(如3389) → 选择“阻止连接” → 应用到所有配置文件。
方式三:使用云服务器安全组(最便捷)
如果你用的是阿里云、腾讯云、AWS等云服务器,直接在控制台的安全组(或安全规则)中操作:
- 新建或编辑安全组,只放行业务必须的端口(如80、443、你修改后的SSH端口)。
- 删除或拒绝所有高危端口对应规则。
- 注意:云安全组优先级高于系统防火墙,所以只需配置安全组即可达到同样效果。
第三步:避坑指南(新手最容易犯错的地方)
- 别关闭还在使用的端口:关闭前务必确认该端口对应服务你现在不用。比如有些人关闭了SSH 22端口却没开启新端口,导致自己失联。
- 修改端口前备份配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak,万一出错能恢复。 - 防火墙规则顺序:如果既有允许又有拒绝,firewalld 和 ufw 规则是有顺序的,通常拒绝规则放在允许规则之后更安全(多数系统默认deny优先级高)。
- 不要关闭系统必要端口:如Linux的SSH(远程连接端口)、Windows的RDP(如果必须远程桌面)、Web服务的80/443。
- 操作后立即测试连接:不要关掉当前会话。开一个新的终端窗口测试新端口是否能连通。如果失联,可以通过云控制台VNC或救援模式恢复。
第四步:效果验证(确认加固是否成功)
验证方法很简单:
- 从外部网络(比如你的本地电脑)用工具扫描服务器IP:
- Linux/Mac 可以用
nmap:nmap -p 1-65535 你的服务器IP - Windows 可以用
nmap或在线端口扫描网站。 - 检查高危端口(22、3389、23等)是否显示
filtered或closed,而不是open。
- 检查业务必需端口(如80、443)是否正常开放。
- 登录服务器再次执行
ss -tuln | grep LISTEN,确认未被拒绝的端口已经不在监听状态(如果通过防火墙拒绝,服务仍监听但外部无法访问,也是安全的)。
如果所有高危端口都被屏蔽或修改,而业务端口正常,说明加固成功。
总结
服务器高危端口关闭安全加固并不复杂,核心就三步:检查、操作、验证。
新手建议从云安全组改起,熟悉之后再尝试系统防火墙或修改服务端口。每次改动前记得备份配置,改完后务必测试连接,避免把自己锁在门外。
坚持最小化开放原则,你的服务器安全水平会大幅提升。
如果你的业务需要开放某些特殊端口,也建议配合白名单IP和强密码策略一起使用。