Redis配置外網(wǎng)可訪問(redis遠(yuǎn)程連接不上)的方法
默認(rèn)情況下,當(dāng)我們在部署了redis服務(wù)之后,redis本身默認(rèn)只允許本地訪問。Redis服務(wù)端只允許它所在服務(wù)器上的客戶端訪問,如果Redis服務(wù)端和Redis客戶端不在同一個機(jī)器上,就要進(jìn)行配置。
使用redis報(bào)錯
例如使用redis的PHP代碼:
<?php $redis = new Redis(); $redis->connect('192.168.1.4', 6379); $redis->set('tag', 'hello'); echo 'name:', $redis->get('tag'); ?>
執(zhí)行以上代碼時,報(bào)錯如下:
Fatal error: Uncaught exception ‘RedisException' with message ‘Redis server went away' in xxxx RedisException: Redis server went away in xxxxxx
錯誤分析
默認(rèn)情況下,如果沒有指定bind配置指令,則 Redis 監(jiān)聽來自服務(wù)器上所有可用網(wǎng)絡(luò)接口的連接。可以使用bind配置指令來監(jiān)聽一個或多個選定的接口,在bind后拼接一個或多個 IP 地址即可。
服務(wù)器可以有一個網(wǎng)絡(luò)接口(通俗的說網(wǎng)卡),或者多個。打個比方說機(jī)器上有兩個網(wǎng)卡,分別為 192.168.205.5 和 192.168.205.6,如果 bind 192.168.205.5,那么只有該網(wǎng)卡地址接受外部請求,如果不綁定,則兩個網(wǎng)卡口都接受請求。所以,如果要讓公網(wǎng)可以連接該服務(wù)器上的 Redis 服務(wù),除了直接注釋掉 bind 這一行來綁定到所有的網(wǎng)絡(luò)接口之外,更正確的做法應(yīng)該是不注釋
警告:如果運(yùn)行 Redis 的計(jì)算機(jī)直接暴露在互聯(lián)網(wǎng)上,綁定到所有的接口是很危險的,并會將實(shí)例暴露給互聯(lián)網(wǎng)上的每個人。因此,默認(rèn)情況下,我們?nèi)∠⑨屢韵陆壎ㄖ噶?,這將強(qiáng)制 Redis 只監(jiān)聽 IPv4 回環(huán)接口地址(這意味著 Redis 只接受來自運(yùn)行它的計(jì)算機(jī)上的客戶端的連接)。
解決辦法
1、找到自己服務(wù)器中redis的配置文件redis.conf 文件
如果不清楚,可執(zhí)行 find / -name redis.conf
如果是你通過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ù)器開啟了防火墻策略,此時需要配置修改 Linux 的防火墻(iptables),開放對應(yīng)的redis端口,該端口為你啟動的redis配置文件中對應(yīng)的端口號 ,默認(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
請注意,一定要將 redis 的防火墻配置放在 REJECT 的前面。然后執(zhí)行 service iptables restart。
3、重啟redis服務(wù)
到此這篇關(guān)于Redis配置外網(wǎng)可訪問(redis遠(yuǎn)程連接不上)的方法的文章就介紹到這了,更多相關(guān)Redis外網(wǎng)訪問內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis從單點(diǎn)到集群部署模式(單機(jī)模式?主從模式?哨兵模式)
這篇文章主要為大家介紹了Redis從單點(diǎn)集群部署模式(單機(jī)模式?主從模式?哨兵模式)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Redis?Lua腳本實(shí)現(xiàn)ip限流示例
這篇文章主要介紹了Redis?Lua腳本實(shí)現(xiàn)ip限流示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07