一、lsof-i是什麼
Linux下的lsof是一個非常強大和有用的工具,能夠列出當前系統中打開的所有文件。其中,lsof-i是lsof的一個選項,它可以列出每個打開文件的進程ID和用戶ID。
命令格式:lsof -i [protocol:port]
例如:lsof -i :80 將列出所有使用埠號80的程序和進程。
二、lsof-i常用參數與說明
1. -i 參數
lsof -i tcp:80
lsof -i udp:53,67-68
-i 後面可以跟著TCP/UDP/IPv4/IPv6等網路協議,還可以接埠號和埠區間。
2. -n 參數
lsof -i :80 -n
-n 參數用於不使用DNS解析,加速lsof命令速度。
3. -P 參數
lsof -i :80 -nP
-P 參數可以用來列印出埠號。
4. -c 參數
lsof -i -c nginx
-c 參數可用於指定進程名或者進程ID號。
三、lsof-i案例分析
1. 統計某個埠連接數及連接的IP地址
lsof -i :80 | grep ESTABLISHED | awk '{print $1,$3}' | sort | uniq -c
上述命令表示,列出埠號80的全部進程,過濾出狀態為ESTABLISHED的連接,並統計出連接數及連接的IP地址。
2. 查看網路文件狀態
lsof /etc/passwd
此命令將輸出/etc/passwd這個文件的所有狀況,例如是否正在使用,如果正在使用,是哪個用戶正在使用。
3. 列出埠被哪些進程佔用
lsof -i :22
此命令將輸出使用22埠的所有進程信息。
4. 找出特定用戶開啟的網路連接
lsof -u username -i
-u 參數可用於限定特定用戶開啟的網路連接,語法:lsof -u <username> -i
。
5. 查看指定IP地址的網路連接情況
lsof -i @192.168.1.1
-i 參數後面也可以跟主機名或者IP地址,用來查看該主機的網路連接情況。
四、總結
本文主要對Linux下的lsof-i進行了詳細介紹,包括其基本命令格式、常用參數以及幾個實用案例。lsof-i是一款非常強大和實用的工具,能夠幫助我們快速了解當前系統中的網路連接狀態,便於我們進行系統優化和網路調試等操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230480.html