網路連線測試 network-connectivity-test
網路連線測試是一種Cloud Manager診斷工具,可讓您在環境中啟用進階網路之前,以及在上線之前,先驗證進階網路和VPN設定。 使用它來驗證AEM必須連線的主機與連線埠(包括內部或私用端點)是否可透過進階網路將使用的相同連線路徑連線。
測試從屬於您程式的「進階網路」設定的 輸出Proxy基礎結構 執行,而不是從「作者」或「發佈」Pod執行。 它會使用與進階網路作用中時AEM所使用的相同輸出網路路徑。 該設計對 VPN 情境特別有用:您可在上線之前確認私人或內部部署系統的DNS解析、網路路由、防火牆規則和服務可用性。
如需布建VPN、專用輸出IP或彈性連線埠輸出的背景,請參閱為AEM as a Cloud Service設定進階網路。
何時使用此工具 when-to-use
- 在 之後,在 程式 層級和 之前 或在 環境上啟用它時,建立進階網路。
- 驗證 VPN 與您操作的私人或內部部署系統(例如內部主機名稱或私人IP位址)的連線。
- 當服務未如預期回應時,縮小防火牆或路由問題的DNS問題範圍。
先決條件 prerequisites
- Cloud Manager計畫。
- 已為程式建立進階網路基礎結構(請參閱設定進階網路)。
如何執行測試 how-to-run-a-test
-
在my.cloudmanager.adobe.com登入Cloud Manager並開啟您的組織和程式。
-
開啟程式的 環境 索引標籤。 在左側邊欄中,選取網路基礎結構。
-
在 網路基礎結構 頁面上,在資料表中找出您的基礎結構。 請選取資料列以開啟測試體驗,或開啟資料列動作功能表(
),然後選擇測試。
-
網路測試對話方塊開啟。 輸入 主機 和連線埠,選取測試,然後在結果區域中檢閱DNS解析、連線埠開啟、HTTP連線能力及連線能力。 選擇性動作(例如 複製到剪貼簿 和最近的測試歷史記錄)會出現在對話方塊中。 請參閱瞭解結果,瞭解如何解譯每個區段。
輸入欄位 input-fields
internal-api.example.com、10.0.1.50443步驟 test-steps
- 輸入 主機 和連線埠。
- 選取測試。 結果通常會在幾秒內顯示。
- 選用:使用 複製到剪貼簿 來擷取完整的JSON結果(適用於支援案例)。
- 可能會列出最近的測試以快速重新執行。
瞭解結果 understanding-results
此工具會報告多個維度。 它們一起說明目標是否可以從進階網路連線,以及HTTP感知檢查的行為方式。
DNS 解析 dns-resolution
ips: ["10.0.1.50"]error: "DNS resolution error: ..."連接埠開啟 port-open
Yes / trueNo / falseHTTP 連線 http-connectivity
已在 每個連線埠 上嘗試HTTP/HTTPS要求。 工具一律會先嘗試HTTPS,然後回溯為HTTP。 如果兩者皆不運作,則結果會對應至簡短、可讀的 錯誤 訊息(請參閱下表)。
成功輸出
protocol: "https"、status_code: 200、reason: "200 OK"protocol: "http"、status_code: 301、reason: "301 Moved Permanently"已分類的錯誤輸出
"Not an HTTP/HTTPS service""The service appears to be a non-HTTP service (e.g., database, message queue, or custom TCP). Use the port_open and reachability fields to verify connectivity.""Connection refused""The port is not accepting connections. Verify the service is running and listening on this port.""Connection timed out""The connection timed out. Check firewall rules and network routing.""No IPs resolved for host"200、301、302、403、404或500)都是連線的成功訊號,這表示 網路路徑 有效。 狀態代碼反映服務本身的回應,而非整體網路健康狀態。 對於非HTTP服務,工具會指出不是HTTP/HTTPS服務;使用 連線埠開啟 和 可連線性 作為這些服務的可靠指標。可觸及性 reachability
多個DNS解析器 multiple-dns-resolvers
如果您的進階網路基礎結構定義多個DNS解析器:
- 當 所有解析器傳回相同結果 時,您會看到標示為 的 單一合併
default結果。 - 當解析程式傳回 個不同的結果 時,每個解析程式的結果會分別顯示個 (標示為
resolver_1、resolver_2等)、和解析程式IP,所以您可以檢視哪個DNS伺服器造成不一致。
疑難排解 troubleshooting
以下案例會將您在工具中可能看到的與縮小原因的步驟配對。 如需說明相同情況的完整複製到剪貼簿 JSON,請參閱輸出範例。
DNS解析失敗 dns-failed
輸出
主機名稱未使用您的進階網路DNS設定來解析,因此工具無法測試連線埠。 在結果檢視中,DNS解析顯示錯誤字串,且 可連線性 報告DNS失敗:
DNS Resolution: error: "DNS resolution error: ..."
Reachability: "Unreachable: DNS resolution failed"
建議
- 驗證主機名稱是否正確 — 檢查錯字與您是否使用預期的DNS區域 (錯誤的區域是常見的錯誤)。
- 請確定您的DNS解析器 (在網路基礎結構中設定的解析器)可從進階網路CIDR範圍(工具和AEM用於傳出檢查的相同位址空間)連線。 如果您依賴私人DNS,這些伺服器必須可以透過VPN通道或路由公開給進階網路的網路位址空間連線。
- 確認您設定的DNS伺服器可以解析主機名稱 — Advanced Networking僅使用 僅 網路基礎結構設定中定義的解析器,不公用DNS (例如
8.8.8.8)。 如果您的內部DNS沒有該主機名稱的記錄,則解析會失敗。 - 對於VPN設定:確認DNS伺服器IP位址位於VPN位址空間內(建立通道的遠端網路CIDR)。 無法從「進階網路」連線到未透過VPN通道路由之子網路上的解析器。
DNS可以運作,但無法存取連線埠 dns-ok-port-blocked
輸出
此工具可以解析主機,但是連線埠的TCP無法成功。 摘要通常如下所示:
DNS Resolution: ips: ["10.0.1.50"]
Port Open: No
Reachability: "Unreachable: Port not accessible"
建議
- 檢閱目標服務上的防火牆和允許清單規則 — 必須允許來自進階網路基礎結構CIDR範圍的傳入流量(以及AEM使用的輸出IP位址)。 如果您使用VPN,請根據您的設計需要包含遠端網路CIDR。
- 確認服務正在執行,且正在聆聽您輸入測試的主機與連線埠。
- 對於VPN設定:確認通道已啟動、路由到達目標子網路,且目標位址位於透過VPN傳送的遠端網路位址空間。
- 在您的基礎結構上,檢閱網路安全性群組(NSG)、安全性規則或同等的專案,這些專案可能會封鎖進階網路與目標之間的連線埠。
- 確認連線埠號碼 — 確定處理序確實在聆聽您正在測試的連線埠。
測試顯示可連線,但AEM未連線 reachable-but-aem-fails
輸出
連線檢查本身成功。 簡短的摘要通常如下所示:
Port Open: Yes
Reachability: "Reachable"
這個結果表示從進階網路到您測試的主機與連線埠的路徑是開放的。 不保證AEM應用程式流量會使用該路徑:當您的程式碼執行時,服務記錄檔可能不會顯示來自您預期輸出IP的請求。
建議
- 應用程式程式碼必須設定為使用Proxy。 連線測試證實網路路徑有效,但AEM必須明確透過 進階網路Proxy 路由要求(例如,透過
AEM_PROXY_HOST環境變數)。 如果程式碼在沒有Proxy的情況下直接連線,流量不會流經進階網路基礎結構。 - 檢閱HTTP使用者端中的Proxy設定 - HTTP使用者端應使用相同的Proxy設定(
AEM_PROXY_HOST和適用的連線埠轉送)。 - 在環境層級驗證進階網路的連線埠轉送設定:在
portForwards中,每個專案都必須將portOrig對應到右側portDest目標主機上的。portOrig是您的AEM應用程式程式碼透過Proxy開啟輸出連線時,所連線至 的 連線埠。portDest是遠端處理序正在接聽的目標服務 上的 實際連線埠。 目標主機是轉送中所使用的服務 的 主機名稱或位址。 這三者都必須符合寫入應用程式以連線的方式。 - 檢查
nonProxyHosts。 如果目標主機列於該處,則要求略過該主機的Proxy ,且不會遵循您驗證的進階網路路徑。
HTTP顯示錯誤,但連線埠已開啟 http-error-port-open
輸出
TCP成功,但HTTP/HTTPS探查仍報告失敗。 摘要通常如下所示:
Port Open: Yes
HTTP Connectivity: error: "Connection error: ..." or "Both HTTPS and HTTP failed. ..."
Reachability: "Reachable"
建議
- 服務可能不使用HTTP或HTTPS,例如,原始TCP、gRPC或其他通訊協定。 當
Port open: Yes和Reachability: Reachable仍確認網路路徑運作時,HTTP探查可能會失敗。 使用這些欄位作為非HTTP服務的信任來源。 - 調查TLS和憑證組態。 如果HTTPS失敗但HTTP成功(有時以例如
HTTPS failed, HTTP succeeded的附註表示),服務可能有憑證問題,或可能只在該連線埠上提供HTTP。
請求逾時 timeout
輸出
{ "error": "Request timeout" }
建議
- 允許服務回應時間 — 檢查使用5秒的逾時。 回應速度較慢的目標,即使在其他情況下運作良好,也會逾時。
- 考慮網路延遲。 在VPN連線上,高延遲或不健康的通道可能會使往返超過限制;請檢閱通道狀態和路由。
- 再次執行測試。 單次網路故障可能會產生不會發生的逾時。
範例輸出 example-outputs
成功的HTTPS測試(例如連線埠443上的內部API) example-output-successful-https
{
"resolvers": [
{
"name": "default",
"dns_resolution": {
"ips": ["10.0.1.50"]
},
"port_open": true,
"http_connectivity": {
"protocol": "https",
"status_code": 200,
"reason": "200 OK"
},
"reachability": "Reachable"
}
]
}
成功的非HTTP服務測試(例如連線埠5432上的資料庫) example-output-successful-non-http
{
"resolvers": [
{
"name": "default",
"dns_resolution": {
"ips": ["10.0.1.50"]
},
"port_open": true,
"http_connectivity": {
"error": "Not an HTTP/HTTPS service",
"note": "The service appears to be a non-HTTP service (e.g., database, message queue, or custom TCP). Use the port_open and reachability fields to verify connectivity."
},
"reachability": "Reachable"
}
]
}
DNS解析失敗 example-output-dns-resolution-failure
{
"resolvers": [
{
"name": "default",
"dns_resolution": {
"error": "DNS resolution error: dial udp 10.0.0.2:53: i/o timeout"
},
"port_open": false,
"http_connectivity": {
"error": "DNS resolution failed"
},
"reachability": "Unreachable: DNS resolution failed"
}
]
}
無法存取連線埠(防火牆/服務關閉) example-output-port-not-accessible
{
"resolvers": [
{
"name": "default",
"dns_resolution": {
"ips": ["10.0.1.50"]
},
"port_open": false,
"http_connectivity": {
"error": "Connection error: dial tcp 10.0.1.50:443: i/o timeout"
},
"reachability": "Unreachable: Port not accessible"
}
]
}
重要注意事項 important-notes
此測試沒有執行的動作 what-this-test-does-not-do
- 測試不會從AEM作者或發佈Pod內部執行。 它從 輸出Proxy基礎結構 執行。 這樣會驗證網路層,而不是程式碼中的應用程式層級Proxy設定。
- 它不會驗證您的AEM應用程式的Proxy設定。 即使結果為
Reachable,仍必須將AEM程式碼設定為使用Proxy。 - 它本身不會驗證環境層級的連線埠轉送設定。 它會測試來自基礎結構路徑的原始連線。
- 它不會傳送自訂裝載。 HTTP測試發出基本
GET要求給/。
回應時間 response-time
- 一般:大約2到3秒。
- 最大值:大約五秒逾時。
- 所有DNS解析器和連線檢查並行執行。
HTTP與非HTTP服務 http-vs-non-http-services
工具會在每個連線埠上嘗試HTTP/HTTPS連線。 對於非HTTP服務(例如,連線埠5432上的PostgreSQL、3306上的MySQL、22上的SFTP、6379上的Redis),HTTP檢查可能會失敗,並出現連線錯誤 — 這是預期情況。 依賴Port open和Reachability確認這些服務的連線能力。