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