通过端口号快速定位应用程序和路径

    2025-10-25 09:23:13

    不管是进程排查还是端口占用查看,都经常会要用到通过网络端口号查询对应程序的指令,每次要用到都得在网上找有点麻烦,因此决定将指令整理到这篇文章中,方便随时查阅

    Windows

    首先通过指令查看网络端口占用情况,如果做溯源排查,可以先看整个网络外连情况,排查IP和端口

    netstat -ano

    知道具体端口号可以直搜搜索端口占用情况,获取对应PID值,PID值为最后一列数据

    netstat -ano | findstr <端口号>

    通过PID值可以获取对应程序名称

    tasklist /v /fi "PID eq "

    进一步还可以通过PID获取运行程序所在路径

    wmic process where ProcessId= get ExecutablePath

    要终止对应进程程序,可以使用默认模式终止指定的进程,会发送终止信号给进程,有留给程序退出和清理的时间

    taskkill

    如果运行的是恶意程序,可以通过指令立即强制杀死PID对应进程和子进程

    taskkill /f /t /im

    Linux

    和Windows一样,Linux查看系统网络情况也是同一条指令

    netstat -antl

    查看指定端口占用情况,其中-p就是显示端口进程的意思,输出列表的最后一列会显示PID和应用程序名

    netstat -nap | grep 端口号

    通过进程号查看运行程序,会在输出列表最后显示运行程序的执行命令,如python3 server.py

    ps -aux | grep

    通过上面这条指令,我们只能知道是是哪个程序在运行,还不清楚这个程序具体在什么路径下。想要获取运行程序路径可以通过/proc目录来实现。

    在Linux上,每个运行的进程在/proc目录下都有一个以其PID命名的目录,其中包含了与该进程相关的信息,我们可以通过/proc来获取进程运行信息。

    如下获取进程运行程序路径,像上面的示例指令就是获取python3的绝对路径

    ls -l /proc//exe

    下面指令可以获取具体运行程序所在路径,像上面的示例指令就是获取server.py脚本所在路径

    ls -l /proc//cwd

    还可以获取运行程序的执行指令,上面通过ps -aux已经可以获取到了,这里算一个补充方法

    cat /proc//cmdline | tr '\0' ' ' && echo

    最后,如果想要杀死运行程序,可以通过下面的指令杀掉进程,这个命令发送SIGTERM信号给指定的进程。SIGTERM是默认的终止信号,会请求进程正常退出

    kill

    如果运行的是顽固的恶意进程,可以使用下面的指令强制杀死进程,这个命令发送SIGKILL信号给指定的进程。SIGKILL是一个无法被忽略或捕获的终止信号,它可以立即强制终结任何进程,不给进程执行清理操作的机会

    kill -9