全部產品
Search
文件中心

ApsaraDB RDS:在與SQL Server建立串連時出現與網路相關的或特定於執行個體的錯誤

更新時間:Nov 26, 2024

本文介紹了ECS通過內網以及ECS以外的其他裝置通過外網無法訪問RDS SQL Server執行個體時的解決方案。

問題描述

使用ECS執行個體通過內網串連RDS SQL Server執行個體時,提示以下錯誤資訊。

無法串連到XXX。Cannot connect to XXX。
在與 SQL Server 建立串連時出現與網路相關的或特定於執行個體的錯誤。未找到或無法訪問伺服器。請驗證執行個體名稱是否正確並且 SQL Server 已配置為允許遠端連線。 (provider: TCP Provider, error: 0 - 由於串連方在一段時間後沒有正確回覆或串連的主機沒有反應,串連嘗試失敗。) (Microsoft SQL Server,錯誤:10060或258)

解決方案

說明

阿里雲提醒您:

  • 如果您對執行個體或資料有修改、變更等風險操作,務必注意執行個體的容災、容錯能力,確保資料安全。

  • 如果您對執行個體(包括但不限於ECS、RDS)等進行配置與資料修改,建議提前建立快照或開啟RDS記錄備份等功能。

  • 如果您在阿里雲平台授權或者提交過登入帳號、密碼等安全資訊,建議您及時修改。

ECS通過內網無法訪問RDS的解決辦法

  1. 檢查ECS執行個體的內網IP地址是否已添加到RDS執行個體的白名單。

    通過RDS內網地址串連RDS執行個體前,需要先將ECS內網IP添加到RDS白名單。相關操作,請參見如何查詢ECS執行個體的IP地址如何設定RDS白名單

    說明

    如果僅將ECS外網IP地址添加到RDS白名單,則無法通過內網串連RDS。

  2. 檢查ECS和RDS執行個體是否位於不同的地區。

    ECS執行個體和RDS執行個體需要位於同一地區才能內網互連。可以是同一地區的相同或不同可用性區域。

    點擊查看RDS執行個體和ECS執行個體地區的方法

    進入RDS執行個體詳情頁,查看執行個體所在地區。

    image

    查看ECS執行個體所在地區。

    image

    如果ECS執行個體和RDS執行個體位於不同的地區,則無法直接通過內網互連,請參見以下方法處理:

    • 方法一:

      • 將ECS執行個體釋放,重新購買與RDS執行個體同一地區的執行個體。

      • 將RDS執行個體釋放,重新購買與ECS執行個體同一地區的執行個體。

    • 方法二:

      ECS執行個體使用RDS執行個體的公網串連地址串連RDS執行個體,這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請SQL Server外網地址

    • 方法三:

      使用雲企業網打通跨地區VPC網路(前提是源和目標的網路類型都是Virtual Private Cloud),詳情請參見雲企業網入門概述

  3. 檢查ECS和RDS的網路類型是否相同(都是專用網路或都是傳統網路)。

    點擊查看RDS執行個體和ECS執行個體網路類型的方法

    進入RDS執行個體詳情頁,查看執行個體網路類型。

    image

    查看ECS執行個體網路類型。

    image

    如果網路類型不同,一個是傳統網路,一個是專用網路,請參見以下方法處理:

    重要

    阿里雲各產品傳統網路正在逐步下線中,對於RDS執行個體和ECS執行個體,建議您儘快將傳統網路切換到VPC網路。具體詳情,請參見【產品/功能變更】RDS資料庫傳統網路下線計劃【下線公告】停止提供阿里雲傳統網路類型的ECS執行個體相關服務

    • ECS執行個體採用專用網路而RDS執行個體採用傳統網路的情境:

      • 方法一(推薦):將RDS執行個體從傳統網路切換為專用網路(需要切換到待串連的ECS執行個體所在的VPC)。具體操作,請參見更改網路類型

      • 方法二:ECS執行個體使用RDS執行個體的公網地址串連RDS執行個體,這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請SQL Server外網地址

    • ECS執行個體採用傳統網路而RDS執行個體採用專用網路的情境:

  4. 如果ECS和RDS執行個體的網路類型都是專用網路,則檢查ECS與RDS執行個體是否位於不同的VPC。

    點擊查看RDS執行個體和ECS執行個體VPC ID的方法

    查看RDS執行個體的VPC ID。

    image

    查看ECS執行個體的VPC ID。

    image

    如果專用網路不同,請參見以下方法進行處理:

  5. 檢查白名單是否設定成了0.0.0.0,正確格式應該為0.0.0.0/0

    重要

    0.0.0.0/0表示允許任何IP訪問RDS執行個體,有安全風險,請謹慎使用。

  6. 檢查ECS執行個體中配置的RDS內網地址和連接埠是否正確。更多詳情,請參見查看內外網地址和連接埠

ECS以外的裝置無法訪問RDS的解決辦法

說明

建議在訪問RDS時使用內網網域名稱而不是IP地址,IP地址可能隨著執行個體的遷移而變動。

ECS以外的裝置訪問RDS時,只能通過外網串連。如果串連失敗,請參見如下方法解決。

  1. 檢查您使用的串連地址是否為RDS的內網地址。

    您需要修改串連地址為RDS外網地址。如何擷取外網地址,請參見查看外網串連地址

    說明

    ECS和DMS以外的裝置無法通過內網訪問RDS(除非使用物理專線)。

  2. 檢查是否已設定RDS白名單。如果未設定,請參見設定白名單

  3. 檢查白名單是否設定成了0.0.0.0,正確格式為0.0.0.0/0

    重要

    0.0.0.0/0表示允許任何IP訪問RDS執行個體,有安全風險,請謹慎使用。

  4. 如果您已設定白名單,但還是串連失敗,很可能是因為您在白名單中添加的裝置公網IP地址並非裝置真正的出口IP地址。原因如下所示:

    • 公網IP地址不固定,可能會變動。

    • IP地址查詢工具或網站查詢的公網IP地址不準確。

    說明

    如何確認裝置公網IP地址,請參見SQL Server如何確定外部伺服器/用戶端的公網IP地址

適用於

雲資料庫RDS SQL Server版