Redis配置外網(wǎng)可訪(fǎng)問(wèn)(redis遠(yuǎn)程連接不上)的方法
默認(rèn)情況下,當(dāng)我們?cè)诓渴鹆藃edis服務(wù)之后,redis本身默認(rèn)只允許本地訪(fǎng)問(wèn)。Redis服務(wù)端只允許它所在服務(wù)器上的客戶(hù)端訪(fǎng)問(wèn),如果Redis服務(wù)端和Redis客戶(hù)端不在同一個(gè)機(jī)器上,就要進(jìn)行配置。
使用redis報(bào)錯(cuò)
例如使用redis的PHP代碼:
<?php
$redis = new Redis();
$redis->connect('192.168.1.4', 6379);
$redis->set('tag', 'hello');
echo 'name:', $redis->get('tag');
?>執(zhí)行以上代碼時(shí),報(bào)錯(cuò)如下:
Fatal error: Uncaught exception ‘RedisException' with message ‘Redis server went away' in xxxx RedisException: Redis server went away in xxxxxx
錯(cuò)誤分析
默認(rèn)情況下,如果沒(méi)有指定bind配置指令,則 Redis 監(jiān)聽(tīng)來(lái)自服務(wù)器上所有可用網(wǎng)絡(luò)接口的連接??梢允褂胋ind配置指令來(lái)監(jiān)聽(tīng)一個(gè)或多個(gè)選定的接口,在bind后拼接一個(gè)或多個(gè) IP 地址即可。
服務(wù)器可以有一個(gè)網(wǎng)絡(luò)接口(通俗的說(shuō)網(wǎng)卡),或者多個(gè)。打個(gè)比方說(shuō)機(jī)器上有兩個(gè)網(wǎng)卡,分別為 192.168.205.5 和 192.168.205.6,如果 bind 192.168.205.5,那么只有該網(wǎng)卡地址接受外部請(qǐng)求,如果不綁定,則兩個(gè)網(wǎng)卡口都接受請(qǐng)求。所以,如果要讓公網(wǎng)可以連接該服務(wù)器上的 Redis 服務(wù),除了直接注釋掉 bind 這一行來(lái)綁定到所有的網(wǎng)絡(luò)接口之外,更正確的做法應(yīng)該是不注釋
警告:如果運(yùn)行 Redis 的計(jì)算機(jī)直接暴露在互聯(lián)網(wǎng)上,綁定到所有的接口是很危險(xiǎn)的,并會(huì)將實(shí)例暴露給互聯(lián)網(wǎng)上的每個(gè)人。因此,默認(rèn)情況下,我們?nèi)∠⑨屢韵陆壎ㄖ噶?,這將強(qiáng)制 Redis 只監(jiān)聽(tīng) IPv4 回環(huán)接口地址(這意味著 Redis 只接受來(lái)自運(yùn)行它的計(jì)算機(jī)上的客戶(hù)端的連接)。
解決辦法
1、找到自己服務(wù)器中redis的配置文件redis.conf 文件
如果不清楚,可執(zhí)行 find / -name redis.conf
如果是你通過(guò)yum安裝的redis,則redis的默認(rèn)配置文件為:/etc/redis/redis.conf
修改 redis 的配置文件,將所有 bind 信息全部屏蔽。
# bind 192.168.1.100 10.0.0.1 # bind 192.168.1.8 # bind 127.0.0.1
2、如果你的服務(wù)器開(kāi)啟了防火墻策略,此時(shí)需要配置修改 Linux 的防火墻(iptables),開(kāi)放對(duì)應(yīng)的redis端口,該端口為你啟動(dòng)的redis配置文件中對(duì)應(yīng)的端口號(hào) ,默認(rèn)是 6379。
-A INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT …… -A INPUT -j REJECT –reject-with icmp-host-prohibited
請(qǐng)注意,一定要將 redis 的防火墻配置放在 REJECT 的前面。然后執(zhí)行 service iptables restart。
3、重啟redis服務(wù)
到此這篇關(guān)于Redis配置外網(wǎng)可訪(fǎng)問(wèn)(redis遠(yuǎn)程連接不上)的方法的文章就介紹到這了,更多相關(guān)Redis外網(wǎng)訪(fǎng)問(wèn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis Sorted Set類(lèi)型使用及應(yīng)用場(chǎng)景
Sorted Set是Redis常用的一種是數(shù)據(jù)類(lèi)型,本文主要介紹了Redis Sorted Set類(lèi)型使用及應(yīng)用場(chǎng)景,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
Spring Boot整合Redis實(shí)現(xiàn)訂單超時(shí)處理問(wèn)題
這篇文章主要介紹了Spring Boot整合Redis實(shí)現(xiàn)訂單超時(shí)處理,通過(guò)這個(gè)基本的示例,你可以了解如何使用Spring Boot和Redis來(lái)處理訂單超時(shí)問(wèn)題,并根據(jù)需要進(jìn)行擴(kuò)展和定制,需要的朋友可以參考下2023-11-11
Linux服務(wù)器安裝redis數(shù)據(jù)庫(kù)圖文教程
Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。這篇文章主要介紹了Linux服務(wù)器安裝redis數(shù)據(jù)庫(kù)圖文教程,需要的朋友可以參考下2018-03-03
redis啟動(dòng)和退出命令行簡(jiǎn)單操作步驟
Redis是一種鍵值存儲(chǔ)數(shù)據(jù)庫(kù),用戶(hù)可以使用它來(lái)存儲(chǔ)和檢索大量的鍵值數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于redis啟動(dòng)和退出命令行的相關(guān)資料,需要的朋友可以參考下2024-03-03
Redis恢復(fù)被移除集群的服務(wù)器實(shí)操步驟
這篇文章主要為大家介紹了Redis恢復(fù)被移除集群的服務(wù)器實(shí)操步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

