• linux 服务器进程、端口查找,nginx 配置日志查找,lsof 命令详解


    一 、根据端口号 查看文件的部署位置

    1.1 使用查看端口号对应的进程信息

    • 方式一 :
      使用netstat命令
    netstat -tuln | grep 端口号
    
    • 1
    • -t:显示TCP连接

    • -u:显示UDP连接

    • -l:仅显示监听状态的连接

    • -n:以数字形式显示端口号,而不是以服务名称显示

    通过管道符号|将netstat的输出结果传递给grep命令,用于过滤出包含指定端口号的行。

    执行命令后,终端将显示与该端口号相关的进程信息,包括进程ID(PID)和进程名称。

    • 方法二:使用lsof命令
    lsof -i :端口号
    
    • 1
    • -i:显示与网络相关的文件

    • :端口号:过滤出指定端口号的结果

    执行命令后,终端将显示与该端口号相关的进程信息,包括进程ID(PID)和进程名称。

    2. 通过进程pid 查询对应的部署文件的进程文件位置

    • 方式一
      使用/proc/pid
      查看进程的文件的位置
    ll /proc/PID
    
    • 1

    在这里插入图片描述

    cwd符号链接的是进程运行目录;

    exe符号连接就是执行程序的绝对路径;

    cmdline就是程序运行时输入的命令行命令;

    environ记录了进程运行时的环境变量;

    fd目录下是进程打开或使用的文件的符号连接。

    • 方式二
      通过
    ps -ef |grep 服务名
    
    • 1

    显示服务的启动参数 服务名 ,进程pid 进程位置

    二 、根据进程pid 查询占用的服务 端口

    1、netstat命令

    使用netstat命令可以查看系统的网络连接和监听情况。以下是使用netstat命令查看程序占用端口号的示例:

    netstat -tuln | grep<进程名或PID>

    该命令将列出所有正在监听和建立的TCP和UDP连接,并筛选出与指定进程相关的端口号信息。

    2、lsof命令

    lsof命令可以列出系统当前打开的文件和进程信息。以下是使用lsof命令查看程序占用端口号的示例:

    lsof -i :<端口号>

    lsof -i TCP:<端口号>

    lsof -i UDP:<端口号>

    该命令将列出所有占用指定端口号的进程信息。

    3、ss命令

    ss是netstat的替代工具,提供更快速和高效的网络连接信息查询。以下是使用ss命令查看程序占用端口号的示例:

    ss -tuln | grep <进程名或PID>

    该命令将列出所有正在监听和建立的TCP和UDP连接,并筛选出与指定进程相关的端口号信息。

    4、/proc文件系统

    Linux系统中,每个运行的进程都有一个对应的目录在/proc目录下,可以通过访问这些目录中的文件获取相关信息。以下是使用/proc文件系统查看程序占用端口号的示例:

    ls -l /proc//fd | grep socket

    其中,为进程的PID,该命令将列出指定进程的打开的套接字文件链接,从中可以获取端口号。

    4. 方式 三

    https://blog.csdn.net/tjcwt2011/article/details/129390090
    使用以下命令

    ss:可以用于转储套接字统计信息。

    netstat:可以显示打开的套接字列表。

    lsof:可以列出打开的文件。

    fuser:可以列出那些打开了文件的进程的进程 ID。

    nmap:是网络检测工具和端口扫描程序。

    systemctl:是 systemd 系统的控制管理器和服务管理器。

    以下我们将找出 sshd 守护进程所使用的端口号。

    三 、nginx 通过端口查看配置文件和日志

    查看配置

    1. 查看nginx的进程id

    #查询nginx是9000端口的PID
    netstat -lntup | grep 9000
    
    • 1
    • 2

    在这里插入图片描述

    2. 查询对应端口的nginx路径

    ll /proc/pid/

    ll /proc/15029/
    
    • 1

    在这里插入图片描述

    在nginx 执行目录下查看配置文件的目录

    使用-t参数获取改进程对应的配置文件路径

    /usr/local/nginx/sbin/nginx -t
    
    • 1

    在这里插入图片描述

    nginx 服务命令

    #启动
    sbin/nginx -s start
    #停止
    sbin/nginx -s stop
    #重启
    sbin/nginx -s reload
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    nginx 的日志

    在默认情况下,Nginx 服务器会将访问日志记录到 access.log 中,错误日志记录到 error.log 中。

    • access.log 主要用于监控 Web 请求,
    • error.log 则用于诊断 Web 服务器的错误和问题

    Nginx 日志文件的配置可以在 Nginx 配置文件中进行。以下是几个常用的配置选项:

    access_log:指定访问日志文件的路径和名称,可以包含变量和时间格式。例如:

    access_log /var/log/nginx/access.log main_log;
    
    • 1

    上述配置将访问日志文件保存在 /var/log/nginx/access.log 中,使用 main_log 作为时间格式。

    1. error_log:指定错误日志文件的路径和名称。例如:
    error_log /var/log/nginx/error.log info;
    
    • 1

    四、lsof 命令详解

    lsof 命令

    lsof -i:8080:查看8080端口占用
    lsof abc.txt:显示开启文件abc.txt的进程
    lsof -c abc:显示abc进程现在打开的文件
    lsof -c -p 1234:列出进程号为1234的进程所打开的文件
    lsof -g gid:显示归属gid的进程情况
    lsof +d /usr/local/:显示目录下被进程开启的文件
    lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
    lsof -d 4:显示使用fd为4的进程
    lsof -i -U:显示所有打开的端口和UNIX domain文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    netstat 命令

    -a 显示所有连接
    -t 显示tcp连接
    -u 显示udp连接
    -l 显示监听端口的链接
    -p 显示监听端口对应的程序
    -n 禁止将端口号转换成别名显示

    netstat 过滤监听状态的UDP端口

    netstat -lup|grep 323
    
    • 1

    在这里插入图片描述
    说明:

    323:代表要过滤的端口号

    lup:三个参数表示显示UDP端口监听状态的程序名称

    grep:根据端口号到过滤

    netstat 过滤监听状态的TCP端口

    netstat -ltnp|grep 22
    
    • 1

    在这里插入图片描述
    说明:

    22:代表要过滤的端口号

    ltnp:四个参数表示显示TCP端口监听状态的程序名称

    grep:根据端口号到过滤

    netstat 过滤监听状态的TCP端口别名

    netstat -ltp|grep ssh
    
    • 1

    在这里插入图片描述

    说明:

    22:代表要过滤的端口号

    ltp:三个参数表示显示TCP端口别名监听状态的程序名称

    grep:根据端口别名到过滤

    netstat 命令返回值说明

    netstat -anp

    在这里插入图片描述
    说明:

    Proto:代表协议(tcp、tcp6、udp、udp6)

    Recv-Q:数据已经在本地接收缓冲,但是还没有recv()

    Send-Q:对方没有收到的数据或者说没有Ack的,还是本地缓冲区

    Local Address: 本地IP:本地端口

    Foreign Address: 远程IP:远程端口

    State:链接状态(监听状态、建立连接状态等)

    PID:进程PID号

    Program name:程序名字

  • 相关阅读:
    HR人才测评,提高员工和岗位的适配度
    学习Java8 Stream流,让我们更加便捷的操纵集合
    使用docker搭建DVWA
    【六:pytest框架介绍】
    BeanPostProcessor(Spring后置处理器)如何使用呢?
    VueX插件、持久化存储、分包module模块vuex
    Springboot + screw 数据库快速开发文档
    【洛谷】P4331 数字序列
    一云多芯 | 云轴科技ZStack助力张家口建设信创资源池
    指针笔试题
  • 原文地址:https://blog.csdn.net/tian830937/article/details/134460039