LINUX中查看端口与相应进程

来源:互联网 发布:手把手教你单片机 pdf 编辑:程序博客网 时间:2024/04/19 09:28

本文介绍了在 Linux 中查看端口占用情况的一些方法。

全程需要用到下列程序:

  1. netstat:一个命令行工具,用来显示 网络连接,路由表,和一些 网络接口数据
  2. fuser:一个命令行工具,用来表示经常使用文件或者套接字
  3. lsof:一个命令行工具,用来列出当前系统打开文件的工具
    Pasted Graphic
  4. /proc/$pid:在 Linux的 /proc 目录下包含了一个名为 PID (PID为所需进程对应的值)的文件,其包含每个对应PID的进程的 信息,通常,包含进程的名字和打开的端口等。。

# 注:可能需要使用 root 权限使用上述命令

netstat命令:

使用命令:

netstat -tulpn


2

# 注,如果 PID/Program name 不显示的话,可能是权限不够,请尝试 sudo

使用 grep来过滤结果

# netstat -tulpn | grep :22

3
后面的参数是指定需要显示的一些内容,例如图中列出了IP地址,端口号,相应进程PID等内容。

如果知道端口号,想知道对应的进程的一些信息,就可以使用下面的fuser命令

fuser 命令

查看 哪个 进程PID 占用了 53 端口,使用命令

# fuser 53/tcp

4
# 注,同上,可能有些 进程权限不够看不到,尝试 sudo。

查看该 PID 对应的是哪个进程 ,使用命令:

ls -l /proc/3353/exe

5

和最上面的介绍一样,每个进程 OS 都会在 /proc 路径下给建立一个对应PID的文件夹,里面存放一些进程信息,exe中即保存了名字。。
# 注,还是权限问题,然后对应 那个PID 是dnsmasq 进程,man dnsmasq 得知,该进程为一个轻量级 DHCP 和 DNS 缓存服务器

查看 一个进程 当前的工作路径

使用命令:

# ls -l /proc/3353/cwd 
6
或者使用 pwdx 命令:
pwdx 3353
7
查看一个 进程 的 owner
# ps aux | grep 3353

lsof 命令

查看 指定端口 的进程:

# lsof -i tcp:22
8


0 0