成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 命令神器:lsof

系統(tǒng) Linux
本入門教程只是管窺了lsof功能的一斑,要查看完整參考,運(yùn)行man lsof命令或查看在線版本。希望本文對(duì)你有所助益,也隨時(shí)歡迎你的評(píng)論和指正。

[[441840]]

 lsof是系統(tǒng)管理/安全的尤伯工具。我大多數(shù)時(shí)候用它來從系統(tǒng)獲得與網(wǎng)絡(luò)連接相關(guān)的信息,但那只是這個(gè)強(qiáng)大而又鮮為人知的應(yīng)用的第一步。將這個(gè)工具稱之為lsof真實(shí)名副其實(shí),因?yàn)樗侵?ldquo;列出打開文件(lists openfiles)”。而有一點(diǎn)要切記,在Unix中一切(包括網(wǎng)絡(luò)套接口)都是文件。

有趣的是,lsof也是有著最多開關(guān)的Linux/Unix命令之一。它有那么多的開關(guān),它有許多選項(xiàng)支持使用-和+前綴。 

  1. 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] 

正如你所見,lsof有著實(shí)在是令人驚訝的選項(xiàng)數(shù)量。你可以使用它來獲得你系統(tǒng)上設(shè)備的信息,你能通過它了解到指定的用戶在指定的地點(diǎn)正在碰什么東西,或者甚至是一個(gè)進(jìn)程正在使用什么文件或網(wǎng)絡(luò)連接。

對(duì)于我,lsof替代了netstat和ps的全部工作。它可以帶來那些工具所能帶來的一切,而且要比那些工具多得多。那么,讓我們來看看它的一些基本能力吧:

關(guān)鍵選項(xiàng)

理解一些關(guān)于lsof如何工作的關(guān)鍵性東西是很重要的。最重要的是,當(dāng)你給它傳遞選項(xiàng)時(shí),默認(rèn)行為是對(duì)結(jié)果進(jìn)行“或”運(yùn)算。因此,如果你正是用-i來拉出一個(gè)端口列表,同時(shí)又用-p來拉出一個(gè)進(jìn)程列表,那么默認(rèn)情況下你會(huì)獲得兩者的結(jié)果。

下面的一些其它東西需要牢記:

  •  默認(rèn) : 沒有選項(xiàng),lsof列出活躍進(jìn)程的所有打開文件
  •  組合 : 可以將選項(xiàng)組合到一起,如-abc,但要當(dāng)心哪些選項(xiàng)需要參數(shù)
  •  -a : 結(jié)果進(jìn)行“與”運(yùn)算(而不是“或”)
  •  -l : 在輸出顯示用戶ID而不是用戶名
  •  -h : 獲得幫助
  •  -t : 僅獲取進(jìn)程ID
  •  -U : 獲取UNIX套接口地址
  •  -F : 格式化輸出結(jié)果,用于其它命令。可以通過多種方式格式化,如-F pcfn(用于進(jìn)程id、命令名、文件描述符、文件名,并以空終止)

獲取網(wǎng)絡(luò)信息

正如我所說的,我主要將lsof用于獲取關(guān)于系統(tǒng)怎么和網(wǎng)絡(luò)交互的信息。這里提供了關(guān)于此信息的一些主題:

使用-i顯示所有連接

有些人喜歡用netstat來獲取網(wǎng)絡(luò)連接,但是我更喜歡使用lsof來進(jìn)行此項(xiàng)工作。結(jié)果以對(duì)我來說很直觀的方式呈現(xiàn),我僅僅只需改變我的語法,就可以通過同樣的命令來獲取更多信息。 

  1. # lsof -i COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAMEdhcpcd 6061 root 4u IPv4 4510 UDP *:bootpcsshd 7703 root 3u IPv6  6499 TCP *:ssh (LISTEN)sshd 7892 root 3u IPv6  6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED) 

使用-i 6僅獲取IPv6流量 

  1. # lsof -i 6 

僅顯示TCP連接(同理可獲得UDP連接)

你也可以通過在-i后提供對(duì)應(yīng)的協(xié)議來僅僅顯示TCP或者UDP連接信息。 

  1. # lsof -iTCP COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAMEsshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED) 

使用-i:port來顯示與指定端口相關(guān)的網(wǎng)絡(luò)信息

或者,你也可以通過端口搜索,這對(duì)于要找出什么阻止了另外一個(gè)應(yīng)用綁定到指定端口實(shí)在是太棒了。 

  1. # lsof -i :22 COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAMEsshd 7703 root 3u  IPv6 6499 TCP *:ssh (LISTEN)sshd 7892 root 3u  IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED) 

使用@host來顯示指定到指定主機(jī)的連接

