losf 学习

获得网络信息

lsof -i
root@hello-test-master:~# lsof -i
COMMAND     PID            USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd       1002            root    3r  IPv4 4997647      0t0  TCP 120.199.120.153:ssh->123.158.57.152:15350 (ESTABLISHED)
apache2    1216        www-data    4u  IPv6    8861      0t0  TCP *:http (LISTEN)
mysqld     1366           mysql   10u  IPv4  101938      0t0  TCP *:mysql (LISTEN)

只显示ipv6

 lsof -i 6

只显示tcp

 lsof -iTCP

只显示某一端口号

lsof -i :22
root@hello-test-master:~# lsof -i :22
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     1002 root    3r  IPv4 4997647      0t0  TCP 120.199.120.153:ssh->123.158.57.152:15350 (ESTABLISHED)
sshd    18614 root    3u  IPv4 4076899      0t0  TCP *:ssh (LISTEN)
sshd    18614 root    4u  IPv6 4076901      0t0  TCP *:ssh (LISTEN)
sshd    20964 root    3r  IPv4 4429946      0t0  TCP 120.199.120.153:ssh->123.58.191.68:20517 (ESTABLISHED)

显示与某个host的连接

lsof [email protected]
root@hello-test-master:~# lsof [email protected]
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd    1002 root    3r  IPv4 4997647      0t0  TCP 120.199.120.153:ssh->123.158.57.152:15350 (ESTABLISHED)
root@hello-test-master:~# 

显示与某个host,port的连接

root@hello-test-master:~# lsof [email protected]:15350
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd    1002 root    3r  IPv4 4997647      0t0  TCP 120.199.120.153:ssh->123.158.57.152:15350 (ESTABLISHED)
root@hello-test-master:~# 

过滤监听端口

找出那些等待连接的端口

lsof -i -sTCP:LISTEN
root@hello-test-master:~# lsof -i -sTCP:LISTEN
COMMAND     PID            USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
apache2    1216        www-data    4u  IPv6    8861      0t0  TCP *:http (LISTEN)
mysqld     1366           mysql   10u  IPv4  101938      0t0  TCP *:mysql (LISTEN)
rpcbind    1686            root    8u  IPv4    5073      0t0  TCP *:sunrpc (LISTEN)
rpcbind    1686            root   11u  IPv6    5080      0t0  TCP *:sunrpc (LISTEN)
rpc.statd  1717           statd    8u  IPv4    6145      0t0  TCP *:58319 (LISTEN)
rpc.statd  1717           statd   10u  IPv6    6153      0t0  TCP *:36763 (LISTEN)
netserver  1799            root    4u  IPv4    6221      0t0  TCP *:12865 (LISTEN)

当然也可以使用 grep LISTEN的方法

lsof -i | grep -i LISTEN

找到已经建立的连接

关键词 ESTABLISHED

lsof -i -sTCP:ESTABLISHED

或者

lsof -i | grep -i ESTABLISHED

用户信息

获得某一个用户的信息,包括他们的网络活动,打开文件信息
例如:

lsof -u root

排除例外规则

lsof -u ^root

结束一个用户的所有活动

kill -9 `lsof -t -u daniel`

命令与进程

查看某一命令在使用哪些文件,连接

lsof -c python

查看某一进程ID

 lsof -p 10075

某一个命令的pid是多少

lsof -t -c python
lsof -t -c apache2

文件和目录

查看与某一目录相关的所有活动

lsof /var/log/messages/
root@hello-test-master:~# lsof /var/log/messages/
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
rsyslogd  1991 root    7w   REG  254,1    26168 273614 /var/log/messages
nhids-log 2696 root    5r   REG  254,1    26168 273614 /var/log/messages
root@hello-test-master:~# 

与某一文件相关的所有活动

 lsof /home/daniel/firewall_whitelist.txt

高级用法

tcpdump相似,也可以加入过滤器

过滤用户与ip

lsof -u daniel -i @1.1.1.1

-t 和 -c 来HUP进程

kill -HUP `lsof -t -c sshd`

就是把lsof列出的全杀掉

列出 port range里面,打开的连接

lsof -i @fw.google.com:2150=2180

结论

lsof大法好,退 netstatps 保平安!

你可能感兴趣的:(losf 学习)