数据与人文
聚焦技术和人文,分享干货,共同成长。
如何在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)
收藏
举报
刷新页面返回顶部