当前位置:首页 > Linux > 正文

Linux如何关闭服务器端口?

使用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-portssudo ufw status 验证

Linux如何关闭服务器端口?  第1张


方法2:停止监听端口的服务

若端口由特定服务开启,停止服务可直接关闭端口:

# 查找占用8080端口的服务  
sudo ss -tulnp | grep ':8080'  
# 示例输出:nginx (PID 1234)  
sudo systemctl stop nginx      # 停止服务  
sudo systemctl disable nginx   # 禁止开机自启

注意:适用于非必需服务,关键服务(如SSH)请勿直接停止,改用防火墙控制访问。


方法3:禁用绑定端口的配置

对于需要保留服务但需关闭端口的情况:

  1. 定位配置文件(通常位于 /etc//opt/
    sudo grep -r "Port" /etc/ssh/  # 以SSH为例
  2. 修改配置并重启服务
    # 编辑SSH配置文件  
    sudo nano /etc/ssh/sshd_config  
    # 将 #Port 22 改为 Port 2222(更换端口)或删除监听IP  
    sudo systemctl restart sshd

安全加固建议

  1. 最小化原则:仅开放必要端口,用 nmap localhost 定期扫描
  2. 端口伪装:通过 iptables 重定向非常用端口(如将SSH从22改为5022)
  3. 多层防护:结合云安全组(如AWS Security Group)限制源IP
  4. 审计工具
    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最佳实践
0