Ubuntu 为远程连接打开Redis端口
我可以在服务器上乒乓Redis:Ubuntu 为远程连接打开Redis端口,ubuntu,redis,Ubuntu,Redis,我可以在服务器上乒乓Redis: # redis-cli ping PONG 但从远处看,我遇到了问题: $ src/redis-cli -h REMOTE.IP ping Could not connect to Redis at REMOTE.IP:6379: Connection refused 在配置中,我得到了标准端口: # Accept connections on the specified port, default is 6379. # If port 0 is speci
# redis-cli ping
PONG
但从远处看,我遇到了问题:
$ src/redis-cli -h REMOTE.IP ping
Could not connect to Redis at REMOTE.IP:6379: Connection refused
在配置中,我得到了标准端口:
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379
也许我应该打开远程Ubuntu机器上的6379端口?如何操作?您是否将绑定选项设置为允许在redis服务器上进行远程访问 之前(文件
/etc/redis/redis.conf
)
之后
然后运行sudo service redis server restart
重新启动服务器。如果这不是问题所在,那么您可能需要检查任何可能阻止访问的防火墙
重要提示:如果您不使用防火墙(iptables,ufw..)来控制谁连接到正在使用的端口,任何人都可以连接到此Redis实例。不使用这意味着任何人都可以访问/更改/删除您的数据。注意安全 请注意,在不进一步保护您的Redis服务器的情况下执行此操作不是一个好主意,因为它会让您面临攻击。确保还实现了AUTH或其他安全功能。有关详细信息,请参见。对于我,我需要执行以下操作: 1-注释掉
bind 127.0.0.1
2-将保护模式
更改为否
3-使用iptables保护我的服务器()1-注释出绑定127.0.0.1 2-设置要求通过密码 然后检查防火墙是否阻止了您的端口 iptables-L-n 服务iptables停止
/etc/redis.conf
bind 127.0.0.1
bind 127.0.0.1
sudo systemctl start redis.service
systemctl disable firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl stop firewalld
redis-cli -h 192.168.0.2(ip) -a redis(username)
requirepass-YOUR-PASSWORD-HERE-
,然后在指定行中写下密码auth-your-password-HERE-
命令验证数据库中的密码受保护模式no
来禁用受保护模式bind0.0.0
添加到$REDIS_HOME/REDIS.conf文件中/redis server$redis\u HOME/redis.conf
启动redis/redis cli-h-YOUR-IP--a-YOUR-PASSWORD-HERE-
检查配置/redis cli-h-YOUR-IP-ping
检查配置请注意,如果您使用的是AWSEC2实例,那么还有一个额外的步骤,我相信这也是必须的。我错过了第三步,花了整整一天的时间才找到向安全组添加入站规则的方法 步骤1(如前所述):在redis.conf中,将bind127.0.0.1更改为bind0.0.0 步骤2(如前所述):在redis.conf中,将受保护模式“是”更改为“受保护模式否” 对于Amazon Ec2实例很重要: 步骤3:在当前ec2机器中,转到安全组。添加入站规则 对于带有6379端口的自定义TCP,请选择“从任何位置使用”选项 就我而言,我使用的是redis stable 打开redis.conf 将
bind127.0.0.1
更改为bind0.0.0
将保护模式yes
更改为保护模式no
重新启动redis服务器:
绑定和保护模式都是基本步骤。 但是如果启用了ufwufw,则必须在ufw中允许redis端口
ufw状态
如果状态:活动
则允许redis端口ufw允许6379
vi/etc/redis/redis.conf
bind127.0.0.1
更改为bind0.0.0
保护模式yes
更改为保护模式no
另一个可能有用的注释 Redis可以绑定到多个IP—当您不想向全世界开放它(
0.0.0.0
)而只想在本地网络中访问它时,这非常有用
sudo nano/etc/redis/redis.conf
bind
设置的末尾:bind 127.0.0.1 10.0.0.1
sudo服务redis服务器重新启动
redis cli-h 10.0.0.1
redis未在远程计算机上侦听?也许,如何检查您是否已禁用ufw?在配置文件中,我在字符串bind 127.0.0.1
之后添加了字符串bind 0.0.0
。重新启动redis。现在可以远程连接。如果我们单独使用bind0.0.0.0
与bind127.0.0.0.1 0.0.0
@Nyxynyx 0.0.0绑定到所有适配器,有什么区别吗,所以没有必要。不过,这没什么区别。对任何ip呼叫开放redis安全吗?我们如何才能限制从特定IP访问redis?@MildlySerious非常感谢。我们已经浪费了将近两周的时间来弄清楚是防火墙还是网络或者其他问题。但是这个改变像champ一样有效,我不得不使用bind0.0.0.0。“绑定127.0.0.1”对我不起作用。我不需要将“保护模式”设置为“否”。警告:不要在“绑定”之前留下空白,否则服务器将无法启动。注意:我使用的是Redis的windows端口。请不要给出“禁用防火墙”的建议。对我来说,ufw
是不同之处。谢谢!非常有用的建议2:-)这正是我所寻找的解决方案
vim redis.conf
/etc/init.d/redis-server stop
redis-server redis.conf