連線華為雲的Redis服務報錯“Error: Connection reset by peer”

lhrbest發表於2020-03-17

連線華為雲的Redis服務報錯“Error: Connection reset by peer”


解決辦法:需要安裝 stunnel代理 ,這個工具的原理是可以簡單的看做代理,把遠端請求用stunnel,返回後用本地對映一個埠。 為什麼會有stunnel,原因是以前的一些客戶端本身不支援SSL,尤其是一些證照等等,那麼stuunel很好解決了這一部分客戶端的問題,並通過代理使客戶端無感知。當然, stunnel可以安裝在linux上,也可以在windows上,只要是一臺客戶端可以訪問的主機就行。



連線Redis的客戶端:Redis Desktop Manager


Redis中文官網: http://www.redis.cn/documentation.html



參考: https://support.huaweicloud.com/usermanual-dcs/dcs-zh-ug-180316001.html


Redis客戶端可通過 公網連線Redis例項。該功能便於開發人員在本地搭建開發或測試環境,提高開發效率。生產環境(正式環境)中,請通過VPC內連線方式訪問Redis例項,保障訪問效率。

本節從以下幾種場景介紹如何搭建一個本地環境與Redis例項間的網路通道,以Redis-cli為例演示通過公網連線Redis例項,您可以根據實際情況選擇其中一種方式進行操作:

連線華為雲的Redis服務報錯“Error: Connection reset by peer”說明: 

目前只有Redis3.0版本密碼模式的例項支援通過 公網訪問Redis例項,其他版本暫不支援公網訪問。

前提條件

使用Redis-cli客戶端通過 公網訪問Redis例項時:

  • 已成功申請密碼模式的Redis例項,且狀態為“執行中”。
  • Redis例項已開啟公網訪問功能,具體可參考 開啟Redis例項的公網訪問
  • 如果訪問Redis例項需要使用證照,可根據 檢視快取例項資訊,進入到快取例項詳情頁面提前下載該證照。

公網連線關閉SSL加密的Redis例項(Linux版)

  1. 確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問6379埠。

    當SSL加密功能關閉時,必須允許6379埠被外部地址訪問。放開後,即可直接訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?

  2. 檢視並獲取待連線Redis例項的公網訪問地址。

    具體步驟請參見 檢視快取例項資訊

  3. 登入本地Linux裝置。
  4. 獲取Redis客戶端原始碼,下載路徑為http://download.redis.io/releases/redis-3.0.7.tar.gz。

    wget http://download.redis.io/releases/redis-3.0.7.tar.gz

    連線華為雲的Redis服務報錯“Error: Connection reset by peer”說明: 

    您也可以使用yum、apt方式安裝Redis客戶端。

    • yum方式,執行命令: yum install redis
    • apt方式,執行命令: apt install redis-server

  5. 執行如下命令,解壓Redis客戶端原始碼包。

    tar -xzf redis-3.0.7.tar.gz

  6. 進入Redis目錄並編譯Redis客戶端原始碼。

    cd redis-3.0.7

    make

  7. 執行以下命令連線Redis例項。

    cd src

    ./redis-cli -h {公網訪問IP} -p 6379

    其中,{公網訪問IP}替換為 2中獲取的Redis例項的IP即可。示例如下:

    ./redis-cli -h 49.**.**.211 -p 6379

  8. 輸入密碼,校驗通過後才可進行快取資料讀寫。

    auth <password>

    其中, <password>為建立Redis例項時自定義的密碼,請按實際情況修改後執行。

    連線成功後,回顯資訊如下:

    OK 
    49.**.**.211:6379>

公網連線關閉SSL加密的Redis例項(Windows版)

  1. 確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問6379埠。

    當SSL加密功能關閉時,必須允許6379埠被外部地址訪問。放開後,即可直接訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?

  2. 檢視並獲取待連線Redis例項的公網訪問地址。

    具體步驟請參見 檢視快取例項資訊

  3. 獲取Redis客戶端安裝包到本地Windows裝置,並解壓安裝包。

    Windows版本的Redis客戶端安裝包,下載請單擊 這裡

  4. 開啟命令提示符工具 cmd.exe,並執行以下命令,進入Redis客戶端安裝包的解壓目錄。

    以解壓目錄D:\redis-64.3.0.503為例,命令如下:

    D:

    cd D:\redis-64.3.0.503

  5. 執行以下命令連線Redis例項。

    redis-cli -p 6379 -a <password>

    <password>為建立Redis例項時自定義的密碼,請按實際情況修改後執行。

    連線成功後,回顯資訊如下:

    49.**.**.211:6379>

    輸入“info”可正常返回Redis例項資訊。

