Redis連接出現Error: Connection reset by peer的問題是由於使用Redis的安全模式


現在網上一查出現安全模式的連接,基本都是要關閉服務端的操作,其實這種方式是不正確的,最有效的解決方式是使用stunnel進行安全模式的連接。

我碰到的問題是微軟雲(其實我不想用!)連接Redis,默認采用6380做為SSL端口,而微軟雲同時還會啟用非SSL端口6379,如果嫌其麻煩,可以用非SSL進行連接。

下面是解決方法:

1、安裝stunnel,這個工具的原理是可以簡單的看做代理,把遠程請求用stunnel,返回后用本地映射一個端口。

# Mac
brew instsall stunnel
# CentOS
yum install -y stunnel

2、配置

# Mac配置文件路徑
vi /usr/local/etc/stunnel/stunnel.conf
# CentOS配置文件路徑
vi /etc/stunnel/stunnel.conf

配置如下:

[redis-cli]
client = yes
accept = 127.0.0.1:6380
connect = <Redis 主機名稱>:6380

運行stunnel

stunnel

3、連接

注意,此時的連接應該為localhost,而不是上面的地址。

redis-cli.exe -p 6380 –a <訪問密鑰>

 

總結:

其實上面可以看出,要先運行stunnel,然后stunnel代理了遠程的一個連接,並映射出本地端口,其實本地的端口可以寫成別的。

為什么會有stunnel,原因是以前的一些客戶端本身不支持SSL,尤其是一些證書等等,那么stuunel很好解決了這一部分客戶端的問題,並通過代理使客戶端無感知。

 

參考:

https://www.cnblogs.com/adylee/archive/2007/09/16/894538.html

https://docs.azure.cn/zh-cn/articles/azure-operations-guide/redis-cache/aog-redis-cache-using-redis-cli-connect-azure-redis-cache

https://help.compose.com/docs/redis-and-redis-cli

https://aws.amazon.com/cn/premiumsupport/knowledge-center/elasticache-connect-redis-node/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM