如何在Linux中关闭开放的端口?

如何在Linux中关闭开放的端口?

数据与人文

聚焦技术和人文,分享干货,共同成长。

如何在Linux中关闭开放的端口?

在 Linux 系统中关闭开放的端口,主要思路是停止使用该端口的服务或者通过防火墙规则来阻止对该端口的访问,以下为你详细介绍相关方法:

1. 停止使用该端口的服务

要关闭端口,首先需要确定是哪个服务在使用该端口,然后停止该服务。可以结合 netstat、ss 或 lsof 命令找出使用特定端口的进程,再使用相应的命令停止服务。

步骤 1:找出使用端口的进程

使用 lsof 命令:例如,要找出使用 8080 端口的进程,可以使用以下命令:

lsof -i :8080

输出结果会显示使用该端口的进程名、进程 ID(PID)等信息,示例如下:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

java 12345 user 4u IPv6 12345 0t0 TCP *:8080 (LISTEN)

这里可以看到是 java 进程(PID 为 12345)在使用 8080 端口。

使用 ss 命令:

ss -tulnp | grep :8080

此命令会显示监听 8080 端口的进程信息。

步骤 2:停止相应的服务或进程

对于由系统服务管理的服务:可以使用 systemctl 命令(适用于使用 systemd 的系统,如 CentOS 7 及以上、Ubuntu 16.04 及以上)。例如,如果 8080 端口被 Tomcat 服务使用,可以使用以下命令停止 Tomcat:

sudo systemctl stop tomcat

若要禁止该服务在系统启动时自动开启,可以使用:

sudo systemctl disable tomcat

对于普通进程:可以使用 kill 命令结合进程 ID 来终止进程。根据前面 lsof 命令的输出,若进程 ID 为 12345,可使用以下命令:

sudo kill 12345

如果进程无法正常终止,可以使用强制终止命令:

sudo kill -9 12345

2. 使用防火墙规则阻止端口访问

如果不想停止服务,只是希望阻止外部对特定端口的访问,可以通过配置防火墙规则来实现。常见的 Linux 防火墙有 iptables 和 firewalld。

使用 iptables

iptables 是传统的 Linux 防火墙工具。

阻止外部对 8080 端口的 TCP 访问:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

此命令将添加一条规则,阻止所有传入的 TCP 连接到 8080 端口。

保存规则:iptables 的规则在系统重启后会丢失,若要永久保存规则,可以使用以下命令(以 CentOS 为例):

sudo service iptables save

使用 firewalld

firewalld 是现代 Linux 系统中常用的防火墙管理工具。

阻止外部对 8080 端口的访问:

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent

--zone=public 表示对公共区域的网络进行设置,--remove-port=8080/tcp 表示移除对 8080 端口 TCP 协议的开放,--permanent 表示设置为永久生效。

重新加载防火墙规则:

sudo firewall-cmd --reload

通过以上方法,你可以在 Linux 系统中关闭开放的端口,根据实际需求选择合适的方式。

posted on

2025-02-14 08:43

数据与人文

阅读(1394)

评论(0)

收藏

举报

刷新页面返回顶部

相关数据

互联网理财产品有哪些种类?
4S和6S的音质比较(探索iPhone4S和iPhone6S的音质差异及其关键特点)
穗凌冰柜怎么样?购买冰柜有哪些注意事项?

友情链接