當(dāng)前位置 主頁(yè) > 技術(shù)大全 >
了解如何查詢端口,可以幫助你監(jiān)控網(wǎng)絡(luò)活動(dòng)、識(shí)別潛在的安全威脅,以及優(yōu)化系統(tǒng)性能
本文將詳細(xì)介紹幾種最常用的Linux查詢端口命令,包括netstat、ss、lsof和fuser等,并為你提供詳盡的使用方法和示例
一、使用netstat命令查詢端口 netstat是Linux系統(tǒng)中用于檢查網(wǎng)絡(luò)連接和端口使用情況的最常用工具之一
它可以顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口的狀態(tài)
基本語(yǔ)法 netstat【選項(xiàng)】 常用選項(xiàng) - `-t`:顯示TCP端口
- `-u`:顯示UDP端口
- `-l`:顯示監(jiān)聽狀態(tài)的端口
- `-p`:顯示與端口相關(guān)的進(jìn)程信息(需要root權(quán)限)
- `-n`:以數(shù)字形式顯示地址和端口號(hào)
- `-a`:顯示所有連接和監(jiān)聽端口
示例 1. 查看所有TCP和UDP端口及其狀態(tài): netstat -tuln 2. 查看特定端口(如8080)的狀態(tài)及其關(guān)聯(lián)的進(jìn)程: netstat -tulnp | grep 8080 3. 查看所有監(jiān)聽狀態(tài)的端口及其關(guān)聯(lián)的進(jìn)程: netstat -tulnp 二、使用ss命令查詢端口 ss命令是netstat命令的現(xiàn)代替代品,它提供了更詳細(xì)的網(wǎng)絡(luò)統(tǒng)計(jì)信息,并且性能更好
基本語(yǔ)法 ss 【選項(xiàng)】 常用選項(xiàng) - `-t`:顯示TCP端口
- `-u`:顯示UDP端口
- `-l`:顯示監(jiān)聽狀態(tài)的端口
- `-p`:顯示與端口相關(guān)的進(jìn)程信息(需要root權(quán)限)
- `-n`:以數(shù)字形式顯示地址和端口號(hào)
- `-a`:顯示所有連接和監(jiān)聽端口
示例 1. 查看所有TCP和UDP端口及其狀態(tài): ss -tuln 2. 查看特定端口(如8080)的狀態(tài)及其關(guān)聯(lián)的進(jìn)程: ss -tulnp | grep 8080 3. 查看所有監(jiān)聽狀態(tài)的端口及其關(guān)聯(lián)的進(jìn)程: ss -tulnp 三、使用lsof命令查詢端口 lsof命令用于列出所有打開的文件,包括套接字和端口
通過lsof,你可以查看哪些進(jìn)程正在使用哪些端口
基本語(yǔ)法 lsof【選項(xiàng)】 常用選項(xiàng) - `-i`:顯示與網(wǎng)絡(luò)相關(guān)的文件(套接字)
- `-P`:顯示端口號(hào)而不是服務(wù)名
- `-n`:不解析主機(jī)名(提高性能)
示例 1. 查看所有打開的端口及其關(guān)聯(lián)的進(jìn)程: lsof -i -P -n 2. 查看特定端口(如8080)的使用情況: lsof -i :8080 四、使用fuser命令查詢端口 fuser命令用于確定哪些進(jìn)程正在使用特定的文件或端口
通過fuser,你可以找到占用特定端口的進(jìn)程ID(PID),并采取相應(yīng)的措施
基本語(yǔ)法 fuser【選項(xiàng)】 【文件/端口】 常用選項(xiàng) - `-n`:指定查詢的文件類型(如tcp、udp)
- `-v`:顯示詳細(xì)的信息
- `-k`:殺死使用指定文件或端口的進(jìn)程
示例 1. 查看正在使用特定端口(如8080)的進(jìn)程: fuser -n tcp 8080 2. 殺死正在使用特定端口(如8080)的進(jìn)程: fuser -k -n tcp 8080 五、高級(jí)用法和技巧 1. 查看指定程序的端口 有時(shí)候,你可能需要查看某個(gè)特定程序正在使用哪些端口
你可以使用ps命令結(jié)合grep命令來查找程序,然后使用netstat或ss命令來查看端口
示例: ps aux | grep myapp 查找程序myapp netstat -tulnp | grep myapp 查看myapp使用的端口 2. 開放和關(guān)閉端口 在Linux系統(tǒng)中,你可以使用firewalld(或iptables)來開放或關(guān)閉特定端口
- 開放端口: firewall-cmd --add-port=8080/tcp --permanent 永久開放8080端口 firewall-cmd --reload 重新加載防火墻配置 - 關(guān)閉端口: firewall-cmd --remove-port=8080/tcp --permanent 永久關(guān)閉8080端口 firewall-cmd --reload 重新加載防火墻配置 3. 終止占用端口的進(jìn)程 如果你需要終止占用特定端口的進(jìn)程,可以使用kill命令結(jié)合lsof或fuser命令來找到進(jìn)程ID,并終止它
示例: lsof -i :8080 找到占用8080端口的進(jìn)程ID kill -9 <進(jìn)程ID> 終止進(jìn)程 或者: fuser -k -n tcp 8080 直接殺死占用8080端口的進(jìn)程 六、總結(jié) 在Linux系統(tǒng)中,查詢端口是系統(tǒng)管理和網(wǎng)絡(luò)故障排查的基本技能之一
通過掌握netstat、ss、lsof和fuser等命令,你可以輕松查看端口的使用情況,并采取相應(yīng)的措施來優(yōu)化系統(tǒng)性能或解決網(wǎng)絡(luò)問題
希望本文對(duì)你有所幫助!