如何停掉监听 linux

在Linux系统中,监听通常指某个进程或服务在网络端口上等待连接请求的状态,常见于Web服务器(如Nginx、Apache)、数据库服务(如MySQL、Redis)或自定义应用程序,停止监听可能是出于安全加固、服务迁移、资源释放或故障排查等需求,以下是详细的方法和步骤,涵盖不同场景下的监听停止操作。

如何停掉监听 linux

查找监听信息:定位目标是前提

停止监听前,需先明确当前系统中有哪些进程或服务正在监听,以及监听的端口和协议,常用的工具有netstatss(推荐,因ssnetstat的升级版,性能更优)。

使用ss命令查看监听

ss命令可快速显示TCP、UDP等协议的 socket 统计信息,常用选项如下:

  • -t:显示TCP端口
  • -u:显示UDP端口
  • -l:仅显示监听状态的端口
  • -n:以数字形式显示地址和端口(避免域名解析延迟)
  • -p:显示使用该端口的进程ID(PID)和名称

示例:查看所有监听的TCP和UDP端口

ss -tulnp

输出示例中,Local Address:Port列显示监听地址和端口(如0.0.0:80表示监听所有IPv4地址的80端口),PID/Program name列对应进程信息(如nginx: master process)。

使用netstat命令(传统工具)

若系统未安装ss,可用netstat,选项与ss类似:

netstat -tulnp

筛选特定端口的监听

若需查看特定端口(如8080端口)的监听情况:

ss -tulnp | grep ':8080'

命令对比表格

命令 常用选项 功能描述
ss -tulnp 显示TCP/UDP监听端口,进程ID及名称
netstat -tulnp 传统工具,功能同ss,但性能略低

停止系统服务监听:适用于常规服务

大多数Linux服务(如Nginx、Apache、SSH、MySQL)通过系统服务管理器(如systemdSysV)启动,停止监听需通过服务管理命令。

如何停掉监听 linux

使用systemctl管理(主流系统)

现代Linux发行版(如Ubuntu 16+、CentOS 7+)使用systemd,操作如下:

  • 停止服务(立即终止进程,释放端口):
    systemctl stop nginx  # 以Nginx为例
  • 禁用自启动(避免服务开机自动运行,长期生效):
    systemctl disable nginx
  • 查看服务状态(确认是否已停止):
    systemctl status nginx

    若输出中显示Active: inactive (dead),则表示服务已停止。

使用service命令(传统SysVinit)

旧版系统(如CentOS 6、Ubuntu 14)或兼容模式下,可用service命令:

service nginx stop

针对特定服务的注意事项

  • Nginx/Apache:停止服务前建议检查配置文件语法(nginx -t),避免因配置错误导致后续启动失败。
  • MySQL/PostgreSQL:若数据库正在处理事务,直接停止可能导致数据损坏,建议先执行mysqladmin shutdown(MySQL)或pg_ctl stop(PostgreSQL)优雅关闭。

终止特定进程监听:适用于非服务进程

若监听来自自定义脚本、Java/Python程序等非系统服务进程,需通过进程ID(PID)终止进程。

查找目标进程PID

通过ps命令结合grep筛选进程:

ps aux | grep "python"  # 查找Python进程

注意:grep自身也会出现在结果中,可通过grep -v grep过滤:

ps aux | grep "python" | grep -v grep

终止进程

根据进程重要性选择终止方式:

如何停掉监听 linux

  • 优雅终止(推荐):发送SIGTERM信号(15),允许进程清理资源后退出:
    kill PID  # PID为上一步查到的进程ID
  • 强制终止:若进程无响应,发送SIGKILL信号(9),立即终止进程(可能导致数据丢失):
    kill -9 PID

批量终止同名进程

若多个同名进程需终止,可用pkillkillall

pkill -f "python app.py"  # 根据进程名或命令终止
killall nginx  # 终止所有名为nginx的进程

通过防火墙禁止监听:临时阻断外部访问

若需快速禁止外部访问监听端口(但不停止进程),可通过防火墙规则实现。

使用iptables(传统防火墙)

  • 添加规则(禁止TCP 80端口入站):
    iptables -A INPUT -p tcp --dport 80 -j DROP
  • 保存规则(避免重启失效):
    service iptables save  # CentOS/RHEL
    iptables-save > /etc/iptables/rules.v4  # Debian/Ubuntu

