关闭端口的命令linux
关闭端口的命令linux详细介绍
在 Linux 系统中关闭端口通常需要通过防火墙配置或停止占用端口的服务来实现。以下是常用的方法,根据不同的防火墙工具和场景选择合适的操作:
一、通过防火墙关闭端口(推荐)
1.
使用 iptables(适用于大多数 Linux 系统)
- 临时关闭端口(重启后失效):bash
iptables INPUT tcp DROP
iptables OUTPUT tcp DROP
iptables INPUT udp DROP
- 永久生效(需保存规则):
不同系统保存规则的命令不同(以 Debian/Ubuntu 为例):bash重启后通过脚本自动加载规则(需自行配置)。
2.
使用 firewalld(适用于 CentOS 7+/RHEL 7+、Fedora 等)
- 临时关闭端口(重启后失效):bash
firewall-cmd public --remove-port/tcpfirewall-cmd public --remove-port/udp
- 永久关闭端口(重启后生效):bash
firewall-cmd public --remove-port/tcpfirewall-cmd
3.
使用 ufw(适用于 Debian/Ubuntu)
- 关闭端口:bash
ufw deny /tcpufw deny /udp
- 检查规则是否生效:bash
ufw status
二、通过停止占用端口的服务关闭端口
如果端口被某个服务占用,直接停止服务会关闭端口(但服务重启后端口会恢复,需配合禁用开机启动):
1.
查找占用端口的进程
bash
:端口号:端口号
2.
停止进程(临时关闭,服务重启后端口会再次打开)
bash
进程PID
3.
禁用服务开机启动(永久关闭)
bash
systemctl stop 服务名systemctl disable 服务名
三、注意事项
- 管理员权限:上述操作需
sudo或root权限。 - 明确需求:关闭端口前确认是否需要禁止入站 / 出站流量,或直接停止服务(后者可能影响业务)。
- 持久化规则:使用防火墙时,若需重启后生效,需通过
--permanent(firewalld)或保存规则(iptables/ufw)。 - 验证端口状态:关闭后用
netstat或lsof检查端口是否仍被占用:bash端口号
根据你的 Linux 发行版和需求选择合适的方法:
- CentOS/RHEL/Fedora:推荐使用
firewalld。 - Debian/Ubuntu:推荐使用
ufw或iptables。 - 通用场景:通过防火墙规则关闭端口更安全,避免误杀进程;若需彻底禁用服务,结合停止服务和防火墙规则。