通过端口找到进程和项目

你想找到运行在 http://localhost:8091 的项目,也就是 Nginx 反向代理指向的后端服务。以下是几种常用的方法来定位这个项目:


🔍 方法一:使用 netstatss 查看端口占用

在服务器上执行以下命令,查看是哪个进程占用了 8091 端口:

sudo netstat -tulnp | grep :8091

或者使用较新的 ss 命令:

sudo ss -tulnp | grep :8091

输出示例:

tcp  0  0 127.0.0.1:8091  0.0.0.0:*  LISTEN  12345/node

重点关注最后一列,比如:

  • 12345/node 表示是一个 Node.js 进程。
  • 12345/python3 表示是 Python 服务。
  • 12345/java 可能是 Java/Spring Boot 应用。

记下进程 PID(如 12345),然后查看该进程的更多信息:

ps aux | grep 12345

输出会显示启动命令和工作目录,例如:

ccs   12345  0.0  1.2 1234567 89012 ?  Sl   10:00  0:10 node /home/ccs/my-uniapp-server/bin/www

➡️ 这里的 /home/ccs/my-uniapp-server/ 就是项目目录!


🔍 方法二:使用 lsof 命令(如果有)

sudo lsof -i :8091

输出会直接显示进程名、PID 和用户,便于追踪。


🔍 方法三:检查常见的服务启动方式

如果这是一个长期运行的服务,可能是通过以下方式启动的:

1. PM2(Node.js 常用)

pm2 list
pm2 describe <app-name>

可以查看 Node.js 项目的路径和状态。

2. systemd 服务

systemctl list-units --type=service | grep 8091
# 或者搜索可能相关的服务名
systemctl list-units --type=service | grep node

查看某个服务的详细信息:

systemctl status <service-name>

通常会显示执行的命令和工作目录。

3. Docker 容器

如果项目是用 Docker 运行的,检查是否有容器映射了 8091 端口:

docker ps

看是否有类似:

CONTAINER ID  IMAGE       PORTS                   NAMES
abc123456789  my-node-app  0.0.0.0:8091->8091/tcp  uniapp-server

然后进入容器或查看 docker inspect abc123456789 找到挂载路径。


🔍 方法四:搜索可能的项目目录

如果你怀疑项目在某个用户目录下(比如 /home/ccs/),可以搜索包含 serverapp.jspackage.json 等文件的目录:

find /home/ccs -name "package.json" -exec grep -l "8091" {} \;

或者查找监听 8091 的配置文件:

grep -r "8091" /home/ccs/

🔍 方法五:查看 Nginx 日志(辅助判断)

虽然不能直接找到项目,但可以确认请求是否到达:

sudo tail -f /var/log/nginx/access.log
# 刷新网页,看是否有访问记录

✅ 总结步骤建议:

  1. ss -tulnp | grep :8091 → 找到 PID
  2. ps aux | grep <PID> → 看命令和路径
  3. 如果是 Node.js,用 pm2 list 查看
  4. 如果是 Docker,用 docker ps 查看
  5. 如果是 systemd,用 systemctl status <服务名>

🔍 一旦你找到项目路径,就可以查看里面的 package.jsonapp.jsserver.js 等文件,确认这就是你要找的项目。

如果你执行这些命令后得到输出,可以贴出来,我可以帮你进一步分析。

posted @ 2025-09-07 13:33  仁义礼智信的  阅读(33)  评论(0)    收藏  举报