公網連線開啟SSL加密的Redis例項(Linux版)

  1. 確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問36379埠。

    當SSL加密功能開啟時,必須允許36379埠被外部地址訪問。需要安裝Stunnel客戶端,然後訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?

  2. 檢視並獲取待連線Redis例項的公網訪問地址。

    具體步驟請參見 檢視快取例項資訊

  3. 登入本地Linux裝置。
  4. 安裝Stunnel客戶端。

    這裡主要介紹Stunnel客戶端的幾種常見安裝方法,您可以選擇其中一種方式進行操作。

    連線華為雲的Redis服務報錯“Error: Connection reset by peer”說明: 

    推薦使用apt和yum兩種安裝方式,常見Linux系統,一般至少支援其中一種。

    其他常見系統下的Stunnel客戶端安裝請參考:

    “Mac下的Stunnel客戶端安裝”

    • apt-get方式安裝。

      apt-get管理deb格式的軟體包,適用於Debian類作業系統,如Ubuntu。命令如下:

      apt install stunnel 或 apt-get install stunnel

      如果命令執行後提示找不到Stunnel,可以嘗試執行 apt update,更新配置後再安裝Stunnel。

    • yum方式安裝。

      管理rpm格式的軟體包,適用於Fedora、CentOS、Red Hat等作業系統。命令如下:

      yum install stunnel

  5. 開啟Stunnel配置檔案stunnel.conf。

    • 如果是apt-get安裝方式,預設路徑為/etc/stunnel/stunnel.conf。

      如果路徑不存在或者路徑下無配置檔案,可新增。

    • 如果是yum安裝方式,預設路徑為/usr/local/stunnel/stunnel.conf。

      如果路徑不存在或者路徑下無配置檔案,可新增。

    連線華為雲的Redis服務報錯“Error: Connection reset by peer”說明: 
    • 如果不確定配置檔案應該儲存在哪,可以在安裝後直接輸入stunnel命令,獲取檔案路徑提示。
    • 配置檔案可以儲存在任何路徑,在Stunnel啟動的時候指定該配置檔案即可。

  6. 在配置檔案stunnel.conf中新增如下內容,然後儲存退出。

    debug = 4
    output = /var/log/stunnel.log
    sslVersion = all
    [redis-client]
    client = yes
    accept = 8000
    connect = {公網訪問地址}
    CAfile = /etc/stunnel/dcs-ca.cer
    引數需要根據以下說明修改,其他引數不用修改:
    • client值固定填 yes,表示為Stunnel客戶端。
    • CAfile為CA證照,為可選引數。如果需要,請根據 檢視快取例項資訊,進入到快取例項詳情頁面下載該證照,下載之後解壓得到dcs-ca.cer證照;如果不需要,此引數請刪除。
    • accept為Stunnel監聽埠,可以自定義。Redis客戶端訪問快取例項時填寫此埠。
    • connect為Stunnel轉發地址與埠,此處填Redis快取例項的彈性IP與埠,替換為步驟 2獲取的公網訪問地址即可。

    配置示例如下:

    [redis-client]
    client = yes
    CAfile = D:\tmp\dcs\dcs-ca.cer
    accept = 8000
    connect = 49.**.**.211:36379

  7. 執行以下命令,啟動stunnel服務。

    stunnel / {customdir}/stunnel.conf

    其中{customdir}為 5中stunnel.conf配置檔案的儲存路徑。命令示例如下:

    stunnel /etc/stunnel/stunnel.conf

    連線華為雲的Redis服務報錯“Error: Connection reset by peer”說明: 

    Ubuntu環境下,啟動命令可以使用 /etc/init.d/stunnel4 start。Stunnel4.x的版本,服務/程式名為stunnel4。

    啟動後可執行 ps -ef|grep stunnel確認程式是否正常執行。

  8. 執行以下命令,檢視Stunnel是否已經被監聽。

    netstat -plunt |grep  8000|grep "LISTEN"

    其中,8000替換為 6中accept欄位配置的Stunnel監聽埠。

    返回資訊有包含8000的埠的記錄行,表示stunnel客戶端正常執行。Redis客戶端連線“127.0.0.1:8000”,Stunnel會將請求轉發給DCS的Redis例項。

  9. 連線Redis例項。

    1. 登入本地Linux裝置。
    2. 獲取Redis客戶端原始碼,下載路徑為http://download.redis.io/releases/redis-3.0.7.tar.gz。

      wget http://download.redis.io/releases/redis-3.0.7.tar.gz

      連線華為雲的Redis服務報錯“Error: Connection reset by peer”說明: 

      您也可以使用yum、apt方式安裝Redis客戶端。

      • yum方式,執行命令: yum install redis
      • apt方式,執行命令: apt install redis-server
    3. 執行如下命令,解壓Redis客戶端原始碼包。

      tar -xzf redis-3.0.7.tar.gz

    4. 進入Redis目錄並編譯Redis客戶端原始碼。

      cd redis-3.0.7

      make

    5. 執行以下命令連線Redis例項。

      cd src

      ./redis-cli -p  8000

      其中“8000”為 6中accept欄位配置的Stunnel監聽埠。

    6. 輸入密碼,校驗通過後才可進行快取資料讀寫。

      auth <password>

      其中, <password>為建立Redis例項時自定義的密碼,請按實際情況修改後執行。

      連線成功後,回顯資訊如下:

      OK 
      127.0.0.1:8000>

