掃描一個或所有埠,在 UDP 或所有協議上,看看我是否得到,我想得到什麼
我有一個 GPS 定位器 (TK102)。我已將其設置為通過 GPRS 向特定 IP 和特定埠發送響應。有人告訴我,它使用UDP。
似乎正在發送某些內容(在本地化程序使用的電話號碼的連接列表上註冊的付費轉移),但它沒有到達伺服器(可能)。
似乎我的偵聽器在伺服器上執行,沒有收到本地化程序的任何響應。
偵聽器本身工作正常(僅在埠 3333 和 7777 上偵聽 UDP),因為我可以從任何其他客戶端發送 UDP 數據包,並且它們被正確擷取並在 DB 中註冊。我在兩個不同的埠上測試了 NetCat 和 UDP 測試工具。一切正常。
我的問題是,是否有任何工具或服務可以在我的伺服器上執行,以掃描 UDP 或所有協議上的特定或所有埠,以查看我是否從該本地化程序獲得任何東西?換句話說,如果這是本地化程序或伺服器問題或介於兩者之間的任何問題。
順便說一句:我使用的伺服器非常有限(實際上是 NAS 設備),所以我無法執行許多工具或系統命令,這些工具或系統命令通常可以在發行版中找到。
似乎tcpdump是最好的,如果不是這裡唯一的答案。它看起來非常適合這項工作。因為,我在我的 NAS 上使用了非常有限的 Linux 版本,所以它不存在。但是簡單的呼叫
ipkg install tcpdump
解決了這個問題(希望我之前安裝過 Optware,因為它也失去了)。對於這個特定問題(監聽埠 3333 或 7777 上的 UDP 數據包),要執行的命令是:
tcpdump -i eth0 -n udp port \( 3333 or 7777 \)
where
-i
告訴 tcpdump 僅在eth0
介面上偵聽(執行tcpdump -D
以查看特定機器上 tcpdump 可用的所有適配器)並-n
強制 tcpdump 不轉換截獲數據包的源地址並將它們顯示為純 IP。為了測試,如果我的本地化程序沒有改變使用的埠,我可以呼叫:
tcpdump -i eth0 -n udp
這導致它偵聽 UDP 協議中的任何內容(任何埠)。
替代方案:
tcpdump -i eth0 -n port \( 3333 or 7777 \)
將導致 tcpdump 攔截埠 3333 或 7777 上的任何流量,無論使用哪種協議。
tcpdump
僅使用介面參數執行:tcpdump -i eth0
甚至在沒有任何參數的情況下呼叫它都會擷取所有進入執行機器的流量
tcpdump
。但是,如果您可以物理訪問它並且可以手動執行程序,這很有用。如果您只有遠端訪問權限並且必須tcpdump
通過 SSH 執行,那麼您可能就沒那麼幸運了。SSH 本身會發送如此多的數據包,即使所有其他服務都關閉,您也可能無法在“數據包噪音”中看到任何內容。如果您知道源 IP 地址(即機器的遠端地址,它將發送您想要擷取的流量),這可以部分解決。有了這個,你可以
tcpdump
這樣限制:tcpdump -i eth0 -n src 77.233.177.237
這是一種單向偵聽器,它將擷取從該 IP 到您的機器的所有流量。
替代版本:
tcpdump -i eth0 -n dst 77.233.177.237
讓您檢查從您的機器發送到指定 IP 地址的所有“答案”。
最後,執行這個命令:
tcpdump -i eth0 -n host 77.253.175.217
將向您顯示在您執行的電腦和提到的 IP 之間正在交換的所有流量,
tcpdump
在這種形式下,它作為源和目標都受到威脅,因此您會看到“問題”和“答案”。您還可以
tcpdump
在您的機器上使用來監聽連接到同一網路的其他兩台機器之間交換的流量。由於這太離題並且正在使用程序作為真正的嗅探器,可能會做一些壞事,我不會給你正確的命令來執行。參考我使用的資源或搜尋網際網路。資料來源: