巧用防火墙的转发功能在云服务器上搭建代理解决Redis,数据库等资源需IP白名单访问的问题

在使用云厂商的云数据库, 如Redis, Polardb出于安全的考虑, 大都默认不提供公网访问的地址, 而且连接来源IP有白名单的机制,但在开发环境中,公网IP往往不是固定的,而且也不处于云数据库的专有网络环境内,所以有时需要直接连接云数据调试或定位问题时就非常麻烦,导致效率低下。

有个简单的办法解决,就是在云厂商的账号内咱们肯定会有ECS的,找一台有公网IP的ECS增加一个端口转发就能轻松解决这个问题:

我的ECS安装的操作系统是Centos8, 所以用的防火墙是firewall,

  1. 登录到控制台,以管理员身份操作:

可以通过这个命令增加一条端口转发规则:

sql 复制代码
firewall-cmd --permanent --add-forward-port=port=6379:proto=tcp:toaddr=172.16.0.109:toport=6379

注:上面这条命令是把所有访问该ECS 6379这个端口的请求转发到另一个IP(172.16.0.109)的6379端口上,这时候可能你有疑问,通常云数据库提供的专有网络连接地址是一个网址,例如r-rj91g10j1****.redis.rds.aliyuncs.com, 这时想知道它的局域网地址,只要登录ECS然后ping一下这个网址, 就能得知它对应的内网IP了

对了,添加规则后记得要reload一次才会生效,reload的命令如下:

bash 复制代码
firewall-cmd --reload

如果上述操作好后转发没有生效,可以检查一下网络配置是否启用了IP转发功能,方法如下:

确保你的系统已经启用了 IP 转发,编辑 /etc/sysctl.conf 文件,确认是否存在以下行,如果没有就加上去:

bash 复制代码
net.ipv4.ip_forward = 1

然后执行下述命令让配置生效

bash 复制代码
sysctl -p

码字分享不易,如果本文对你有帮助请点赞支持一下,谢谢

相关推荐
原来是猿10 分钟前
MySQL 在 Centos 7环境安装
数据库·mysql·centos
路小雨~15 分钟前
Milvus 向量数据库的官方文档笔记
数据库·学习·milvus
老衲提灯找美女16 分钟前
数据库约束
数据库
卷Java21 分钟前
Python字典:键值对、get()方法、defaultdict,附通讯录实战
开发语言·数据库·python
wanhengidc24 分钟前
跨境云手机适用于哪些场景
大数据·运维·服务器·数据库·科技·智能手机
Bdygsl1 小时前
MySQL(6)—— 视图
数据库·mysql
oradh1 小时前
数据库入门概述
数据库·oracle·数据库基础·数据库入门
BullSmall1 小时前
一套定制化高级 payload 合集
数据库·安全性测试
zbdx不知名菜鸡1 小时前
postgre sql 数据库查询优化
数据库·postgresql
9稳2 小时前
基于PLC的生产线自动升降机设计
开发语言·网络·数据库·嵌入式硬件·plc