上一篇
如何关闭端口linux
- Linux
- 2025-07-22
- 4040
Linux端口可通过防火墙规则或停止相关服务,使用
iptables -A INPUT -p tcp --dport 端口号 -j DROP命令可阻止指定端口的TCP访问。
Linux系统中,关闭端口的操作通常涉及防火墙配置或停止相关服务,以下是几种常见的关闭端口的方法:

使用iptables命令关闭端口
| 步骤 | 命令示例(以关闭80端口为例) | 说明 |
|---|---|---|
| 查看当前规则 | sudo iptables -L |
列出当前的防火墙规则,确认端口状态 |
| 添加规则关闭端口 | sudo iptables -A INPUT -p tcp --dport 80 -j DROP |
添加规则,丢弃所有TCP协议的80端口数据包 |
| 保存规则 | sudo service iptables save |
保存规则,确保重启后规则依然有效(适用于CentOS等系统) |
使用firewalld命令关闭端口
| 步骤 | 命令示例(以关闭80端口为例) | 说明 |
|---|---|---|
| 查看已开放端口 | sudo firewall-cmd --list-ports |
查看当前防火墙开放的端口列表 |
| 移除端口规则 | sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent |
从公共区域移除80端口的TCP协议开放规则,--permanent表示永久生效 |
| 重新加载规则 | sudo firewall-cmd --reload |
应用新的防火墙规则 |
使用ufw命令关闭端口
| 步骤 | 命令示例(以关闭80端口为例) | 说明 |
|---|---|---|
| 查看当前状态 | sudo ufw status |
查看防火墙的当前状态和规则 |
| 拒绝端口访问 | sudo ufw deny 80/tcp |
添加规则,拒绝所有TCP协议的80端口访问 |
通过停止服务关闭端口
| 步骤 | 命令示例(以关闭Nginx服务为例) | 说明 |
|---|---|---|
| 查找服务名称 | sudo lsof -i :80 |
查看占用80端口的进程,通常是Nginx或Apache等Web服务 |
| 停止服务 | sudo systemctl stop nginx |
停止Nginx服务,释放80端口 |
| 禁用服务自启 | sudo systemctl disable nginx |
禁止Nginx服务在系统启动时自动运行 |
使用netstat或ss命令结合kill关闭端口
| 工具 | 命令示例(以关闭80端口为例) | 说明 |
|---|---|---|
| netstat | netstat -tuln | grep 80 |
查看监听80端口的进程PID |
| kill | sudo kill <PID> |
根据PID终止进程,关闭端口 |
| ss | sudo ss -tulnp | grep ":80" |
查看监听80端口的进程信息 |
修改配置文件关闭端口
| 文件路径 | 操作说明 | 示例 |
|---|---|---|
| /etc/ssh/sshd_config | 修改SSH服务默认端口 | 将#Port 22改为Port 0并重启SSH服务 |
| /etc/services | 注释或删除端口映射 | 找到目标端口行,添加注释符号 |
方法对比与选择建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 防火墙规则(iptables/firewalld/ufw) | 灵活控制入站/出站流量,支持永久生效 | 需要理解防火墙规则语法 | 需要长期封锁端口时 |
| 停止服务 | 直接关闭服务,彻底释放资源 | 可能影响依赖该端口的服务 | 已知端口对应具体服务时 |
| kill命令 | 快速终止进程,立即生效 | 仅临时关闭,重启后恢复 | 临时调试或紧急处理 |
注意事项
- 权限要求:所有操作需使用
root权限或sudo命令 - 持久化设置:部分命令(如iptables)需手动保存规则才能永久生效
- 服务影响:关闭端口前需确认不会影响系统关键服务
- 防火墙兼容性:不同Linux发行版默认防火墙工具不同(如CentOS常用firewalld,Ubuntu用ufw)
常见问题解答(FAQs)
问:如何验证端口是否成功关闭?
答:可使用以下命令检查:
netstat -tuln | grep <端口号> # 检查端口监听状态 sudo firewall-cmd --list-all # 查看firewalld规则 sudo iptables -L # 查看iptables规则
若没有相关端口的监听记录且防火墙规则已生效,则表示关闭成功。

问:关闭端口后如何恢复访问?
答:根据关闭方式选择对应恢复操作:

- 防火墙规则:移除阻断规则(如
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent) - 停止服务:重新启动对应服务(如
sudo systemctl start nginx) - 修改配置文件:恢复配置文件并重启网络服务(如`sudo systemctl restart
