查看Linux端口狀態(tài)信息的命令詳解
Linux系統(tǒng)的端口有時會被某個進程占用,我們怎么快速查看端口信息呢?下面由學習啦小編為大家整理了查看Linux端口信息的命令詳解,希望對大家有幫助!
查看Linux端口狀態(tài)信息的命令詳解
在linux一般使用netstat 來查看系統(tǒng)端口使用情況。
netstat命令是一個監(jiān)控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的
netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知目前都有哪些網絡連接正在運作。
該命令的一般格式為:
netstat [選項]
命令中各選項的含義如下:
-a 顯示所有socket,包括正在監(jiān)聽的。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網絡接口的信息,格式同“ifconfig -e”。
-n 以網絡IP地址代替名稱,顯示出網絡連接情形。
-r 顯示核心路由表,格式同“route -e”。
-t 顯示TCP協(xié)議的連接情況。
-u 顯示UDP協(xié)議的連接情況。
-v 顯示正在進行的工作。
Linux下查看端口信息常見的命令用法
1. netstat -an | grep LISTEN
0.0.0.0的就是每個IP都有的服務,寫明哪個IP的就是綁定那個IP的服務。
2. netstat -tln
用來查看linux的端口使用情況
3. /etc/init.d/vsftp start
是用來啟動ftp端口~!
4. netstat
查看已經連接的服務端口(ESTABLISHED)
5. netstat -a
查看所有的服務端口(LISTEN,ESTABLISHED)
6. sudo netstat -ap
查看所有的服務端口并顯示對應的服務程序名
7. nmap <掃描類型><掃描參數(shù)>
例如:
nmap localhost
nmap -p 1024-65535 localhost
nmap -PT 192.168.1.127-245
當我們使用 netstat -apn 查看網絡連接的時候,會發(fā)現(xiàn)很多類似下面的內容:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 52 218.104.81.152:7710 211.100.39.250:29488 ESTABLISHED 6111/1
顯示這臺服務器開放了7710端口,那么這個端口屬于哪個程序呢?我們可以使用 lsof -i :7710 命令來查詢:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1990 root 3u IPv4 4836 TCP *:7710 (LISTEN) 54com.cn
這樣,我們就知道了7710端口是屬于sshd程序的
補充:查看linux端口狀態(tài)信息的其它命令
查看端口占用情況的命令: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當前所有打開端口的占用情況。第一段是進程,最后一列是偵聽的協(xié)議、偵聽的IP與端口號、狀態(tài)。如果端口號是已知的常用服務(如80、21等),則會直接顯示協(xié)議名稱,如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使用,狀態(tài)是listen。結束占用端口的進程:killall 進程名雖然我們不建議用這種本末倒置的方法來解決沖突問題,但某些情況下還是可以直接結束掉占用進程的(比如重啟Apache時進程沒有完全退出,導致重啟失敗)
1 | [root@www ~] # killallpure-ftpd |
這樣,所有的pure-ftpd進程都會被結束掉。