上一篇
Linux如何关闭服务器端口?
- Linux
- 2025-07-04
- 3763
使用firewall-cmd关闭端口:
sudo firewall-cmd --remove-port=端口/协议 --permanent && sudo firewall-cmd --reload
,使用ufw关闭:
sudo ufw deny 端口
,使用iptables关闭:
sudo iptables -A INPUT -p tcp --dport 端口 -j DROP
并保存规则。
关闭Linux服务器端口的完整指南
在Linux服务器管理中,关闭不必要的端口是基础安全措施,端口是网络通信的入口点,开放多余端口会增加被攻击的风险,以下是三种经过验证的关闭方法,请根据实际场景选择:
方法1:通过防火墙关闭(推荐)
防火墙是控制端口访问的首道防线,支持临时关闭或永久禁用。
iptables(传统防火墙)
# 临时禁止22端口(SSH)的入站流量 sudo iptables -A INPUT -p tcp --dport 22 -j DROP # 永久生效(保存规则) sudo iptables-save | sudo tee /etc/iptables/rules.v4 # Debian/Ubuntu sudo service iptables save # CentOS 7
firewalld(主流现代系统)
# 立即关闭80端口(HTTP) sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent sudo firewall-cmd --reload # 重载配置
ufw(Ubuntu简易防火墙)
sudo ufw deny 3306/tcp # 禁止MySQL默认端口 sudo ufw reload
优势:即时生效、可精细化控制(IP白名单)、不影响服务本身
必做步骤:操作后执行sudo firewall-cmd --list-ports
或sudo ufw status
验证
方法2:停止监听端口的服务
若端口由特定服务开启,停止服务可直接关闭端口:
# 查找占用8080端口的服务 sudo ss -tulnp | grep ':8080' # 示例输出:nginx (PID 1234) sudo systemctl stop nginx # 停止服务 sudo systemctl disable nginx # 禁止开机自启
️ 注意:适用于非必需服务,关键服务(如SSH)请勿直接停止,改用防火墙控制访问。
方法3:禁用绑定端口的配置
对于需要保留服务但需关闭端口的情况:
- 定位配置文件(通常位于
/etc/
或/opt/
)sudo grep -r "Port" /etc/ssh/ # 以SSH为例
- 修改配置并重启服务
# 编辑SSH配置文件 sudo nano /etc/ssh/sshd_config # 将 #Port 22 改为 Port 2222(更换端口)或删除监听IP sudo systemctl restart sshd
安全加固建议
- 最小化原则:仅开放必要端口,用
nmap localhost
定期扫描 - 端口伪装:通过
iptables
重定向非常用端口(如将SSH从22改为5022) - 多层防护:结合云安全组(如AWS Security Group)限制源IP
- 审计工具:
sudo netstat -tunlp # 查看监听端口 sudo lsof -i :6379 # 检查Redis端口占用
常见问题
Q:关闭端口后服务无法访问?
→ 检查防火墙是否误阻关键IP:sudo firewall-cmd --list-rich-rules
Q:修改配置后端口仍开放?
→ 服务未重启:执行 sudo systemctl restart [服务名]
→ 配置未生效:检查语法错误 sudo nginx -t
Q:如何彻底禁用端口?
→ 防火墙+服务停止+配置禁用三管齐下
重要提示:
- 生产环境操作前务必备份:
sudo cp /etc/firewalld/zones/public.xml ~/
- 避免锁定自己:修改SSH端口时保持当前会话,另开窗口测试新端口
- 合规性参考:遵循 CIS Linux Benchmarks 安全标准
通过上述方法,您可有效降低服务器攻击面,安全是持续过程,建议结合载入检测系统(如Fail2ban)和日志监控(journalctl -f
)构建纵深防御。
引用说明 基于以下权威资源验证:
- Red Hat 官方防火墙文档:firewalld配置指南
- Linux 内核网络子系统文档:netfilter/iptables
- Ubuntu Server 安全手册:UFW最佳实践