我們平時在測試物聯(lián)網(wǎng)設(shè)備的時候,,可能通過特殊方法獲取了當(dāng)前的設(shè)備的shell【如串口等等】,。
這時,,我們往往需要查找該設(shè)備開啟端口對應(yīng)的服務(wù),再對該服務(wù)進(jìn)行測試,。但是在通過端口查找進(jìn)程的過程中可能會遇到一些問題,,因為物聯(lián)網(wǎng)中的Linux系統(tǒng)往往經(jīng)過精簡,很多命令的參數(shù)無法使用
使用netstat
這是最常用的方法之一,,Netstat可以用來顯示顯示網(wǎng)絡(luò)連接,,路由表,網(wǎng)絡(luò)接口狀態(tài)等等
Netstat在桌面版或者是服務(wù)器版的Linux上使用一般沒有問題,,但是該命令在嵌入式系統(tǒng)中往往被精簡
sudo netstat -tulpn
從圖中我們可以看到8000端口上運行的服務(wù)是python
解釋一下每個參數(shù)的含義
-t 顯示tcp連接
-u 顯示udp連接
-l 顯示監(jiān)聽的套接字
-p 顯示進(jìn)程ID和該進(jìn)程的名稱
-n 顯示數(shù)字地址
使用ss命令
ss命令可以用來顯示處于活動狀態(tài)的套接字信息,。ss命令可以用來獲取socket統(tǒng)計信息,它可以顯示和netstat類似的內(nèi)容,。但ss的優(yōu)勢在于它能夠顯示更多更詳細(xì)的有關(guān)TCP和連接狀態(tài)的信息,,而且比netstat更快速更高效
sudo ss -tulpn
如果netstat沒有相關(guān)參數(shù),建議師傅們試試這個命令
使用losf
顧名思義,,losf是一個列出當(dāng)前系統(tǒng)打開文件的工具,,不過該命令在一般嵌入式Linux可能沒有
sudo lsof -i :8000
fuser
fuser命令用于報告進(jìn)程使用的文件和網(wǎng)絡(luò)套接字
sudo fuser 8000/tcp
br
如上圖所示24254即為PID
接下來通過ps命令查找進(jìn)程的詳細(xì)信息
ps -p 24254
或者也可以直接使用fuser中的-v參數(shù):
sudo fuser -v 8000/tcp