文章时间:2021年4月26日 21:52:49 解决问题:腾讯云Redis没有公网连接,通过服务器进行公网连接
ps:首先要保证的是服务器和Redis在同一个区域内,然后服务器上面如果有宝塔环境的话,还是不建议搞了,太麻烦了。
腾讯给出的官方教程: https://cloud.tencent.com/document/product/239/39611
ps:centos7.x使用的是firewalld,但是iptables规则是生效的。底层都是iptables
查看iptabls的防火墙规则可通过 iptables -nL
查看。
查看iptables 的转发规则 可通过 iptables -nL -t nat
查看
腾讯云官方工单回复
若您需要通过firewall做相关转发,您可参考如下命令。 查看已经存在的规则
代码语言:javascript复制firewall-cmd --list-all
配置相应的规则
代码语言:javascript复制# firewall-cmd --add-forward-port=port=服务器映射端口:proto=tcp:toport=数据库内网端口:toaddr=数据库IP --permanent
给出的文档解决方案(Centos7.x测试通过)
代码语言:javascript复制ip地址说明:
172.21.0.3:6379
为Redis数据库的地址172.21.0.9
为服务器的内网地址
iptables -t nat -A PREROUTING -d 172.21.0.9 -p tcp --dport 56379 -j DNAT --to-destination 172.21.0.3:6379
代码语言:javascript复制iptables -t nat -A POSTROUTING -d 172.21.0.3 -p tcp --dport 6379 -j SNAT --to-source 172.21.0.9
代码语言:javascript复制echo 1 > /proc/sys/net/ipv4/ip_forward #开启转发(临时生效)
代码语言:javascript复制vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 #找到这一行将原先的0 改为1
sysctl -p # 执行生效
代码语言:javascript复制#!/bin/sh
#该脚本为修改脚本,直接编辑保存为sh文件进行运行即可
sed -i '/net.ipv4.ip_forward/ s/(.*= ).*/11/' /etc/sysctl.conf