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

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

如果您在使用 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 的主機名或其 Azure 指派的公用、私人或提供者 IP 位址,從不同的 VM,但在相同的虛擬網路中存取應用程式。 對於使用傳統部署模型建立的虛擬機,請勿使用雲端服務的公用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 虛擬機的遠端桌面連線進行疑難解答

針對安全殼層 (SSH) 連線至以 Linux 為基礎的 Azure 虛擬機進行疑難解答

與我們連絡,以取得說明

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