ECS執行個體通過專用網路(內網)訪問Redis需要滿足同一地區、同一專用網路、已配置Redis白名單、正確的帳號密碼。本文介紹ECS串連Redis失敗的常見問題的解決辦法。
ECS串連問題排查流程圖
步驟一:報錯資訊是否為invalid password
、WRONGPASS
、NOAUTH Authentication required
如果報錯資訊為connection timed out
或者無明確的報錯資訊,請跳過步驟一,直接查看步驟二。
報錯說明
報錯資訊為invalid password
、WRONGPASS 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通(如下所示),說明網路連通,可參考步驟三繼續排查。
如果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介面(如下所示),說明連接埠可用。
如果顯示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地址時,請注意串連地址是私網地址(即專用網路串連地址)還是公網地址。
解決方案二
相關文檔
如果您想瞭解本地裝置串連ECS失敗的原因和排查方法,請參見Redis串連問題排查流程。
如果您想跨阿里雲帳號(主帳號)串連Redis執行個體和ECS執行個體,請參見跨帳號串連Redis與ECS執行個體。