lsof命令、netstat

下面的一些其它东西需要牢记:

默认 : 没有选项,lsof列出活跃进程的所有打开文件
-a 表示两个参数都必须满足时才显示结果
-c 查看指定的命令
-g gid 显示归属gid的进程情况
-i 显示所有连接 -t 仅获取进程ID -u 显示指定用户打开的文件 -p 查看指定进程ID已打开的文件
+d /DIR/ 显示目录下被进程打开的文件 +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长 -d FD 显示指定文件描述符的进程
-U 获取UNIX套接口地址
-F 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)
-N 列出所有UNIX域Socket文件
-r,lsof会永远不断的执行,直到收到中断信号 查看目前ftp连接的情况,每隔3秒不断执行:lsof -i tcp@192.168.106.128:ftp -r 3
+r,lsof会一直执行,直到没有档案被显示

 

usage: [-?abhlnNoOPRstUvV] [+|-c c] [+|-d s] [+D D] [+|-f[cgG]]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+|-M] [-o [o]]
 [-p s] [+|-r [t]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]

使用-i显示所有连接

# lsof -i
COMMAND   PID        USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
smbd      627        root   32u  IPv6     10612      0t0  TCP *:microsoft-ds (LISTEN)
smbd      627        root   33u  IPv6     10613      0t0  TCP *:netbios-ssn (LISTEN)

使用-i 6仅获取IPv6流量

# lsof -i 6
COMMAND  PID        USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
smbd     627        root   32u  IPv6  10612      0t0  TCP *:microsoft-ds (LISTEN)
smbd     627        root   33u  IPv6  10613      0t0  TCP *:netbios-ssn (LISTEN)

仅显示TCP连接(同理可获得UDP连接)
你也可以通过在-i后提供对应的协议来仅仅显示TCP或者UDP连接信息。

# lsof -iTCP
COMMAND   PID        USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
smbd      627        root   32u  IPv6     10612      0t0  TCP *:microsoft-ds (LISTEN)
smbd      627        root   33u  IPv6     10613      0t0  TCP *:netbios-ssn (LISTEN)

使用-i:port来显示与指定端口相关的网络信息

COMMAND  PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
sshd    1147 root    3u  IPv4      1872      0t0  TCP *:ssh (LISTEN)
sshd    1147 root    4u  IPv6      1874      0t0  TCP *:ssh (LISTEN)

使用@host来显示指定到指定主机的连接

使用@host:port显示基于主机与端口的连接

lsof -i@10.102.162.29:22
COMMAND  PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
sshd    6536 root    3u  IPv4 105348538      0t0  TCP 10.102.162.29:ssh->122.71.226.220:62360 (ESTABLISHED)
sshd    6831 root    3u  IPv4 105352787      0t0  TCP 10.102.162.29:ssh->112.27.195.20:61540 (ESTABLISHED)

找出监听端口

  找出正等候连接的端口

  # lsof -i -sTCP:LISTEN

  # lsof -i | grep -i LISTEN

找出监听端口  

#        lsof -i -sTCP:ESTABLISHED

#        lsof -i | grep -i ESTABLISHED

 

用户信息

你也可以获取各种用户的信息,以及它们在系统上正干着的事情,包括它们的网络活动、对文件的操作等。

使用-u显示指定用户打开了什么

# lsof -u root 
Dock 155 daniel  txt REG   14,2   2798436   823208 /usr/lib/libicucore.A.dylib
Dock 155 daniel  txt REG   14,2   1580212   823126 /usr/lib/libobjc.A.dylib

使用-u user来显示除指定用户以外的其它所有用户所做的事情

  # lsof -u ^root

杀死指定用户所做的一切事情  

  # kill -9 `lsof-t -u dabing`

 

命令和进程

使用-c查看指定的命令正在使用的文件和网络连接

lsof -c python

COMMAND   PID USER   FD   TYPE             DEVICE  SIZE/OFF      NODE NAME
python   2137 root  cwd    DIR              253,1      4096   1575955 /root/apwd/Synchronous
python   2137 root  rtd    DIR              253,1      4096         2 /

使用-p查看指定进程ID已打开的内容

lsof -p 2137

-t选项只返回PID

lsof -t -c python

 

文件和目录

通过查看指定文件或目录,你可以看到系统上所有正与其交互的资源——包括用户、进程等。

显示与指定目录交互的所有一切

lsof /home/synchronous_model/server_new/

显示与指定文件交互的所有一切

lsof /home/synchronous_model/server_new/server_new.py

递归查找某个目录中所有打开的文件

# lsof +D /usr/lib

加上+D参数,lsof会对指定目录进行递归查找,注意这个参数要比grep版本慢:

# lsof | grep ‘/usr/lib’

之所以慢是因为+D首先查找所有的文件,然后一次性输出。

 

 

netstat

1.功能与说明

netstat 用于显示linux中各种网络相关信息。如网络链接 路由表  接口状态链接 多播成员等等。

2.参数含义介绍

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

3.常用实例

3.1  列出所有端口 
netstat -a
3.2  列出所有tcp端口
netstat -at
3.3 列出所有udp端口 
netstat -au
3.4 只显示监听端口 
netstat -l
3.5 只显示监听的tcp端口 
netstat -lt
3.6 只显示所有监听udp端口 
netstat -lu
3.7  只列出所有监听unix端口 
netstat -lx
3.8  显示所有端口的统计信息 
netstat -s
3.9 显示所有tcp(netstat -st)或udp(netstat -su)的统计信息
3.10 显示pid/进程名称 netstat -p   
-p可以与其他参数一起使用 比如显示tcp的进程id信息,netstat -pt
3.11  在 netstat 输出中不显示主机,端口和用户名 (host, port or user)当你不想让主机,端口和用户名显示,使用 netstat -n。
将会使用数字代替那些名称。同样可以加速输出,因为不用进行比对查询。netstat -ntpl 显示tcp的监听端口,不显示主机端口用户名 用数字代替 netstat -ptnl 3.12 一秒钟输出一次tcp监听端口信息 netstat -ntplc 3.13 显示路由信息 netstat -r 3.14 显示网络接口列表 netstat -i

 

 

 

 

 

 

 

posted @ 2017-11-19 22:18  shy车队破风手  阅读(881)  评论(0编辑  收藏  举报