這對(duì)于你在檢查是否開放連接到網(wǎng)絡(luò)中或互聯(lián)網(wǎng)上某個(gè)指定主機(jī)的連接時(shí)十分有用。 

  1. # lsof -i@172.16.12.5 sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED) 

使用@host:port顯示基于主機(jī)與端口的連接

你也可以組合主機(jī)與端口的顯示信息。 

  1. # lsof -i@172.16.12.5:22 sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED) 

找出監(jiān)聽端口

找出正等候連接的端口。 

  1. # lsof -i -sTCP:LISTEN 

你也可以grep “LISTEN”來完成該任務(wù)。 

  1. # lsof -i | grep -i LISTEN iTunes     400 daniel   16u  IPv4 0x4575228  0t0 TCP *:daap (LISTEN) 

找出已建立的連接

你也可以顯示任何已經(jīng)連接的連接。 

  1. # lsof -i -sTCP:ESTABLISHED 

你也可以通過grep搜索“ESTABLISHED”來完成該任務(wù)。 

  1. # lsof -i | grep -i ESTABLISHED firefox-b 169 daniel  49u IPv4 0t0 TCP 1.2.3.3:1863->1.2.3.4:http (ESTABLISHED) 

用戶信息

你也可以獲取各種用戶的信息,以及它們?cè)谙到y(tǒng)上正干著的事情,包括它們的網(wǎng)絡(luò)活動(dòng)、對(duì)文件的操作等。

使用-u顯示指定用戶打開了什么 

  1. # lsof -u daniel -- snipped --Dock 155 daniel  txt REG   14,2   2798436   823208 /usr/lib/libicucore.A.dylibDock 155 daniel  txt REG   14,2   1580212   823126 /usr/lib/libobjc.A.dylibDock 155 daniel  txt REG   14,2   2934184   823498 /usr/lib/libstdc++.6.0.4.dylibDock 155 daniel  txt REG   14,2    132008   823505 /usr/lib/libgcc_s.1.dylibDock 155 daniel  txt REG   14,2    212160   823214 /usr/lib/libauto.dylib-- snipped -- 

使用-u user來顯示除指定用戶以外的其它所有用戶所做的事情 

  1. # lsof -u ^daniel -- snipped --Dock 155 jim  txt REG   14,2   2798436   823208 /usr/lib/libicucore.A.dylibDock 155 jim  txt REG   14,2   1580212   823126 /usr/lib/libobjc.A.dylibDock 155 jim  txt REG   14,2   2934184   823498 /usr/lib/libstdc++.6.0.4.dylibDock 155 jim  txt REG   14,2    132008   823505 /usr/lib/libgcc_s.1.dylibDock 155 jim  txt REG   14,2    212160   823214 /usr/lib/libauto.dylib-- snipped -- 

殺死指定用戶所做的一切事情

可以消滅指定用戶運(yùn)行的所有東西,這真不錯(cuò)。 

  1. # kill -9 `lsof -t -u daniel` 

命令和進(jìn)程

可以查看指定程序或進(jìn)程由什么啟動(dòng),這通常會(huì)很有用,而你可以使用lsof通過名稱或進(jìn)程ID過濾來完成這個(gè)任務(wù)。下面列出了一些選項(xiàng):

使用-c查看指定的命令正在使用的文件和網(wǎng)絡(luò)連接 

  1. # lsof -c syslog-ng COMMAND    PID USER   FD   TYPE     DEVICE    SIZE       NODE NAMEsyslog-ng 7547 root  cwd    DIR    3,3    4096   2 /syslog-ng 7547 root  rtd    DIR    3,3    4096   2 /syslog-ng 7547 root  txt    REG    3,3  113524  1064970 /usr/sbin/syslog-ng-- snipped -- 

使用-p查看指定進(jìn)程ID已打開的內(nèi)容 

  1. # lsof -p 10075 -- snipped --sshd    10068 root  mem    REG    3,3   34808 850407 /lib/libnss_files-2.4.sosshd    10068 root  mem    REG    3,3   34924 850409 /lib/libnss_nis-2.4.sosshd    10068 root  mem    REG    3,3   26596 850405 /lib/libnss_compat-2.4.sosshd    10068 root  mem    REG    3,3  200152 509940 /usr/lib/libssl.so.0.9.7sshd    10068 root  mem    REG    3,3   46216 510014 /usr/lib/liblber-2.3sshd    10068 root  mem    REG    3,3   59868 850413 /lib/libresolv-2.4.sosshd    10068 root  mem    REG    3,3 1197180 850396 /lib/libc-2.4.sosshd    10068 root  mem    REG    3,3   22168 850398 /lib/libcrypt-2.4.sosshd    10068 root  mem    REG    3,3   72784 850404 /lib/libnsl-2.4.sosshd    10068 root  mem    REG    3,3   70632 850417 /lib/libz.so.1.2.3sshd    10068 root  mem    REG    3,3    9992 850416 /lib/libutil-2.4.so-- snipped -- 

