Linux如何查看端口被哪個進程佔用的方法,使用工具lsof,netstat:
1.lsof -i: 端口號
lsof命令用於查看你進程開打的文件,打開文件的進程,進程打開的端口(TCP、UDP)。找回/恢復刪除的文件。是十分方便的系統監視工具,因爲lsof命令需要訪問核心內存和各種文件,所以需要root用戶執行。
如果系統沒有lsof工具,可以通過yum安裝之。
yum install lsof
選項:
-a:列出打開文件存在的進程; -c<進程名>:列出指定進程所打開的文件; -g:列出GID號進程詳情; -d<文件號>:列出佔用該文件號的進程; +d<目錄>:列出目錄下被打開的文件; +D<目錄>:遞歸列出目錄下被打開的文件; -n<目錄>:列出使用NFS的文件; -i<條件>:列出符合條件的進程。(4、6、協議、:端口、 @ip ) -p<進程號>:列出指定進程號所打開的文件; -u:列出UID號進程詳情; -h:顯示幫助信息; -v:顯示版本信息。
例: VM_170_176_sles10_64:~ # lsof -i:3306 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME mysqld 5103 root 13u IPv4 28776382 TCP *:mysql (LISTEN)
2. netstat -tunlp | grep 端口號
netstat命令用來打印Linux中網絡系統的狀態信息,可讓你得知整個Linux系統的網絡情況。
選項:
-a或--all:顯示所有連線中的Socket; -A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址; -c或--continuous:持續列出網絡狀態; -C或--cache:顯示路由器配置的快取信息; -e或--extend:顯示網絡其他相關信息; -F或--fib:顯示FIB; -g或--groups:顯示多重廣播功能羣組組員名單; -h或--help:在線幫助; -i或--interfaces:顯示網絡界面信息表單; -l或--listening:顯示監控中的服務器的Socket; -M或--masquerade:顯示僞裝的網絡連線; -n或--numeric:直接使用ip地址,而不通過域名服務器; -N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號連接名稱; -o或--timers:顯示計時器; -p或--programs:顯示正在使用Socket的程序識別碼和程序名稱; -r或--route:顯示Routing Table; -s或--statistice:顯示網絡工作信息統計表; -t或--tcp:顯示TCP傳輸協議的連線狀況; -u或--udp:顯示UDP傳輸協議的連線狀況; -v或--verbose:顯示指令執行過程; -V或--version:顯示版本信息; -w或--raw:顯示RAW傳輸協議的連線狀況; -x或--unix:此參數的效果和指定"-A unix"參數相同; --ip或--inet:此參數的效果和指定"-A inet"參數相同。
例: VM_170_176_sles10_64:~ # netstat -tunlp | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5103/mysqld