Linux如何关闭80端口?

在Linux系统中,关闭80端口通常用于安全防护、服务迁移或端口冲突解决,80端口是HTTP服务的默认端口,可能被Apache、Nginx、Tomcat等Web服务占用,或被其他自定义程序监听,关闭端口需分步骤进行,包括确认占用情况、停止相关服务、配置防火墙规则等,以下是详细操作流程。

如何关闭linux 80端口

确认80端口占用情况

在关闭端口前,需先明确80端口被哪个进程或服务占用,避免误操作影响正常业务,常用命令有netstat、ss和lsof,具体如下:

使用netstat命令(传统工具)

netstat -tuln | grep 80
  • -t:显示TCP端口
  • -u:显示UDP端口
  • -l:仅显示监听端口
  • -n:以数字形式显示地址和端口,避免DNS解析
    若输出类似tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN,表示80端口被监听,需查看右侧PID/进程名(结合-p参数:netstat -tulnp | grep 80)。

使用ss命令(推荐,更高效)

ss -tuln | grep 80

ss是netstat的替代工具,在Linux新版本中默认安装,查询速度更快,参数与netstat基本一致。

使用lsof命令(显示详细进程信息)

lsof -i:80

该命令会列出占用80端口的进程ID(PID)、用户、命令等详细信息,
nginx 1234 root IPv4 0 0 0.0.0.0:80 0.0.0.0:* LISTEN,明确进程为nginx,PID为1234。

停止占用80端口的服务

确认占用进程后,需根据服务类型停止服务,常见Web服务的停止命令如下:

如何关闭linux 80端口

停止Apache服务

# 停止当前运行的服务
systemctl stop httpd    # CentOS/RHEL系统
systemctl stop apache2   # Debian/Ubuntu系统
# 禁止服务开机自启(避免重启后自动监听80端口)
systemctl disable httpd
systemctl disable apache2

停止Nginx服务

systemctl stop nginx
systemctl disable nginx

停止Tomcat服务

Tomcat默认监听8080端口,若配置修改为80端口,需先定位Tomcat安装目录,关闭catalina.sh脚本:

# 假设Tomcat安装目录为/usr/local/tomcat
/usr/local/tomcat/bin/shutdown.sh

强制终止进程(若服务无法正常停止)

若服务停止命令无效,可通过PID强制终止进程(谨慎使用,可能导致数据丢失):

kill -9 <PID>  # kill -9 1234

配置防火墙规则关闭80端口

即使停止了服务,防火墙可能仍允许80端口入站连接,需进一步配置防火墙规则,不同Linux发行版使用的防火墙工具不同,需区分处理:

CentOS/RHEL(使用firewalld)

# 查看当前是否开放80端口
firewall-cmd --list-ports | grep 80
# 移除80端口规则(永久生效)
firewall-cmd --permanent --remove-port=80/tcp
# 重新加载防火墙使规则生效
firewall-cmd --reload

Debian/Ubuntu(使用ufw)

# 查看当前规则
ufw status | grep 80
# 拒绝80端口入站连接
ufw deny 80
# 重新加载防火墙
ufw reload

通用方法(iptables)

若系统使用iptables(如老旧版本或自定义配置):

如何关闭linux 80端口

# 删除允许80端口的规则(需匹配原有规则格式)
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
# 保存规则(CentOS:service iptables save;Ubuntu:iptables-save > /etc/iptables/rules.v4)
service iptables save

验证80端口是否关闭

执行以下命令确认80端口已不再监听或被允许:

# 检查端口占用
netstat -tuln | grep 80
ss -tuln | grep 80
# 测试防火墙规则(从外部或本地访问80端口)
curl http://localhost:80  # 应返回“Connection refused”或超时

常用命令速查表