-t選項(xiàng)只返回PID 

  1. # lsof -t -c Mail 350 

文件和目錄

通過查看指定文件或目錄,你可以看到系統(tǒng)上所有正與其交互的資源——包括用戶、進(jìn)程等。

顯示與指定目錄交互的所有一切 

  1. # lsof /var/log/messages/ COMMAND    PID USER   FD   TYPE DEVICE   SIZE   NODE NAMEsyslog-ng 7547 root    4w   REG    3,3 217309 834024 /var/log/messages 

顯示與指定文件交互的所有一切 

  1. # lsof /home/daniel/firewall_whitelist.txt 

高級(jí)用法

與tcpdump類似,當(dāng)你開始組合查詢時(shí),它就顯示了它強(qiáng)大的功能。

顯示daniel連接到1.1.1.1所做的一切 

  1. # lsof -u daniel -i @1.1.1.1 bkdr   1893 daniel 3u  IPv6 3456 TCP 10.10.1.10:1234->1.1.1.1:31337 (ESTABLISHED) 

同時(shí)使用-t和-c選項(xiàng)以給進(jìn)程發(fā)送 HUP 信號(hào) 

  1. # kill -HUP `lsof -t -c sshd` 

lsof +L1顯示所有打開的鏈接數(shù)小于1的文件

這通常(當(dāng)不總是)表示某個(gè)攻擊者正嘗試通過刪除文件入口來隱藏文件內(nèi)容。 

  1. # lsof +L1 (hopefully nothing) 

顯示某個(gè)端口范圍的打開的連接 

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

結(jié)尾

本入門教程只是管窺了lsof功能的一斑,要查看完整參考,運(yùn)行man lsof命令或查看在線版本。希望本文對(duì)你有所助益,也隨時(shí)歡迎你的評(píng)論和指正。 

 

責(zé)任編輯:龐桂玉 來源: Linux學(xué)習(xí)
相關(guān)推薦

2015-07-28 10:31:48

2021-01-14 07:53:09

Linuxlsof 命令

2017-01-12 19:22:19

Linuxlsof命令恢復(fù)刪除的文件

2019-10-27 22:47:30

Linux命令lsmod

2019-09-09 15:43:29

UnixLinux命令行

2012-07-11 13:35:25

UnixLinux

2021-02-23 10:36:09

Linux命令kmdr

2013-08-19 09:53:01

系統(tǒng)監(jiān)控lsof 監(jiān)控工具

2021-08-17 09:35:26

Linux命令Nginx

2021-05-20 12:16:17

Linux命令Axel

2021-08-16 11:59:32

Linuxlogrotate日志文件

2014-04-11 11:13:15

CollectlLinux系統(tǒng)監(jiān)控

2020-05-22 15:45:30

Linuxlogrotate神器

2013-04-10 10:59:45

Linux系統(tǒng)監(jiān)控collectl

2022-02-11 07:45:10

Linuxsmem系統(tǒng)

2022-04-21 14:09:17

lsofLinux虛擬文件

2020-10-12 17:40:44

lsofLinux虛擬文件

2024-06-20 11:56:36

Linux命令系統(tǒng)

2019-08-27 15:12:12

Linux操作系統(tǒng)Windows

2025-04-02 00:33:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品自产拍 | 精品免费 | www.99re| 日本91av视频| 一区二区中文字幕 | 337p日本欧洲亚洲大胆 | 国产一区二区 | 国产乱码精品1区2区3区 | 91精品久久久久久久99 | av网站在线播放 | 中文字幕在线免费观看 | 天天干天天爱天天爽 | 国产视频一二三区 | 国产精品毛片一区二区在线看 | 久久丝袜 | 中文字幕视频在线免费 | 久久久久久久久久爱 | 国产精品久久久久久久免费大片 | 国产高清无av久久 | 日本一区二区三区四区 | 欧美精品欧美精品系列 | 在线国产视频 | 91精品国产91久久久久久吃药 | 黄色网址在线免费观看 | 亚洲视频一区在线播放 | 在线观看中文字幕视频 | 亚洲视频中文字幕 | 精品在线播放 | 国产亚洲一区二区三区 | 在线色网址 | 欧洲视频一区 | 国产精品久久久久久久久久久久午夜片 | 亚洲精品一区在线观看 | 日韩一二三区视频 | 四虎永久影院 | 精品国产区 | 精品久久久久久久久久久久 | 91原创视频| 91麻豆精品国产91久久久久久 | 午夜精品一区二区三区在线视频 | 精品一区二区三区在线观看 |