連線華為雲的Redis服務報錯“Error: Connection reset by peer”
連線華為雲的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例項,您可以根據實際情況選擇其中一種方式進行操作:
- 公網連線關閉SSL加密的Redis例項(Linux版)
- 公網連線關閉SSL加密的Redis例項(Windows版)
- 公網連線開啟SSL加密的Redis例項(Linux版)
- 公網連線開啟SSL加密的Redis例項(Windows版)
目前只有Redis3.0版本密碼模式的例項支援透過 公網訪問Redis例項,其他版本暫不支援公網訪問。
前提條件
使用Redis-cli客戶端透過 公網訪問Redis例項時:
- 已成功申請密碼模式的Redis例項,且狀態為“執行中”。
- Redis例項已開啟公網訪問功能,具體可參考 開啟Redis例項的公網訪問。
- 如果訪問Redis例項需要使用證照,可根據 檢視快取例項資訊,進入到快取例項詳情頁面提前下載該證照。
公網連線關閉SSL加密的Redis例項(Linux版)
-
確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問6379埠。
當SSL加密功能關閉時,必須允許6379埠被外部地址訪問。放開後,即可直接訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?。
-
檢視並獲取待連線Redis例項的公網訪問地址。
具體步驟請參見 檢視快取例項資訊。
- 登入本地Linux裝置。
-
獲取Redis客戶端原始碼,下載路徑為。
wget
說明:您也可以使用yum、apt方式安裝Redis客戶端。
- yum方式,執行命令: yum install redis
- apt方式,執行命令: apt install redis-server
-
執行如下命令,解壓Redis客戶端原始碼包。
tar -xzf redis-3.0.7.tar.gz
-
進入Redis目錄並編譯Redis客戶端原始碼。
cd redis-3.0.7
make
-
執行以下命令連線Redis例項。
cd src
./redis-cli -h {公網訪問IP} -p 6379
其中,{公網訪問IP}替換為 2中獲取的Redis例項的IP即可。示例如下:
./redis-cli -h 49.**.**.211 -p 6379
-
輸入密碼,校驗透過後才可進行快取資料讀寫。
auth <password>
其中, <password>為建立Redis例項時自定義的密碼,請按實際情況修改後執行。
連線成功後,回顯資訊如下:
OK 49.**.**.211:6379>
公網連線關閉SSL加密的Redis例項(Windows版)
-
確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問6379埠。
當SSL加密功能關閉時,必須允許6379埠被外部地址訪問。放開後,即可直接訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?。
-
檢視並獲取待連線Redis例項的公網訪問地址。
具體步驟請參見 檢視快取例項資訊。
-
獲取Redis客戶端安裝包到本地Windows裝置,並解壓安裝包。
Windows版本的Redis客戶端安裝包,下載請單擊 。
-
開啟命令提示符工具
cmd.exe,並執行以下命令,進入Redis客戶端安裝包的解壓目錄。
以解壓目錄D:\redis-64.3.0.503為例,命令如下:
D:
cd D:\redis-64.3.0.503
-
執行以下命令連線Redis例項。
redis-cli -p 6379 -a <password>
<password>為建立Redis例項時自定義的密碼,請按實際情況修改後執行。
連線成功後,回顯資訊如下:
49.**.**.211:6379>
輸入“info”可正常返回Redis例項資訊。
公網連線開啟SSL加密的Redis例項(Linux版)
-
確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問36379埠。
當SSL加密功能開啟時,必須允許36379埠被外部地址訪問。需要安裝Stunnel客戶端,然後訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?。
-
檢視並獲取待連線Redis例項的公網訪問地址。
具體步驟請參見 檢視快取例項資訊。
- 登入本地Linux裝置。
-
安裝Stunnel客戶端。
這裡主要介紹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
- apt-get方式安裝。
-
開啟Stunnel配置檔案stunnel.conf。
- 如果是apt-get安裝方式,預設路徑為/etc/stunnel/stunnel.conf。
如果路徑不存在或者路徑下無配置檔案,可新增。
- 如果是yum安裝方式,預設路徑為/usr/local/stunnel/stunnel.conf。
如果路徑不存在或者路徑下無配置檔案,可新增。
說明:- 如果不確定配置檔案應該儲存在哪,可以在安裝後直接輸入stunnel命令,獲取檔案路徑提示。
- 配置檔案可以儲存在任何路徑,在Stunnel啟動的時候指定該配置檔案即可。
- 如果是apt-get安裝方式,預設路徑為/etc/stunnel/stunnel.conf。
-
在配置檔案stunnel.conf中新增如下內容,然後儲存退出。
debug = 4 output = /var/log/stunnel.log sslVersion = all [redis-client] client = yes accept = 8000 connect = {公網訪問地址} CAfile = /etc/stunnel/dcs-ca.cer
引數需要根據以下說明修改,其他引數不用修改:配置示例如下:
[redis-client] client = yes CAfile = D:\tmp\dcs\dcs-ca.cer accept = 8000 connect = 49.**.**.211:36379
-
執行以下命令,啟動stunnel服務。
stunnel / {customdir}/stunnel.conf
其中{customdir}為 5中stunnel.conf配置檔案的儲存路徑。命令示例如下:
stunnel /etc/stunnel/stunnel.conf
說明:Ubuntu環境下,啟動命令可以使用 /etc/init.d/stunnel4 start。Stunnel4.x的版本,服務/程式名為stunnel4。
啟動後可執行 ps -ef|grep stunnel確認程式是否正常執行。
-
執行以下命令,檢視Stunnel是否已經被監聽。
netstat -plunt |grep 8000|grep "LISTEN"
其中,8000替換為 6中accept欄位配置的Stunnel監聽埠。
返回資訊有包含8000的埠的記錄行,表示stunnel客戶端正常執行。Redis客戶端連線“127.0.0.1:8000”,Stunnel會將請求轉發給DCS的Redis例項。
-
連線Redis例項。
- 登入本地Linux裝置。
- 獲取Redis客戶端原始碼,下載路徑為。
wget
說明:您也可以使用yum、apt方式安裝Redis客戶端。
- yum方式,執行命令: yum install redis
- apt方式,執行命令: apt install redis-server
- 執行如下命令,解壓Redis客戶端原始碼包。
tar -xzf redis-3.0.7.tar.gz
- 進入Redis目錄並編譯Redis客戶端原始碼。
cd redis-3.0.7
make
- 執行以下命令連線Redis例項。
cd src
./redis-cli -p 8000
其中“8000”為 6中accept欄位配置的Stunnel監聽埠。
- 輸入密碼,校驗透過後才可進行快取資料讀寫。
auth <password>
其中, <password>為建立Redis例項時自定義的密碼,請按實際情況修改後執行。
連線成功後,回顯資訊如下:
OK 127.0.0.1:8000>
公網連線開啟SSL加密的Redis例項(Windows版)
-
確認Redis例項的安全組入方向規則是否配置正確,即是否允許外部地址訪問36379埠。
當SSL加密功能開啟時,必須允許36379埠被外部地址訪問。放開後,需要安裝Stunnel客戶端,然後訪問Redis的公網地址。具體請參考 如何選擇和配置安全組?。
-
檢視並獲取待連線Redis例項的公網訪問地址。
具體步驟請參見 檢視快取例項資訊。
- 下載Stunnel安裝包。從 下載最新版本的Windows版Stunnel安裝包(以exe結尾的安裝包,例如,stunnel-5.44-win32-installer.exe)到本地Windows裝置。
- 執行Stunnel安裝程式,安裝Stunnel客戶端。
-
配置Stunnel客戶端。在工作列單擊圖示
右鍵,選擇“Edit Configuration”,新增如下配置內容,然後儲存退出。
[redis-client] client = yes CAfile = D:\tmp\dcs\dcs-ca.cer accept = 8000 connect = {公網訪問地址}
引數需要根據以下說明修改,其他引數不用修改:已開啟了SSL加密功能的配置為例,如下所示:
[redis-client] client = yes CAfile = D:\tmp\dcs\dcs-ca.cer accept = 8000 connect = 49.**.**.211:36379
- 在工作列單擊圖示 右鍵,選擇“Reload Configuration”。
-
開啟命令提示符工具
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例項。
-
連線Redis例項。
- 獲取Redis客戶端安裝包到本地Windows裝置,並解壓安裝包。
Windows版本的Redis客戶端安裝包,下載請單擊 。
- 開啟命令提示符工具
cmd.exe,並執行以下命令,進入Redis客戶端安裝包的解壓目錄。
以解壓目錄D:\redis-64.3.0.503為例,命令如下:
D:
cd D:\redis-64.3.0.503
- 執行以下命令連線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客戶端的日誌檢視原因。
- 獲取Redis客戶端安裝包到本地Windows裝置,並解壓安裝包。
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寶典今日頭條號地址: ........................................................................................................................ ● 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 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店: ● 小麥苗出版的資料庫類叢書: 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Azure Cache for Redis】Python Djange-Redis連線Azure Redis服務遇上(104, 'Connection reset by peer')RedisPython
- Connection reset by peer: socket write errorError
- 【Azure Redis 快取】 Python連線Azure Redis, 使用redis.ConnectionPool 出現 "ConnectionResetError: [Errno 104] Connection reset by peer"Redis快取PythonError
- TNS-12547,Linux Error: 104: Connection reset by peerLinuxError
- TNS-12547 Linux Error: 104: Connection reset by peerLinuxError
- java.io.IOException: Connection reset by peerJavaException
- Kubelet 錯誤日誌 broken pipe 和 connection reset by peer 的原因分析
- go grpc: connection reset by peer 的一種解決方案GoRPC
- 錯誤 101 (net::ERR_CONNECTION_RESET):連線已重置
- Sqoop從Oracle抽數錯:IO Error: Connection resetOOPOracleError
- TNS-12547TNS-12560 TNS-00517 Linux Error: 104: Connection reset by peerLinuxError
- 華為釋出全球首款基於雲的Cloud VR連線服務CloudVR
- 阿里雲站點升級提示:OpenSSL SSL_connect: Connection reset by peer in connection to www.pbootcms.com:443阿里boot
- IoT雲服務連線性的方式
- SecureCRT連線CentOS不間斷出現“Connection was reset.”SecurecrtCentOS
- JMETER java.net.SocketException: Connection reset 報錯解決方案JMeterJavaException
- ssh連線Linux收到The remote system refused the connection報錯LinuxREM
- weblogic連線池重置(Connection reset)問題解決方案Web
- 記錄redis佇列read error on connection to錯誤Redis佇列Error
- git連線華為雲DevCloudGitdevCloud
- 免密scp解決ssh_exchange_identification:read connection reset by peer 原因IDE
- 【Redis】slaveof 報錯 Background transfer errorRedisError
- Java專案連線資料庫Mysql報錯create connection SQLExceptionJava資料庫MySqlException
- 華為釋出好望雲服務
- 使用微信小程式連線到 MQTT 雲服務微信小程式MQQT
- Jedis 連線 Redis報JedisConnectionException: java.net.ConnectException: Connection refusedRedisExceptionJava
- SSH服務連線
- 使用免費的Oracle雲服務-遠端連線ATPOracle
- tomcat連線池不夠-java.sql.SQLException: Io 異常: Connection resetTomcatJavaSQLException
- 連線oracle報錯Oracle
- 分銷的智慧變局,華為好望雲服務的鐵索連環
- redis報錯Windows error 0x70RedisWindowsError
- 連線oracle資料庫時,報錯:{dataSource-1} init errorOracle資料庫Error
- Connection (建立連線)
- 華為聯機對戰服務玩家掉線重連案例總結
- tomcat 啟動應用報錯:java.sql.SQLException: Io 異常: Connection resetTomcatJavaSQLException
- 什麼是雲連線?雲學院帶你瞭解華為雲連線知識
- [轉]Android Studio匯入工程報錯 Error:Cause: peer not authenticated 解決方案AndroidError