2009-11-20 108 views
2

如何在客戶現場調試您的應用程序的防火牆問題?目前,我們遇到了Apache和Tomcat(應用程序的一部分)拋出的錯誤,聽起來像防火牆阻止了我們嘗試接受或綁定到機器上的端口。調試客戶防火牆問題

對我們來說,問題在於我們無法看到防火牆在做什麼,因爲它是在企業級管理的。有沒有什麼方法可以確定我們是否被阻止,或者是否是特定於應用程序的問題。這是一個Java應用程序。

回答

2

您可能會因爲在超級用戶或服務器故障中提出問題而感到痛苦。

答案很簡單:登錄到正試圖與另一通信的任何服務器,並使用telnet模擬請求:

telnet OtherServer PortNumber

如果收到「拒絕連接」,然後其他的服務不存在或防火牆正在讓它看不見。如果什麼都沒有發生,你可能會碰到防火牆。如果你得到了一個連接(不必介意在這之後是否有什麼有趣的事情發生),那麼你正在接近。


編輯:是的,我知道這是很簡單的。一個聰明的虐待或非常不合格的防火牆設置可能會讓請求進入您的服務器,但卻無法回答該請求。但我從未遇到過這種情況。更簡單的去/不去的情況更常見。

如果您需要更多合格的建議,也許您可​​以從我們的服務器複製一些錯誤消息和/或堆棧跟蹤。

+0

連接後,可能會在連接失敗時遇到一些問題。我認爲標準的奧術序列是Ctrl- [之後是「quit」。我無法在我的德語鍵盤上輸入該字符,所以我只需要終止telnet進程:) – 2009-11-20 15:25:17

+1

Ctrl-],我認爲 – 2009-11-20 15:57:14

+0

@Carl,開發人員不應該有德語kayboard佈局,所有的支架類型都太遙遠了: - ) – rsp 2009-11-20 16:32:33

0

如果防火牆是在「企業級」管理的,它聽起來不像是基於主機的防火牆(基於主機的「在您運行的計算機上」)。如果它不是一個基於主機的防火牆,那麼它就無法阻止你綁定的企圖,你可以在別處尋找。

如果它是基於主機的......那麼這是一個基於主機的防火牆。您可能更有可能沒有管理員權限或超級用戶權限來綁定端口。

如果您可以綁定到端口但無法通信,您需要開始進行標準防火牆測試 - 「我可以從Internet上打一個靜態html頁面嗎?從Intranet?從本地主機?」

0

這只是我的經驗,但HTTP(S)上的防火牆問題的跡象表明,請求會掛起一段時間,然後超時並出現Connection Timed Out-flavored異常。根據防火牆的不同,也可以立即拒絕連接。所以這就是我們不得不求助於調試防火牆問題的方法。該決議總是要去網絡管理員(我們已經建立了與該團隊的良好關係),並要求他們讓一個特定的IP地址。

2

如果您無法綁定到Apache /從您的Apache或Tomcat服務器運行的Tomcat服務器,那麼它很可能是其他兩個問題之一:

  • 該端口已被另一個應用程序綁定。我用來檢查的幾個工具是
  • lsof -i :port
  • netstat -ant | grep port

  • 端口號低於1025,運行Apache/Tomcat的進程不是root。

1

traceroute(tracert for Windows)是一件好事,可以看到事情的發展。

UPnP工具也非常適合在路上看防火牆。