美文网首页
Linux通过程序端口寻找程序路径

Linux通过程序端口寻找程序路径

作者: njukay | 来源:发表于2020-01-28 22:30 被阅读0次

在Linux中,如果端口随便设置就有可能出现端口被占用情况,这时候就需要找到对应的程序进行处理。

一、通过端口查看相应PID

1.使用 ss 查看端口

ss 一般用于转储套接字统计信息。它还可以显示所有类型的套接字统计信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。

$ ss -lntpd | grep :22

通过grep来获取到对应的记录, 如果是本身用户可以直接查看到pid信息,如果是其他用户的程序一般使用root权限就可以查看到所有程序的进程信息。

tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=6806,fd=3)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=6806,fd=4))

2.使用 netstat 查看

netstat 能够显示网络连接、路由表、接口统计信息、伪装连接以及多播成员。目前netstat 已经过时了,都推荐使用ss来代替。

$ netstat -tnlp | grep :22

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6806/sshd tcp6 0 0 :::22 :::* LISTEN 6806/sshd

3.使用 lsof 查看

lsof(list open files)是一个列出系统上被进程打开的文件的相关信息。
$ lsof -i tcp:22

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 6806 root 3u IPv4 147399 0t0 TCP *:ssh (LISTEN)sshd 6806 root 4u IPv6 147401 0t0 TCP *:ssh (LISTEN)

同理,要查看到所有程序需要有root权限。

4.使用 fuser 查看

fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。fuser只把PID输出到标准输出,其他的都输出到标准错误输出。
$ fuser 22/tcp

22/tcp: 6806

Linux 查看进程运行的完整路径方法

通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。

这时,我们需要通过以下的方法来查看进程的详细信息:

Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll命令即可查看。

$ ls -al /proc/PID

  • cwd符号链接的是进程运行目录;
  • exe符号连接就是执行程序的绝对路径;
  • cmdline就是程序运行时输入的命令行命令;
  • environ记录了进程运行时的环境变量;
  • fd目录下是进程打开或使用的文件的符号连接。
1209537-20181122213650674-1877469261.png

Demo

