远程连接 redis(简单快速)
默认情况下,Redis 只允许本地(127.0.0.1)连接,不接受外部连接。为了允许远程连接,需要修改 Redis 配置文件。
systemctl cat redis
找到 Service 内容
[Service]
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --daemonize no --supervised systemd
配置文件就在/etc/redis/redis.conf路径下
vim /etc/redis/redis.conf
这是默认的配置文件,其中包括许多配置的描述,内容比较长。但是没关系,我们可以边搜索边修改。
按下键盘 / 进入搜索模式,输入 bind 127.0.0.1 搜索到 bind 配置项。可以看以下内容:
# 默认情况,只允许本地连接
bind 127.0.0.1 -::1
按下键盘 i 进入插入模式,可以将 bind 设置为 0.0.0.0,表示监听所有接口。或者,如果你知道服务器的具体内网IP地址,可以绑定到那个特定IP,这样只有该IP地址接受连接。
bind 0.0.0.0
# 或者
bind 192.168.1.100
生产环境建议尽可能指定具体的IP地址,而不是 0.0.0.0。
修改完绑定地址后,按下键盘 Esc 退出编辑模式,然后输入 /requirepass foobared 搜索, 找到之后回车,然后按下键盘 i进行编辑模式,在#requirepass foobared下面添加密码
#requirepass foobared
requirepass 123456
为了增加一点安全性,可以更改默认的 6379 端口,这能避免一些简单的自动扫描。
同样的操作,按下键盘 Esc 退出编辑模式,然后输入 /port 6379 搜索位置, 找到之后回车,按键盘 i 进入编辑模式,修改为以下内容:
port 6380
配置完地址、密码、端口后,按下键盘 Esc,输入:wq保存并退出。然后重启redis,配置才会生效
systemctl restart redis
# 或者先停止服务再启动
systemctl stop redis
systemctl start redis
添加防火墙,允许外部 TCP 协议可以访问6380端口
sudo firewall-cmd --permanent --add-port=6380/tcp
sudo firewall-cmd --reload
如果你是云服务器也可以在操作界面添加防火墙规则
在本地电脑上对远程服务器上的redis进行连接测试
# redis-cli -h <服务器公网> -p <端口> -a <密码>
redis-cli -h 192.168.1.100 -p 6380 -a 123456
192.168.1.100:6380>
# 或者通过url连接
# redis-cli -u redis://:<密码>@<服务器公网>:<端口>
redis-cli -u redis://:123456@192.168.1.100:6380
192.168.1.100:6380>
出现 192.168.1.100:6380> 这种IP端口则表示连接成功
然后就可以在一些可视化工具(如 RedisView)上进行远程连接,直观清楚地看到 redis 上缓存的数据