2012-06-12 50 views
15

我有一個應用程序在運行http頁面的遠程服務器上的端口9100上運行。在我ssh進入服務器後,我可以捲曲本地主機9100,我收到迴應。跟蹤特定的IP和端口

但是我無法使用http://ip:9100

我也無法從本地PC遠程登錄的瀏覽器訪問相同的應用程序。我如何調試它?有沒有辦法對特定的IP和端口組合進行跟蹤路由,查看它被阻止的位置?

任何Linux工具/命令/實用程序將不勝感激。

感謝, 穆爾塔扎

回答

4

首先,檢查你的應用程序綁定到的IP地址。例如,它只能綁定到本地地址,這意味着無論防火牆狀態如何,您都不會從其他計算機上看到它。

你可以嘗試使用像nmap這樣的portscanner來查看端口是否打開並且可以在外部看到它可以告訴你端口是否關閉(這裏沒有任何監聽),打開(你應該可以看到它罰款)或過濾(例如通過防火牆)。

+0

Rook,謝謝你的回覆。我如何檢查IP綁定? – murtaza52

+0

另外,當我做nmap它只顯示開放的端口,我用什麼選項來顯示所有端口? – murtaza52

+0

那麼,不知道任何關於你的應用程序,這是不可能的!查看其配置文件,也許?您可以嘗試查看'netstat -lt'的輸出...例如,綁定到本地地址的應用程序將顯示爲「tcp localhost:9100」。 – Rook

21
tcptraceroute xx.xx.xx.xx 9100 

如果你沒有找到它,你可以安裝它

yum -y install tcptraceroute 

aptitude -y install tcptraceroute 
+1

Homebrew也有一個這個小工具的寶石包。 'brew安裝tcptraceroute'。但是,您需要sudo才能使用該工具。 – datUser

9

可以使用tcpdump在服務器上檢查客戶端連到達服務器。

tcpdump -i any tcp port 9100 

還確保您的防火牆不阻止傳入連接。

編輯:如果您不想在控制檯上閱讀,也可以將轉儲寫入文件並在客戶端上使用wireshark進行查看。

2日編輯:您可以檢查是否可以通過

nc ip 9100 -z -v 

從本地PC抵達港口。

18

您可以使用默認的traceroute命令來達到此目的,那麼將不需要安裝任何東西。

traceroute -T -p 9100 <IP address/hostname> 

-T參數是必需的,以便使用TCP協議而不是UDP。

+0

太棒了!請注意,您需要root權限才能執行該命令 –

0

它可以通過使用以下命令來完成:tcptraceroute -p destination port destination IP。如:tcptraceroute -p 9100 10.0.0.50,但不要忘記在您的系統上安裝tcptraceroute軟件包。系統默認安裝了tcpdump和nc。問候