公網連線開啟SSL加密的Redis例項(Windows版)

  1. 確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問36379埠。

    當SSL加密功能開啟時,必須允許36379埠被外部地址訪問。放開後,需要安裝Stunnel客戶端,然後訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?

  2. 檢視並獲取待連線Redis例項的公網訪問地址。

    具體步驟請參見 檢視快取例項資訊

  3. 下載Stunnel安裝包。從 https://www.stunnel.org/downloads.html下載最新版本的Windows版Stunnel安裝包(以exe結尾的安裝包,例如,stunnel-5.44-win32-installer.exe)到本地Windows裝置。
  4. 執行Stunnel安裝程式,安裝Stunnel客戶端。
  5. 配置Stunnel客戶端。在工作列單擊圖示 連線華為雲的Redis服務報錯“Error: Connection reset by peer”右鍵,選擇“Edit Configuration”,新增如下配置內容,然後儲存退出。

    [redis-client]
    client = yes
    CAfile = D:\tmp\dcs\dcs-ca.cer
    accept = 8000
    connect = {公網訪問地址}
    引數需要根據以下說明修改,其他引數不用修改:
    • client值固定填yes,表示為Stunnel客戶端。
    • CAfile為CA證照,為可選引數。如果需要,請根據 檢視快取例項資訊,進入到Redis例項詳情頁面下載該證照,下載之後解壓得到dcs-ca.cer證照;如果不需要,可不配置,刪除此引數。
    • accept為Stunnel監聽埠,可以自定義。Redis客戶端訪問例項時填寫此埠。
    • connect為服務端連線地址,此處填Redis例項的彈性公網IP與埠,替換為步驟 2獲取的公網訪問地址即可。

    已開啟了SSL加密功能的配置為例,如下所示:

    [redis-client]
    client = yes
    CAfile = D:\tmp\dcs\dcs-ca.cer
    accept = 8000
    connect = 49.**.**.211:36379

  6. 在工作列單擊圖示 連線華為雲的Redis服務報錯“Error: Connection reset by peer”右鍵,選擇“Reload Configuration”。
  7. 開啟命令提示符工具 cmd.exe,執行以下命令,檢視127.0.0.1:8000是否已經被監聽。

    netstat -an |find " 8000"

    假設客戶端的監聽埠配置為“8000”。

    返回列表行中顯示有“127.0.0.1:8000”,狀態為“LISTENING”,表示stunnel客戶端正常執行。Redis客戶端連線“127.0.0.1:8000”,stunnel會將請求轉發給DCS的Redis例項。

  8. 連線Redis例項。

    1. 獲取Redis客戶端安裝包到本地Windows裝置,並解壓安裝包。

      Windows版本的Redis客戶端安裝包,下載請單擊 這裡

    2. 開啟命令提示符工具 cmd.exe,並執行以下命令,進入Redis客戶端安裝包的解壓目錄。

      以解壓目錄D:\redis-64.3.0.503為例,命令如下:

      D:

      cd D:\redis-64.3.0.503

    3. 執行以下命令連線Redis例項。

      redis-cli -p 8000 -a <password>

      其中“8000”為 5中accept欄位配置的Stunnel監聽埠; <password>為建立Redis例項時自定義的密碼,請按實際情況修改後執行。

      連線成功後,回顯資訊如下:

      127.0.0.1:8000>

      輸入“info”可正常返回Redis例項資訊。如果不能正常返回,或者連線異常斷開,可在工作列找到Stunnel圖示,並右鍵單擊,選擇“Show Log Window”,開啟Stunnel客戶端的日誌檢視原因。






About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr)上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文CSDN地址: https://blog.csdn.net/lihuarongaini

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群號: 230161599 、618766405

● 微 信群:可加我微 信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2020-03-01 06:00 ~ 2020-03-31 24:00 在西安完成

● 最新修改時間:2020-03-01 06:00 ~ 2020-03-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁https://lhr.ke.qq.com/

........................................................................................................................

使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2680916/,如需轉載,請註明出處,否則將追究法律責任。

相關文章