Linux系統的端口有時會被某個進程占用,我們怎麼快速查看端口信息呢?下面由學習啦小編為大家整理了查看Linux端口信息的命令詳解,希望對大家有幫助!
查看Linux端口狀態信息的命令詳解
在linux一般使用netstat 來查看系統端口使用情況。
netstat命令是一個監控TCP/IP網絡的非常有用的工具,它可以顯示路由表、實際的網絡連接以及每一個網絡接口設備的
netstat命令的功能是顯示網絡連接、路由表和網絡接口信息,可以讓用戶得知目前都有哪些網絡連接正在運作。
該命令的一般格式為:
netstat [選項]
命令中各選項的含義如下:
-a 顯示所有socket,包括正在監聽的。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網絡接口的信息,格式同“ifconfig -e”。
-n 以網絡IP地址代替名稱,顯示出網絡連接情形。
-r 顯示核心路由表,格式同“route -e”。
-t 顯示TCP協議的連接情況。
-u 顯示UDP協議的連接情況。
-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 <掃描類型><掃描參數>
例如:
nmap localhost
nmap -p 1024-65535 localhost
nmap -PT 192.168.1.127-245
當我們使用 netstat -apn 查看網絡連接的時候,會發現很多類似下面的內容:
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端口狀態信息的其它命令
查看端口占用情況的命令: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進程都會被結束掉。