獲得網絡信息
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 -i@172.16.12.5
root@hello-test-master:~# lsof -i@123.158.57.152
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 -i@123.158.57.152: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:~#
過濾監(jiān)聽端口
找出那些等待連接的端口
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
排除例外規(guī)則
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
大法好,退 netstat
和 ps
保平安煤搜!