
先說一下我是一個linux和網路菜鳥,所以慢慢說,用大字。
我們有一台運行 GNOME 2.16 的 Red Hat 機器。我們正在嘗試在那裡建立一個網頁應用程式。從 Windows 開發環境中,我們可以 ping 通 RH,但無法 telnet 到 Web 容器
錯誤:
正在連接到 our.ip.address.## ...無法在連接埠 80## 上開啟與主機的連線:連線失敗
我檢查過的事情:
iptables 沒有運行
RH 盒子上的瀏覽器可以看到位於 127.0.0.1:80## 的 webapp
Web 應用程式預設包含 ip 0.0.0.0,這應該將其公開(對嗎?)
兩個盒子上的口罩是一樣的
RH 伺服器也可以 ping 通 Subversion 伺服器,但無法結帳
我只能想到 Windows 和 RH 盒子之間有一些防火牆,但我不知道如何檢查。我想確保在敲開 IT 部門的門之前我已經盡了一切努力。
我還應該檢查其他設定或 Linux 命令嗎?
您的診斷是什麼?
答案1
看起來您幾乎涵蓋了在作業系統方面可以做的所有事情,去敲一下 IT 部門的門,看看他們有什麼要說的。
答案2
我知道這個問題已經有一年了,但我剛剛遇到了完全相同的問題並想分享。
結果我的主介面(eth0)在系統啟動時沒有自動連線。當tomcat啟動時,它綁定到所有已知的介面 - 所以它永遠不會綁定到我的外部IP位址,只有127.0.0.1。後來,當我啟動介面並從 DHCP 伺服器獲取 IP 位址時,tomcat 已經在運行並且不知道新的 IP。
解決方案?停止 tomcat,確保所有介面都使用有效的 IP 位址連接,然後重新啟動 tomcat。
答案3
執行 tcpdump 查看封包是否到達您的伺服器:
tcpdump -s 0 -X host x.x.x.x
其中 xxxx 是你所說的可以 ping 通它的 Windows 測試機的 IP。
從該 Windows 計算機,首先 ping Linux 伺服器並確認您在 tcpdump 輸出中看到了這些 ICMP 封包。這確認您正在收聽正確的介面。然後嘗試存取連接埠 80XX。
如果您沒有看到那些 80XX 封包,很可能是因為伺服器外的某些東西阻止了連線(外部防火牆等)。
如果您確實看到資料包,則表示您的伺服器上的某些內容需要調整。
所以,這不是一個解決方案,但它有助於縮小問題範圍。
答案4
在您的 Red Hat 機器上,運行:
數控-l-p 80##
然後在您嘗試從運行連接的盒子(或任何其他盒子)上:
nc your.fancy.ip.address 80##
然後嘗試輸入一些內容並按 Enter 鍵。它應該顯示在 Red Hat 盒子上。
有關 netcat 的更多信息,請訪問http://netcat.sourceforge.net/。
這將檢查防火牆。如果它有效,那麼您的應用程式伺服器配置不正確。
祝你好運。