开发笔记
部署相关
FRP内网穿透
Git相关
Gitlab
Linux网络代理
Nginx
RDP
SFTP
其他
linux挂载硬盘
Transformer水处理优势
本文档使用 MrDoc 发布
-
+
首页
部署相关
在 Linux 服务器上,要查找 **17305 端口**运行的服务及其启动文件位置,可以按照以下步骤操作: --- ### **1. 确认端口是否被占用及进程信息** 使用 `netstat`、`ss` 或 `lsof` 查看端口对应的进程: #### **方法 1:使用** `netstat`**(旧版系统)** ``` sudo netstat -tulnp | grep 17305 ``` - **关键字段**: - `Proto`:协议(TCP/UDP)。 - `PID/Program name`:进程 ID 和名称。 #### **方法 2:使用** `ss`**(新版系统推荐)** ``` sudo ss -tulnp | grep 17305 ``` - 输出类似: ``` tcp LISTEN 0 128 *:17305 *:* users:(("java",pid=1234,fd=17)) ``` #### **方法 3:使用** `lsof` ``` sudo lsof -i :17305 ``` - 输出会显示进程的 **PID** 和 **命令名称**(如 `java`、`nginx`)。 --- ### **2. 根据 PID 定位进程详细信息** 通过上一步获取的 **PID**(例如 `1234`),进一步检查进程: #### **查看进程的启动命令** ``` ps -fp <PID> # 示例 ps -fp 1234 ``` - 输出中的 `CMD` 或 `COMMAND` 列会显示完整的启动命令(如路径或参数)。 #### **查看进程的二进制文件路径** ``` ls -l /proc/<PID>/exe # 示例 ls -l /proc/1234/exe ``` - 这会显示程序的实际可执行文件路径(符号链接会被解析)。 --- ### **3. 定位服务的配置文件或启动脚本** #### **如果是系统服务(systemd)** ``` systemctl status <PID> # 或通过进程名反向查找服务 systemctl list-units --type=service | grep <进程名> ``` - 如果服务是通过 `systemd` 管理的,会显示服务单元文件(如 `/usr/lib/systemd/system/xxx.service`)。 #### **如果是手动启动的进程** - 检查进程的启动命令(通过 `ps -fp <PID>`): - 如果命令包含绝对路径(如 `/opt/app/bin/start.sh`),直接定位到该文件。 - 如果是相对路径,进入进程的 `cwd`(当前工作目录): ``` ls -l /proc/<PID>/cwd ``` --- ### **4. 检查服务的日志** 如果服务有日志输出,可以通过日志进一步确认: ``` journalctl -u <服务名> # systemd 服务 tail -f /var/log/<服务日志> # 自定义日志路径 ``` --- ### **5. 特殊情况处理** #### **如果是 Docker 容器** ``` docker ps | grep 17305 ``` - 如果端口由 Docker 容器映射,需进入容器内部检查。 #### **如果是 Kubernetes Pod** ``` kubectl get pods --all-namespaces -o wide | grep 17305 ``` --- ### **示例流程** 假设 `17305` 端口被一个 Java 进程占用: 1. 查找进程: ``` sudo ss -tulnp | grep 17305 ``` - 输出:`tcp LISTEN 0 100 *:17305 *:* users:(("java",pid=1234))` 2. 查看进程详情: ``` ps -fp 1234 ``` - 输出:`/usr/bin/java -jar /opt/myapp/server.jar` 3. 定位文件: ``` ls -l /proc/1234/exe # 确认 Java 路径 ls -l /opt/myapp/ # 检查应用目录 ``` --- ### **总结** 1. **确认端口占用** → `ss -tulnp | grep 17305` 2. **获取进程信息** → `ps -fp <PID>` 或 `/proc/<PID>/exe` 3. **定位启动文件** → 检查命令路径、`systemd` 服务或日志。 4. **如果是容器/K8s** → 使用 `docker` 或 `kubectl` 排查。 通过以上步骤,你可以精准定位到 **17305 端口**对应的服务及其启动文件位置。
鸿志凌云飞
2025年5月13日 23:13
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码