共用方式為


針對 Azure 中 虛擬機器上的應用程式連線問題進行疑難排解

適用於:✔️ Linux VM ✔️ Windows VM

您無法啟動或連線到在 Azure 虛擬機上執行的應用程式時,有各種原因。 原因包括應用程式未在預期的埠上執行或接聽、已封鎖接聽埠,或網路規則未正確將流量傳遞至應用程式。 本文說明尋找並更正問題的有條理方法。

如果您在使用 RDP 或 SSH 連線到 VM 時遇到問題,請先參閱下列其中一篇文章:

如果在本文章中有任何需要協助的地方,您可以連絡 MSDN Azure 和 Stack Overflow 論壇上的 Azure 專家。 或者,您也可以提出 Azure 支援事件。 請移至 Azure 支援網站,然後選取 [取得支援]

快速入門疑難解答步驟

如果您在連線到應用程式時遇到問題,請嘗試下列一般疑難解答步驟。 在每個步驟之後,再次嘗試連線到您的應用程式:

如需詳細資訊,請參閱針對端點連線能力進行疑難解答(RDP/SSH/HTTP 等失敗)。

詳細的疑難解答概觀

有四個主要區域可針對在 Azure 虛擬機上執行的應用程式存取進行疑難解答。

圖表顯示兩個用戶端裝置分別透過因特網和 VPN 連線到 V M 上的應用程式。針對存取進行疑難解答的主要區域有 4 個醒目提示。

  1. 在 Azure 虛擬機上執行的應用程式。
    • 應用程式本身是否正常執行?
  2. Azure 虛擬機。
    • VM 本身是否正常執行並回應要求?
  3. Azure 網路端點。
    • 傳統部署模型中虛擬機的雲端服務端點。
    • Resource Manager 部署模型中虛擬機的網路安全組和輸入 NAT 規則。
    • 流量是否可以從使用者流向預期的埠上的 VM/應用程式?
  4. 您的因特網邊緣裝置。
    • 防火牆規則是否已就緒,以防止流量正確流動?

對於透過站對站 VPN 或 ExpressRoute 連線存取應用程式的用戶端電腦,可能會導致問題的主要區域是應用程式和 Azure 虛擬機。

若要判斷問題的來源及其修正,請遵循下列步驟。

步驟 1:從目標 VM 存取應用程式

嘗試從其執行所在的 VM,使用適當的用戶端程式存取應用程式。 使用本機主機名、本機 IP 位址或回送位址 (127.0.0.1)。

直接從 Azure VNet 中的 V M 存取應用程式的圖表。

例如,如果應用程式是網頁伺服器,請在 VM 上開啟瀏覽器,並嘗試存取裝載在 VM 上的網頁。

如果您可以存取應用程式,請移至 步驟 2

如果您無法存取應用程式,請確認下列設定:

  • 應用程式正在目標虛擬機上執行。
  • 應用程式正在接聽預期的 TCP 和 UDP 連接埠。

在 Windows 和 Linux 型虛擬機上 ,使用 netstat -a 命令來顯示作用中的接聽埠。 檢查應用程式應該接聽之預期埠的輸出。 重新啟動應用程式,或將其設定為視需要使用預期的埠,並嘗試再次在本機存取應用程式。

步驟 2:從相同虛擬網路中的另一個 VM 存取應用程式

嘗試從不同的 VM 存取應用程式,但在相同的虛擬網路中,使用 VM 的主機名或其 Azure 指派的公用、私人或提供者 IP 位址。 對於使用傳統部署模型建立的虛擬機,請勿使用雲端服務的公用IP位址。

直接從 Azure VNet 中相同虛擬網路中另一個 V M 存取應用程式的圖表。

例如,如果應用程式是網頁伺服器,請嘗試從相同虛擬網路中不同 VM 上的瀏覽器存取網頁。

如果您可以存取應用程式,請移至 步驟 3

如果您無法存取應用程式,請確認下列設定:

在以 Windows 為基礎的虛擬機上,使用具有進階安全性的 Windows 防火牆來判斷防火牆規則是否排除應用程式的輸入和輸出流量。

步驟 3:從虛擬網路外部存取應用程式

嘗試從虛擬網路外部的計算機存取應用程式,作為應用程式執行所在的 VM。 使用不同的網路作為原始客戶端電腦。

從虛擬網路外部的計算機存取應用程式的圖表。

例如,如果應用程式是網頁伺服器,請嘗試從不在虛擬網路的計算機上執行的瀏覽器存取網頁。

如果您無法存取應用程式,請確認下列設定:

  • 針對使用傳統部署模型建立的 VM:

    • 確認 VM 的端點組態允許連入流量,特別是通訊協定 (TCP 或 UDP) 和公用和私人埠號碼。
    • 確認端點上的訪問控制清單 (ACL) 不會防止來自因特網的連入流量。
    • 如需詳細資訊,請參閱 如何設定虛擬機的端點。
  • 針對使用 Resource Manager 部署模型建立的 VM:

    • 確認 VM 的輸入 NAT 規則組態允許連入流量,特別是通訊協定 (TCP 或 UDP) 和公用和私人埠號碼。
    • 確認網路安全組允許輸入要求和輸出回應流量。
    • 如需詳細資訊,請參閱 什麼是網路安全組?

如果虛擬機或端點是負載平衡集的成員:

  • 確認探查通訊協定 (TCP 或 UDP) 和埠號碼正確無誤。
  • 如果探查通訊協定和埠與負載平衡集通訊協定和埠不同:
    • 確認應用程式正在接聽探查通訊協定 (TCP 或 UDP) 和埠號碼 (在 目標 VM 上使用 netstat –a )。
    • 確認目標 VM 上的主機防火牆允許輸入探查要求和輸出探查回應流量。

如果您可以存取應用程式,請確定您的因特網邊緣裝置允許:

  • 輸出應用程式會要求從用戶端電腦到 Azure 虛擬機的流量。
  • 來自 Azure 虛擬機的輸入應用程式回應流量。

步驟 4 如果您無法存取應用程式,請使用 IP 驗證來檢查設定

如需詳細資訊,請參閱 Azure 網路監視概觀

其他資源

針對 Windows 型 Azure 虛擬機的遠端桌面連線進行疑難解答

針對 Linux 型 Azure 虛擬機的安全殼層 (SSH) 連線進行疑難解答

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。