操作类别 命令(示例) 说明
查看端口占用 ss -tuln | grep 80 查询80端口监听状态
查看进程详情 lsof -i:80 显示占用80端口的进程信息
停止Apache systemctl stop httpd 停止Apache服务
停止Nginx systemctl stop nginx 停止Nginx服务
移除firewalld规则 firewall-cmd --permanent --remove-port=80/tcp 永久移除80端口规则
拒绝ufw规则 ufw deny 80 拒绝80端口入站连接

相关问答FAQs

Q1: 关闭80端口后,如何确认服务是否完全停止?
A1: 可通过以下方式综合确认:

  1. 使用systemctl status <服务名>(如systemctl status nginx)查看服务状态,应显示“inactive (dead)”;
  2. 执行ps aux | grep <服务名>(如ps aux | grep nginx),确认无相关进程运行;
  3. 通过netstat -tuln | grep 80再次检查,确保80端口无监听状态。

Q2: 为什么停止服务后,80端口仍显示被占用?
A2: 可能原因包括:

  1. 服务未完全停止:部分服务可能存在子进程或守护进程未退出,可尝试kill -9强制终止,或检查服务配置文件中的端口绑定是否彻底;
  2. 其他程序占用:可能有非Web服务(如Python、Java程序)监听80端口,需通过lsof -i:80确认并停止相关进程;
  3. 防火墙规则未更新:若防火墙仍允许80端口入站,需按本文第三部分重新配置防火墙规则,确保规则已生效(如执行firewall-cmd --reload)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37072.html

赞 (0)
酷番叔酷番叔
上一篇 2025年10月6日 16:16
下一篇 2025年10月6日 16:26

相关推荐

  • Linux文件乱码?如何快速查编码

    使用 file 命令(系统内置工具)file 是Linux内置工具,通过分析文件头信息推测编码:file -i 文件名示例输出:test.txt: text/plain; charset=utf-8说明:输出中的 charset 即文件编码(如utf-8、iso-8859-1),适用场景:快速检查纯文本文件,对……

    2025年7月29日
    34100
  • Linux系统下如何运行程序、命令及应用软件?

    在Linux系统中,“运行”是一个涵盖范围较广的概念,可能包括执行命令、运行脚本、启动程序、管理服务等,本文将从基础命令操作到程序运行、服务管理等多个维度,详细说明Linux下的运行方法,帮助用户全面掌握不同场景下的操作逻辑,基础命令的运行Linux的核心是命令行终端,几乎所有操作都可通过命令完成,运行基础命令……

    2025年9月29日
    23700
  • Linux系统中如何正确且安全地杀死进程?

    在Linux系统中,进程是程序执行的基本单位,当进程出现卡死、资源泄露、异常占用或安全风险时,及时终止(“杀进程”)是保障系统稳定运行的关键操作,本文将系统介绍Linux中杀进程的多种方法、命令参数及注意事项,帮助用户高效、安全地管理进程,杀进程前的准备:查看进程信息在终止进程前,必须先准确找到目标进程的ID……

    2025年9月26日
    2.8K00
  • Linux下如何破解WiFi密码?详细操作步骤与方法有哪些?

    在Linux系统中,针对WiFi密码的破解操作需严格遵循法律法规,仅限用于授权网络的安全测试或自家网络管理,未经授权入侵他人网络属违法行为,以下内容仅从技术原理角度介绍Linux环境下WiFi密码测试的流程及工具使用,请务必合法合规操作,准备工作硬件要求:需支持监听模式的无线网卡,常见型号如RTL8187L、A……

    2025年9月27日
    58600
  • 如何快速打开终端?

    重要安全提示:Root账户拥有Linux系统的最高权限,不当操作可能导致系统崩溃或安全风险,建议日常使用普通账户,仅在必要时临时获取root权限,操作前请确认您理解命令的含义,通过 su 命令切换(需知晓root密码)适用场景:已通过普通用户登录系统,且拥有root密码,su -# 3. 输入root密码(输入……

    2025年7月25日
    22900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信