全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):ECS無法串連Redis的常見問題排查

更新時間:Jun 19, 2024

ECS執行個體通過專用網路(內網)訪問Redis需要滿足同一地區、同一專用網路、已配置Redis白名單、正確的帳號密碼。本文介紹ECS串連Redis失敗的常見問題的解決辦法。

ECS串連問題排查流程圖

步驟一:報錯資訊是否為invalid passwordWRONGPASSNOAUTH Authentication required

如果報錯資訊為connection timed out或者無明確的報錯資訊,請跳過步驟一,直接查看步驟二。

報錯說明

報錯資訊為invalid passwordWRONGPASS invalid username-password pair或者NOAUTH Authentication required,說明帳號密碼錯誤。

解決方案

  • 使用<user>:<password>格式的密碼重新串連。例如自訂帳號為testaccount,密碼為Rp829dlwa,密碼需填寫為testaccount:Rp829dlwa

  • 如果使用<user>:<password>格式的密碼重新串連,仍然提示密碼錯誤,可能是密碼記錯了,請重設密碼後使用新密碼串連。重設密碼,請參見修改或重設密碼

步驟二:使用ping命令檢測ECS與Redis的網路是否連通

操作方法

登入ECS執行個體,執行ping命令。

ping <host>

樣本:ping r-bp1zx****.redis.rds.aliyuncs.com

結果說明

如果Ping通(如下所示),說明網路連通,可參考步驟三繼續排查。

返回結果圖示

Linux

Linux系統執行該命令後將會持續發送Ping請求,您可以按下鍵盤上的Ctrl+C鍵停止執行並統計結果,如下圖。

image

Windows

Windows系統會在4次Ping之後顯示測試結果,如下圖。

image

如果Ping不通,說明網路未連通。

常見的原因和解決方案

  • ECS執行個體與Redis執行個體可能不在同一VPC

    請確認ECS執行個體與Redis實是否在同一VPC,具體步驟請參見如何確認ECS和Redis的網路環境是否相同

    如果ECS執行個體與Redis執行個體不在同一VPC,您可以:

    • 切換ECS執行個體的VPC。具體步驟請參見更換ECS執行個體的VPC

    • 使用公網串連。申請公網地址的步驟,請參見申請公網串連地址

      重要

      專用網路與公網相比,具備更好的安全性與效能。因此,推薦您使用專用網路串連Redis執行個體。

  • ECS執行個體的安全性群組出方向的訪問規則可能禁止了Redis所屬的交換器IP或VPC IP。

    查看ECS安全性群組出方向是否存在協議類型為ICMP(IPv4)的規則,該規則是否禁止了Redis所屬的交換器IP或VPC IP。

    如果是,請允許訪問Redis所屬的交換器IP或VPC IP,具體操作請參見添加安全性群組規則

    說明

    查看交換器IP或VPC IP的方法:在Redis控制台執行個體資訊頁,在交換器專用網路右側,單擊ID。在新開啟的頁面中查看IPv4網段

如果按上述的方法,仍然串連失敗,請參考使用PING命令檢測ECS與Redis之間的網路連接

步驟三:使用telnet命令檢測服務連接埠是否可用

操作方法

登入ECS執行個體,執行telnet命令。

telnet <host> <port>

樣本:telnet r-bp1zx****.redis.rds.aliyuncs.com 6379

結果說明

如果返回Connected to ...或顯示telnet介面(如下所示),說明連接埠可用。

返回結果圖示

Linux

Linux系統telnet串連成功顯示介面。

image

Windows

Window系統telnet串連成功顯示介面。

image

如果顯示Connection timed out或Connect failed,表示串連失敗。

常見原因和解決方案

  • 白名單配置錯誤或未配置白名單。具體請參見步驟四:檢查白名單

  • ECS執行個體的安全性群組出方向的訪問規則可能禁止了Redis的連接埠。

    查看ECS安全性群組出方向是否存在協議類型為TCP的規則,該規則是否禁止了Redis的連接埠(預設為6379)。如果是,請允許訪問Redis的連接埠,具體操作請參見添加安全性群組規則

如果按上述的方法,仍然串連失敗,請參考使用telnet命令檢測Redis連接埠連通性

步驟四:檢查白名單

白名單錯誤或未配置白名單是串連失敗的常見原因。如果出現以下兩種現象,建議您排查白名單。

  • 網域名稱可以ping通,但telnet失敗。

  • 如果您在ECS上使用redis-cli串連Redis專用網路地址,報錯(error) ERR illegal address(error) ERR client ip is not in whitelist

常見原因

  • 配置了錯誤的IP地址。

    例如:ECS串連時使用了Redis專用網路的串連地址,但卻誤將ECS的公網IP(而不是主私網IP)添加到了Redis白名單;或者ECS串連時使用了Redis公網的串連地址,但卻誤將ECS的主私網IP添加到了Redis白名單

  • 未配置白名單。

解決方案一

通過串連診斷,診斷ECS執行個體的IP是否已添加到Redis白名單,並一鍵添加IP到白名單。具體操作請參見串連診斷

重要

選擇ECS IP地址時,請注意串連地址是私網地址(即專用網路串連地址)還是公網地址。

image

解決方案二

  1. 確認您使用的串連地址類型是專用網路類型還是公網訪問類型。具體操作請參見查看串連地址

  2. 如果串連地址是專用網路類型,請將ECS主私網IP添加到Redis白名單中。如果串連地址是公網訪問類型,請將ECS公網IP添加到Redis白名單中。具體操作請參見設定IP白名單

    說明

    查詢ECS執行個體的IP地址,請參見網路FAQ

相關文檔