linux查看進程埠佔用
㈠ linux 查看進程 佔用哪些埠
一)使用lsof命令 lsof是一個非常強大的linux工具,她被用來查找哪些程序使用了那些文件。在linux系統下,基本上所有的東西都可以被當作文件來用。socket當然也是一種文件了。所以lsof可以用來查找誰用了某一個埠。具體方法: lsof -i :port_number |grep "(LISTEN)" -i是用來查找和中國絡相關的文件,":"號是必須的,它是標志你查找的是一個埠。port_number就是你要查找的埠號,譬如你要查找是否 有程序佔用了oracle的監聽埠一5二一,就可以使用lsof -i :一5二一 |grep "(LISTEN)"。如果有程序已經佔用了,那麼下面列印的第二個欄位就是該程序的進程id,第一個欄位是進程的名字。 如果只有losf -i :port_number可能會查到很多應用程序,但這些程序實際並沒有佔用你指定的埠,這些埠只是連接到本機器或者別的機器的該埠。所以要grep "(LISTEN)「,因為一個埠只可能被一個程序佔用的,所以這種方法是可靠的。 二)使用netstat 命令 大家一定對這個命令比較熟悉了,可能你從沒有想到用到來查找哪一個程序的佔用了指定的埠。但是netstat -an 的確提供了這種功能。所以有問題了一定要想到先去查找man手冊,不過說實話,某些man手冊寫得讓中國人看不懂,那沒有辦法了,就googe或者 一下吧。 執行man netstat命令,你會發現netstat 提供了'-p'的選項,這個選項的功能是告訴你哪個程序佔用了該埠,但是她提供的形式比較古怪是以pid/process_name提供的。pid當然 是進程id了,process_name是進程的命令,中間以'/'號分隔。 和上面的原因一樣,我們只查找listen的埠,netstat 給我們提供了-l的選項,這個選項不是默認的選項。 下面以一5二一埠來看怎麼查找到該程序,我們使用下面的命令: netstat -lnp|awk 'BEGIN{prt=":一5二一$"}{if ($四 ~ prt) print $0}' 在這里使用awk來匹配第四個欄位的模式是為了避免誤判
㈡ 怎麼用命令查看linux上本機的某個埠是否被佔用
linux系統下,查看埠佔用情況的命令:lsof -i
1 [root@www ~]# lsof -i
2
3 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
4 nginx 2333 root 6u IPv4 6242 TCP *:http (LISTEN)
5 nginx 2334 www 6u IPv4 6242 TCP *:http (LISTEN)
6 sshd 2349 root 3u IPv6 6283 TCP *:ndmp (LISTEN)
7 sshd 2349 root 4u IPv6 6286 TCP *:ssh (LISTEN)
這里返回了Linux當前所有打開埠的佔用情況。第一段是進程,最後一列是偵聽的協議、偵聽的IP與埠號、狀態。如果埠號是已知的常用服務(如80、21等),則會直接顯示協議名稱,如http、ftp、ssh等。
查看某一埠的佔用情況: lsof -i:埠號
1 [root@www ~]# lsof -i:21
2
3 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
4 pure-ftpd 2651 root 4u IPv4 7047 TCP *:ftp (LISTEN)
5 pure-ftpd 2651 root 5u IPv6 7048 TCP *:ftp (LISTEN)
這里顯示出21號埠正在被pure-ftpd使用,狀態是listen。
結束佔用埠的進程:killall 進程名
雖然我們不建議用這種本末倒置的方法來解決沖突問題,但某些情況下還是可以直接結束掉佔用進程的(比如重啟Apache時進程沒有完全退出,導致重啟失敗)
1 [root@www ~]# killall pure-ftpd
這樣,所有的pure-ftpd進程都會被結束掉。
㈢ linux 如何查看埠被哪個程序佔用
【步驟一】lsof -i
lsof -i 用以顯示符合條件的進程情況,lsof(list open files)是一個列出當前系統打開文件的工具。以root用戶來執行lsof -i命令,如下圖
【步驟二】lsof -i:埠號
lsof -i:埠號,用於查看某一埠的佔用情況,比如查看22號埠使用情況,lsof -i:22,如下圖
【步驟三】netstat -tunlp
netstat -tunlp用於顯示tcp,udp的埠和進程等相關情況,如下圖
4
【步驟四】netstat -tunlp|grep 埠號
netstat -tunlp|grep 埠號,用於查看指定埠號的進程情況,如查看22埠的情況,netstat -tunlp|grep 22,如下圖