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

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

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

要关闭端口,首先需要确定是哪个服务在使用该端口,然后停止该服务。可以结合 netstatss 或 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   数据与人文  阅读(86)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示