root@kali:~/.local/share# ss |grep 6350
tcp     ESTAB   0        0                              192.168.243.129:48848                                 192.168.243.131:6350                              
root@kali:~/.local/share# fuser 48848/tcp
48848/tcp:            4174
root@kali:~/.local/share# ls -al /proc/4174
total 0
dr-xr-xr-x   9 root root 0 Jan 28 12:15 .
dr-xr-xr-x 276 root root 0 Jan 28 08:19 ..
dr-xr-xr-x   2 root root 0 Jan 28 12:16 attr
-rw-r--r--   1 root root 0 Jan 28 12:16 autogroup
-r--------   1 root root 0 Jan 28 12:16 auxv
-r--r--r--   1 root root 0 Jan 28 12:16 cgroup
--w-------   1 root root 0 Jan 28 12:16 clear_refs
-r--r--r--   1 root root 0 Jan 28 12:16 cmdline
-rw-r--r--   1 root root 0 Jan 28 12:16 comm
-rw-r--r--   1 root root 0 Jan 28 12:16 coredump_filter
-r--r--r--   1 root root 0 Jan 28 12:16 cpuset
lrwxrwxrwx   1 root root 0 Jan 28 12:15 cwd -> /root/.local/share
-r--------   1 root root 0 Jan 28 12:16 environ
lrwxrwxrwx   1 root root 0 Jan 28 12:15 exe -> /root/.local/share/python-update-m
dr-x------   2 root root 0 Jan 28 12:15 fd
dr-x------   2 root root 0 Jan 28 12:16 fdinfo
-rw-r--r--   1 root root 0 Jan 28 12:16 gid_map
-r--------   1 root root 0 Jan 28 12:16 io
-r--r--r--   1 root root 0 Jan 28 12:16 limits
-rw-r--r--   1 root root 0 Jan 28 12:16 loginuid
dr-x------   2 root root 0 Jan 28 12:16 map_files
-r--r--r--   1 root root 0 Jan 28 12:15 maps
-rw-------   1 root root 0 Jan 28 12:16 mem
-r--r--r--   1 root root 0 Jan 28 12:16 mountinfo
-r--r--r--   1 root root 0 Jan 28 12:16 mounts
-r--------   1 root root 0 Jan 28 12:16 mountstats
dr-xr-xr-x   5 root root 0 Jan 28 12:16 net
dr-x--x--x   2 root root 0 Jan 28 12:16 ns
-r--r--r--   1 root root 0 Jan 28 12:16 numa_maps
-rw-r--r--   1 root root 0 Jan 28 12:16 oom_adj
-r--r--r--   1 root root 0 Jan 28 12:16 oom_score
-rw-r--r--   1 root root 0 Jan 28 12:16 oom_score_adj
-r--------   1 root root 0 Jan 28 12:16 pagemap
-r--------   1 root root 0 Jan 28 12:16 patch_state
-r--------   1 root root 0 Jan 28 12:16 personality
-rw-r--r--   1 root root 0 Jan 28 12:16 projid_map
lrwxrwxrwx   1 root root 0 Jan 28 12:15 root -> /
-rw-r--r--   1 root root 0 Jan 28 12:16 sched
-r--r--r--   1 root root 0 Jan 28 12:16 schedstat
-r--r--r--   1 root root 0 Jan 28 12:16 sessionid
-rw-r--r--   1 root root 0 Jan 28 12:16 setgroups
-r--r--r--   1 root root 0 Jan 28 12:16 smaps
-r--r--r--   1 root root 0 Jan 28 12:16 smaps_rollup
-r--------   1 root root 0 Jan 28 12:16 stack
-r--r--r--   1 root root 0 Jan 28 12:15 stat
-r--r--r--   1 root root 0 Jan 28 12:16 statm
-r--r--r--   1 root root 0 Jan 28 12:16 status
-r--------   1 root root 0 Jan 28 12:16 syscall
dr-xr-xr-x   3 root root 0 Jan 28 12:16 task
-r--r--r--   1 root root 0 Jan 28 12:16 timers
-rw-rw-rw-   1 root root 0 Jan 28 12:16 timerslack_ns
-rw-r--r--   1 root root 0 Jan 28 12:16 uid_map
-r--r--r--   1 root root 0 Jan 28 12:16 wchan
root@kali:~/.local/share# 

相关文章

  • Linux通过程序端口寻找程序路径

    在Linux中,如果端口随便设置就有可能出现端口被占用情况,这时候就需要找到对应的程序进行处理。 一、通过端口查看...

  • Linux 部署netcore

    Linux 端口设置 Linux 运行 NETCORE 程序

  • centos查看jdk安装路径

    先通过 which java 命令定位 java 程序的执行路径 再通过 ls 命令列出其目录 Linux ls命...

  • Centos查找安装程序路径

    对于linux系统的软件安装是通过命令行安装的,有时候需要查看对应软件是否已经安装,或者查看更新程序和卸载程序路径...

  • 渗透测试之端口扫描

    端口扫描:端口对应网络服务及应用端程序 服务端程序的漏洞通过端口攻入 发现开放的端口 更具体的攻击面 UDP端口扫...

  • win10 解决端口被占用

    查看端口 通过PID查找应用程序 关闭进程

  • Battery电池系统架构

    实现驱动程序 Linux的Power Supply驱动程序,实现向用户提供信息,路径/sys/class/powe...

  • 网络通信

    Linux 下命令 消息通讯包:目标IP、目标端口、源IP、源端口、消息。 运行起的程序就叫进程 知名端口:(例h...

  • Flask Web开发中自己遇到过的坑

    错误: 原因:flask app程序要在根目录路径下寻找模板文件!

  • Linux下对端口流量进行统计

    Linux下对端口流量进行统计 在不修改源代码的情况下对程序暴露端口流量进行监控统计,可以利用Linux中自带的I...

网友评论

      本文标题:Linux通过程序端口寻找程序路径

      本文链接:https://www.haomeiwen.com/subject/whnmthtx.html