redis外网访问相关设置

  张一帆   2019年03月12日


1 . 我的redis服务用的redis配置文件在哪里?

答:我用的是centos系统,我知道redis是通过yum安装的,那么我需要通过

[root@iZ2ze33uzthv7txm85m303Z ~]# rpm -qa | grep redis
redis-3.2.12-2.el7.x86_64

  这样,我就知道了我装的redis版本,进而我能够知道redis用的配置文件。

[root@iZ2ze33uzthv7txm85m303Z ~]# rpm -ql redis-3.2.12-2.el7.x86_64
/etc/logrotate.d/redis
/etc/redis-sentinel.conf
/etc/redis.conf     (*)
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli
/usr/bin/redis-sentinel
/usr/bin/redis-server
/usr/lib/systemd/system/redis-sentinel.service
/usr/lib/systemd/system/redis.service
/usr/libexec/redis-shutdown
/usr/share/doc/redis-3.2.12
/usr/share/doc/redis-3.2.12/00-RELEASENOTES
/usr/share/doc/redis-3.2.12/BUGS
/usr/share/doc/redis-3.2.12/CONTRIBUTING
/usr/share/doc/redis-3.2.12/MANIFESTO
/usr/share/doc/redis-3.2.12/README.md
/usr/share/licenses/redis-3.2.12
/usr/share/licenses/redis-3.2.12/COPYING
/usr/share/man/man1/redis-benchmark.1.gz
/usr/share/man/man1/redis-check-aof.1.gz
/usr/share/man/man1/redis-check-rdb.1.gz
/usr/share/man/man1/redis-cli.1.gz
/usr/share/man/man1/redis-sentinel.1.gz
/usr/share/man/man1/redis-server.1.gz
/usr/share/man/man5/redis-sentinel.conf.5.gz
/usr/share/man/man5/redis.conf.5.gz
/var/lib/redis
/var/log/redis
/var/run/redis

2 . 如何更改该redis配置,可以打开外网访问?还要更改下密码以保证安全性。

答:

  • 注释掉bind 127.0.0.1,从而让redis不光监听本机的请求。
  • protected-mode no,默认是打开的,想要从别的host连接古来,就需要关闭。
  • requirepass 密码,设置密码。
  • 重启redis服务

3 . 重启redis服务,我如何让redis以守护进程方式启动呢?

答:centos 7开始,使用systemd代替daemon了,所以管理系统服务的命令全部由systemctl命令代替。

systemctl start redis //如果遇到问题就用systemctl status来查看问题原因

4 . 防火墙还会挡住外网访问6379端口,怎么办?

答:这个跟iptable的规则有关了,运维工程师们总是跟iptable打交道,我们只需要知道怎么用即可。

[root@iZ2ze33uzthv7txm85m303Z ~]# iptables -nvL   //查看目前服务的端口
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
7704K 1142M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
12905  687K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
12984  779K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
   14   896 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:6379
 439K   25M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5655K  271M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:80
54310 2782K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:8080
6545K  323M REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 764K  624M DOCKER-ISOLATION  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
 400K  597M DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
 399K  597M ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
 364K   27M ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 4127 packets, 1019K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
   42  4713 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.18.0.2           tcp dpt:80
   16  2316 ACCEPT     tcp  --  !docker0 docker0  0.0.0.0/0            172.18.0.4           tcp dpt:8080

Chain DOCKER-ISOLATION (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 764K  624M RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0 

  目前,我已经放开了服务器的6379端口外网访问,所以结果中会有6379条目。正常来说,新配环境的时候,6379是没有的,所以我们需要添加上。

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

  之后,还需要保存

 service iptables save

  然后我们再通过查看语句就能看到6379了。至此我们配置完成了redis的外网访问及权限安全了。

  我准备再写一个实现主从redis配置的文章,改天研究研究。