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