當(dāng)前位置 主頁(yè) > 技術(shù)大全 >
了解系統(tǒng)中哪些IP地址和端口號(hào)正在使用,對(duì)于排查網(wǎng)絡(luò)故障、確保系統(tǒng)安全以及優(yōu)化網(wǎng)絡(luò)性能至關(guān)重要
本文將詳細(xì)介紹幾種常用的Linux命令,幫助你高效地查看和管理IP端口號(hào)
一、引言 在Linux系統(tǒng)中,端口號(hào)用于區(qū)分不同的網(wǎng)絡(luò)服務(wù)
每個(gè)正在運(yùn)行的網(wǎng)絡(luò)服務(wù)都會(huì)綁定到一個(gè)或多個(gè)端口上,這些端口號(hào)在TCP/IP協(xié)議棧中用于區(qū)分不同的通信通道
了解哪些端口正在被使用,以及它們對(duì)應(yīng)的IP地址,是確保系統(tǒng)安全、排查網(wǎng)絡(luò)問題的基礎(chǔ)
二、常用命令介紹 1.netstat netstat(network statistics)是一個(gè)強(qiáng)大的網(wǎng)絡(luò)工具,用于顯示網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計(jì)信息、偽裝連接以及多播成員資格等信息
要查看系統(tǒng)中正在使用的端口和對(duì)應(yīng)的IP地址,可以使用以下命令: bash netstat -tuln -`-t`:顯示TCP端口
-`-u`:顯示UDP端口
-`-l`:僅顯示監(jiān)聽狀態(tài)的端口
-`-n`:以數(shù)字形式顯示地址和端口號(hào),避免DNS解析延遲
例如,運(yùn)行上述命令后,你可能會(huì)看到類似以下的輸出: plaintext Active Internet connections(onlyservers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN udp 0 0 0.0.0.0:123 0.0.0.0: tcp6 0 0 :::80 ::: LISTEN 這里顯示了系統(tǒng)中正在監(jiān)聽的TCP和UDP端口,以及它們對(duì)應(yīng)的本地地址和狀態(tài)
2.ss ss(socket statistics)是`netstat`的現(xiàn)代替代品,提供了更詳細(xì)、更快速的輸出
`ss`命令能夠顯示關(guān)于套接字(sockets)的詳細(xì)信息,包括TCP、UDP、RAW和UNIX域套接字
要查看系統(tǒng)中正在使用的端口和對(duì)應(yīng)的IP地址,可以使用以下命令: bash ss -tuln 參數(shù)含義與`netstat`類似: -`-t`:顯示TCP端口
-`-u`:顯示UDP端口
-`-l`:僅顯示監(jiān)聽狀態(tài)的端口
-`-n`:以數(shù)字形式顯示地址和端口號(hào)
`ss`命令的輸出格式與`netstat`相似,但通常更快,因?yàn)樗苯釉L問內(nèi)核中的套接字信息,而不是通過`/proc/net`文件
3.lsoft lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具
由于在網(wǎng)絡(luò)編程中,套接字也被視為文件,因此`lsof`也可以用于查看網(wǎng)絡(luò)端口的使用情況
要查看系統(tǒng)中正在使用的端口和對(duì)應(yīng)的IP地址,可以使用以下命令: bash lsof -i -P -n -`-i`:顯示與網(wǎng)絡(luò)相關(guān)的文件(即套接字)
-`-P`:顯示端口號(hào)而不是服務(wù)名
-`-n`:顯示IP地址而不是主機(jī)名
例如,運(yùn)行上述命令后,你可能會(huì)看到類似以下的輸出: plaintext COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1234 root 3u IPv4 12345 0t0 TCP:22 (LISTEN) nginx 5678 www-data 6u IPv4 67890 0t0 TCP:80 (LISTEN) 這里顯示了正在監(jiān)聽特定端口的進(jìn)程信息,包括進(jìn)程ID、用戶、文件描述符、套接字類型、設(shè)備號(hào)、節(jié)點(diǎn)號(hào)以及具體的網(wǎng)絡(luò)地址和端口號(hào)
4.nmap nmap(network mapper)是一個(gè)網(wǎng)絡(luò)掃描工具,用于發(fā)現(xiàn)網(wǎng)絡(luò)上的主機(jī)和服務(wù)
雖然`nmap`主要用于掃描遠(yuǎn)程主機(jī),但它也可以用于掃描本地主機(jī)上的開放端口
要掃描本地主機(jī)上的開放端口,可以使用以下命令: bash nmap -sT -O localhost -`-sT`:執(zhí)行TCP連接掃描
-`-O`:嘗試檢測(cè)操作系統(tǒng)類型(對(duì)于本地掃描可能不是必需的)
`nmap`的輸出將包括每個(gè)開放端口的詳細(xì)信息,以及可能的操作系統(tǒng)和服務(wù)標(biāo)識(shí)
5.fuser fuser命令用于顯示哪些進(jìn)程正在使用指定的文件或套接字
要查看特定端口上正在運(yùn)行的進(jìn)程,可以使用以下命令: bash fuser -n tcp 22 -`-n`:指定協(xié)議類型(如tcp或udp)
-`22`:要檢查的端口號(hào)
例如,運(yùn)行上述命令后,你可能會(huì)看到類似以下的輸出: plaintext 22/tcp: 1234 這里顯示了正在使用TCP端口22的進(jìn)程ID(PID)
三、實(shí)際應(yīng)用場(chǎng)景 1.排查網(wǎng)絡(luò)故障 當(dāng)網(wǎng)絡(luò)服務(wù)出現(xiàn)問題時(shí),使用上述命令可以快速定位哪些端口和IP地址正在使用,以及它們對(duì)應(yīng)