redis通过守护程序
在ec2实例中运行ps aux | grep redis-server
redis 1182 0.0 0.8 38856 8740 ? Ssl 21:40 0:00 /usr/bin/redis-server 127.0.0.1:6379
netstat -nlpt | grep 6379
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN -
tcp6 0 0 :::6379 :::* LISTEN 1388/redis-server *
暂时我已将网络入站设置为所有流量,因此可能不存在网络安全问题。
Type Protocol Port Range Source Description
All traffic All All 0.0.0.0/0
但是当我尝试从python端访问时:
import redis
r = redis.StrictRedis(host='ec2-xx-xxx-xx-xx.compute-1.amazonaws.com', port=6379, db=0)
r.set('foo', 'bar')
r.get('foo')
我收到以下错误:
ConnectionError:错误111连接到 ec2-xx-xxx-xx-xx.compute-1.amazonaws.com:6379。连接被拒绝。
尽管网络入站可能会导致此类问题,但对于所有流量并且ec2实例中的redis运行正常?
答案 0 :(得分:2)
您的redis
没有侦听来自外部的连接,而是仅侦听本地连接。
tcp 0 0 127.0.0.1:6379
以下作品适用于Ubuntu
。将/etc/redis/redis.conf
和bind
修改为0.0.0.0
:
# bind 127.0.0.1
bind 0.0.0.0
然后重启服务:
sudo service redis-server restart
警告:请勿在您的安全组中使用0.0.0.0
。任何人都被允许。而只允许特定的IP或CIDR。