我在美国东部的 AWS Elasticache 上运行着一个 Redis 实例。我在东京和美国东部运行着 VPN 服务器。
问题:如何在 VPNd 连接到东京 VPN 时允许 Redis 连接?您只能将 Elasticache 安全组打开到同一区域,因此它不适用于东京 VPN。
似乎我应该能够让东京 VPN 通过 US-East VPN 隧道传输所有 Redis 流量,但我真的不知道该怎么做。有人能给我指点迷津吗?我是否需要设置 iptables 或 ssh 端口转发之类的东西?
我仅有的想要隧道传输 Redis 流量(单个 TCP 端口)。其余流量应可正常处理。
我的东京 VPN 是 Ubuntu 12.04.4 LTS(L2TP VPN),而美国东部 VPN 运行的是预装了 OpenVPN 的 Ubuntu 12.04 AMI。
我知道 AWS 在这里的正确工作方式是在东京复制我的 Redis 实例和应用程序服务器,或者使用 VPC,但我宁愿坚持使用现有的基础设施/架构。我认为转换为 VPC 的工作量并不大,我在东京使用 VPN 的唯一原因是,我们住在中国的一名员工可以通过快速 VPN 访问我们在美国东部运行的其他服务。当他使用我们的美国东部 VPN 时,中国的防火墙给他带来了麻烦。
答案1
我发现我实际上可以为此使用 SSH 端口转发,然后连接到localhost
Redis 地址。
ssh -L 6379:redisinstance.cache.amazonaws.com:6379 [email protected]
因此,Redis 流量通过 ssh 经过 us-east 框,而其余流量则经过东京 VPN。