全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):本地裝置通過公網無法串連Redis的常見問題排查

更新時間:Aug 28, 2024

本地裝置無法通過公網遠端連線Redis的原因可能是使用了錯誤的串連地址,未將本地裝置的公網IP添加到Redis白名單,未使用正確的帳號密碼等。本文介紹本地裝置通過公網串連Redis的常見問題與解決辦法。

本地裝置公網串連問題排查流程圖

步驟一:報錯資訊是否為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命令檢測本地裝置與Redis的網路是否連通

操作方法

在本地裝置執行ping命令。

ping <host>

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

結果說明

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

    返回結果圖示

    Linux

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

    image

    Windows

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

    image

  • 如果返回資訊類似0 packets received,100.0% packet loss,說明網路未連通。

    請檢查您使用的串連地址是否為執行個體的公網訪問串連地址。

  • 如果返回資訊類似Unknown hostName or service not known,說明位址解析出現問題。

    請檢查您使用的串連地址是否有拼字錯誤。

常見原因

  • 使用了專用網路地址串連KVStore for Redis執行個體。

    本地裝置串連KVStore for Redis執行個體,需要使用公網訪問地址。

  • 串連地址拼字錯誤

    串連地址拼字錯誤或網域名稱解析失敗,導致無法解析出IP地址。

解決方案

  1. KVStore for Redis控制台執行個體資訊頁面串連資訊地區,查看KVStore for Redis執行個體的公網訪問串連地址。複製公網訪問的串連地址,重新執行ping命令。

    image

    重要
    • 如果控制台未顯示公網訪問的串連地址,請先申請串連地址。具體操作請參見申請公網串連地址

    • 雲原生版叢集架構直連模式執行個體不支援申請公網地址。

  2. 如果使用了公網訪問串連地址且串連地址拼字正確,仍無法ping通,請檢查是否網域名稱解析失敗,具體操作請參見解決因網域名稱解析失敗導致的串連問題

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

操作方法

在本地裝置執行telnet命令。

telnet <host> <port>

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

結果說明

如果返回Connected to ...或顯示telnet介面(如下所示),說明已建立串連。

重要

如果執行個體為經典版執行個體,telnet成功後,依然需要檢查白名單,在白名單中的IP才能訪問資料庫,排查白名單的步驟,請參見步驟四:檢查白名單

返回結果圖示

Linux

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

image

Windows

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

image

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

常見原因和解決方案

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

步驟四:檢查白名單

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

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

  • 如果您在本地裝置使用redis-cli串連Redis公網地址,報錯(error) ERR illegal address(error) ERR client ip is not in whitelist

常見原因

  • 白名單配置錯誤,即未將本地裝置的公網IP配置到白名單中。

  • 未配置白名單。

解決方案

  1. 查詢本地裝置的公網IP。

    • Linux作業系統:開啟終端,輸入curl ifconfig.me命令後斷行符號。

    • Windows作業系統:開啟命令提示字元,輸入curl ip.me命令後斷行符號。

    • macOS作業系統:開啟終端,輸入curl ifconfig.me命令後斷行符號。

  2. 將查到的公網IP添加到Redis白名單中。具體操作請參見設定IP白名單