2012-08-25 52 views
1

我很茫然地解釋這種行爲與Windows上的Web服務器。它位於將Windows防火牆設置爲域策略的域環境中。爲什麼某些網絡API能夠接受遠程連接,而其他網絡API則不能?

  • 本地Web服務器 - 都爲localhost:端口和FQDM:端口
    • Tomcat的OK
    • IIS OK
    • 的WEBrick OK
    • 詹的服務器 - OK
  • 遠程訪問 - 使用FQDM:端口
    • Tomcat否連接
    • IIS沒有連接
    • 的WEBrick OK
    • 詹的服務器 - OK

我不明白的WEBrick和服務器詹金斯用來接受遠程連接。

我還有其他的診斷方法嗎? 是否可以配置Tomcat使用類似的方法?

+0

Tomcat和IIS錯誤/訪問日誌中是否有任何條目?如果您對機器進行tracert/traceroute,是否會得到完整的跟蹤?服務器是否可以ping通?防火牆是否記錄下IIS/Tomcat?你可以發佈你的Tomcat和IIS配置嗎? – hughdbrown

+0

你的意思是說,當你在防火牆內訪問它們時,所有這些都在localhost上?但是隻有WEBrick和Jenkins可以通過遠程訪問來訪問?另外,您的遠程訪問意味着什麼 - 不是您的計算機,而是仍在同一個內部網絡上,或者您是否從防火牆之外訪問它們?無論如何,這聽起來像是一個端口阻塞問題。請說明每個使用的端口。 –

回答

0

我不能告訴太多關於使用WEBrick或詹金斯,但對Tomcat的 - 如果你看一下Tomcat的7源(StandardServer.java),你會看到:

// Set up a server socket to wait on 
try { 
    awaitSocket = new ServerSocket(port, 1, 
       InetAddress.getByName(address)); 
} catch (IOException e) { ... } 

這意味着,無論你在地址指定(在你的server.xml),通過這一點。

InetAddress.getByNamecontract說:

主機名可以是機器名,如「java.sun.com」,或 其IP地址的文本表示。如果提供的文字IP地址是 ,則只檢查地址格式的有效性。

如果我是你,我會嘗試設置IP地址,看看是否有任何問題。

第二步是檢查您是否有本地名稱解析策略不正確(hosts文件)。我一直在當地的hosts文件不正確或包含不可解析的條目,導致各種奇怪的問題,如你有。

0

這聽起來像你的遠程請求永遠不會到達沒有回覆的服務。這意味着它是一個防火牆或NAT問題。我不認爲這是一個配置問題,因爲你說從本地計算機本地主機:端口和FQDN:端口都工作。

爲了進行診斷,首先要確定是否有遠程通信與遠程登錄。

的telnet主機端口

如果你沒有看到Connected to FQDN.響應,那麼防火牆,硬件或本地軟件防火牆,阻斷了連接。您將需要確保防火牆的方式有所有正確的端口打開,轉發等。