Linux如何檢視端口被哪個程序占用的方法,使用工具lsof,netstat:
1.lsof -i: 端口号
lsof指令用于檢視你程序開打的檔案,打開檔案的程序,程序打開的端口(TCP、UDP)。找回/恢複删除的檔案。是十分友善的系統監視工具,因為lsof指令需要通路核心記憶體和各種檔案,是以需要root使用者執行。
如果系統沒有lsof工具,可以通過yum安裝之。
<code>yum </code><code>install</code> <code>lsof</code>
選項:
<code>-a:列出打開檔案存在的程序; </code>
<code>-c<程序名>:列出指定程序所打開的檔案; </code>
<code>-g:列出GID号程序詳情; </code>
<code>-d<檔案号>:列出占用該檔案号的程序; </code>
<code>+d<目錄>:列出目錄下被打開的檔案; </code>
<code>+D<目錄>:遞歸列出目錄下被打開的檔案; </code>
<code>-n<目錄>:列出使用NFS的檔案; </code>
<code>-i<條件>:列出符合條件的程序。(4、6、協定、:端口、 @ip ) </code>
<code>-p<程序号>:列出指定程序号所打開的檔案; </code>
<code>-u:列出UID号程序詳情; </code>
<code>-h:顯示幫助資訊; </code>
<code>-</code><code>v</code><code>:顯示版本資訊。</code>
<code>例:</code>
<code>VM_170_176_sles10_64:~ </code><code># lsof -i:3306 </code>
<code>COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME</code>
<code>mysqld 5103 root 13u IPv4 28776382 TCP *:mysql (LISTEN)</code>
2. netstat -tunlp | grep 端口号
netstat指令用來列印Linux中網絡系統的狀态資訊,可讓你得知整個Linux系統的網絡情況。
<code>-a或--all:顯示所有連線中的Socket; </code>
<code>-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關位址; </code>
<code>-c或--continuous:持續列出網絡狀态; </code>
<code>-C或--cache:顯示路由器配置的快取資訊; </code>
<code>-e或--extend:顯示網絡其他相關資訊; </code>
<code>-F或--fib:顯示FIB; </code>
<code>-g或--</code><code>groups</code><code>:顯示多重廣播功能群組組員名單; </code>
<code>-h或--help:線上幫助; </code>
<code>-i或--interfaces:顯示網絡界面資訊表單; </code>
<code>-l或--listening:顯示監控中的伺服器的Socket; </code>
<code>-M或--masquerade:顯示僞裝的網絡連線; </code>
<code>-n或--numeric:直接使用ip位址,而不通過域名伺服器; </code>
<code>-N或--netlink或--symbolic:顯示網絡硬體外圍裝置的符号連接配接名稱; </code>
<code>-o或--timers:顯示計時器; </code>
<code>-p或--programs:顯示正在使用Socket的程式識别碼和程式名稱; </code>
<code>-r或--route:顯示Routing Table; </code>
<code>-s或--statistice:顯示網絡工作資訊統計表; </code>
<code>-t或--tcp:顯示TCP傳輸協定的連線狀況; </code>
<code>-u或--udp:顯示UDP傳輸協定的連線狀況; </code>
<code>-</code><code>v</code><code>或--verbose:顯示指令執行過程; </code>
<code>-V或--version:顯示版本資訊; </code>
<code>-w或--raw:顯示RAW傳輸協定的連線狀況; </code>
<code>-x或--unix:此參數的效果和指定</code><code>"-A unix"</code><code>參數相同; </code>
<code>--ip或--inet:此參數的效果和指定</code><code>"-A inet"</code><code>參數相同。</code>
<code>VM_170_176_sles10_64:~ </code><code># netstat -tunlp | grep 3306</code>
<code>tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5103</code><code>/mysqld</code>
本文轉自 SoulMio 51CTO部落格,原文連結:http://blog.51cto.com/bovin/1896609,如需轉載請自行聯系原作者