Redis鏈接出現Error: Connection reset by peer的問題是因爲使用Redis的安全模式

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

我碰到的問題是微軟雲(其實我不想用!)鏈接Redis,默認採用6380作爲SSL端口,而微軟雲同時還會啓用非SSL端口6379,若是嫌其麻煩,能夠用非SSL進行鏈接。node

下面是解決方法:redis

一、安裝stunnel,這個工具的原理是能夠簡單的看作代理,把遠程請求用stunnel,返回後用本地映射一個端口。安全

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

二、配置ide

# 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

運行stunnelui

stunnel

三、鏈接spa

注意,此時的鏈接應該爲localhost,而不是上面的地址。3d

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/

相關文章
相關標籤/搜索