使用firewalld(CentOS 7+、RHEL 7+)

  • 添加规则(永久禁止80端口):
    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --reload  # 重新加载防火墙
  • 移除规则(若需恢复访问):
    firewall-cmd --permanent --remove-port=80/tcp
    firewall-cmd --reload

验证监听是否停止

执行停止操作后,需再次检查端口监听状态:

ss -tulnp | grep ":80"  # 检查80端口是否仍监听

若无输出,或State列不再是LISTEN,则表示监听已停止。

注意事项

  1. 权限问题:停止系统服务或终止进程需root权限(sudo),普通用户会提示“Permission denied”。
  2. 服务依赖:若服务被其他服务依赖(如PHP-FPM依赖Nginx反向代理),直接停止可能导致依赖服务异常。
  3. 配置文件修改:停止服务后,若需彻底移除监听,建议修改服务配置文件(如Nginx的nginx.conf)并注释或删除监听指令,再重启服务。
  4. 日志排查:若停止失败,可通过系统日志(journalctl -u nginx)或应用日志(如Nginx的error.log)排查原因。

相关问答FAQs

Q1:为什么用systemctl stop停止服务后,端口依然在监听?
A:可能原因包括:(1)服务未完全停止(如systemctl status仍显示active),可尝试systemctl kill强制终止;(2)存在多个服务实例(如Nginx的master进程未退出,需手动终止master PID);(3)服务使用了“端口复用”(如SO_REUSEADDR选项),需先关闭该选项再重启,建议检查进程列表(ps aux | grep 服务名),确认是否有残留进程。

Q2:如何区分监听端口是来自系统服务还是独立进程?
A:通过ss -tulnp输出中的PID/Program name列判断:若进程名为系统服务(如nginxmysqld),则属于系统服务;若为脚本名(如pythonjava)或自定义路径(如/usr/local/bin/myapp),则为独立进程,可通过systemctl status查看服务状态,或cat /proc/PID/status查看进程的启动命令和父进程信息进一步确认。

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

(0)
酷番叔酷番叔
上一篇 2025年10月4日 12:42
下一篇 2025年10月4日 12:58

相关推荐

  • Linux C集群如何扛住千万并发?

    集群化的核心目标高可用性(HA)故障自动转移:节点宕机时流量自动切换至健康节点,数据冗余:通过副本机制(如 Raft 协议)避免单点数据丢失,负载均衡 动态分配请求:避免单节点过载,提升系统吞吐量,水平扩展 按需增删节点:应对业务量波动,集群架构设计模式模式适用场景典型案例主从模式写少读多场景Redis Sen……

    2025年6月25日
    13700
  • Linux系统中tar命令如何使用?文件打包操作详细步骤与方法指南?

    在Linux系统中,tar是一个常用的归档工具,用于将多个文件或目录合并成一个单一的文件(称为tar包),同时可以结合压缩工具(如gzip、bzip2、xz等)减小文件体积,方便传输、备份或存储,掌握tar命令的使用是Linux日常运维和开发的基础技能,下面详细介绍tar命令的语法、常用选项及实际应用场景,ta……

    2025年10月5日
    6800
  • 环境搭建需要安装哪些必备工具?

    为后续操作搭建基础环境,需安装必要的开发工具、运行库及依赖项,并进行基础配置,确保环境可用。

    2025年7月29日
    11200
  • 如何通过命令行修改Linux系统日期?

    在Linux系统中,日期和时间的修改是常见操作,无论是为了系统日志记录、定时任务执行,还是时区调整,都需要掌握正确的方法,Linux系统的时间管理涉及两个核心时钟:系统时钟(由Linux内核维护,从开机到关机期间有效)和硬件时钟(由主板CMOS电池供电,关机后仍运行),修改时间时需注意两者的同步,否则重启后时间……

    2025年8月30日
    9400
  • Linux权限分配不当会引发哪些安全风险?

    Linux权限基础权限组成用户(User):文件/目录的所有者(创建者)组(Group):共享权限的用户集合其他(Others):除所有者和组外的用户权限类型:r(读):查看文件内容/目录列表w(写):修改文件/增删目录内容x(执行):运行程序/进入目录查看权限命令 ls -l 输出示例:-rw-r–r……

    2025年7月19日
    13800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信