使用 EC2 实例作为客户端 VPN 的代理

使用 EC2 实例作为客户端 VPN 的代理

我有一个客户,他允许我通过 VPN 访问他们的数据库。我需要我的 Web 应用程序也连接到同一个数据库。我目前的方法是:

  1. 创建一个新的 EC2 微实例(具体来说是 Red Hat 4.8.3-9)
  2. 将微实例连接到 VPN
  3. 将端口 5432 上的所有流量转发到客户端数据库服务器的 IP 地址
  4. 从我的应用程序服务器的端口 5432 访问我新创建的微实例的公共 IP 地址并连接到数据库服务器。

步骤 1 和 2 已完成,但我无法转发端口。我尝试使用基本的 SSH 转发:

ssh -L 5432:0.0.0.0:5432 <destination ip>

IP 表如下:

sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 5432 -j DNAT --to-destination <destination ip>:5432

我在我的微实例的安全组上为端口 5432 打开了所有 TCP,但当我尝试使用 psql 从我的应用程序服务器进行连接时,我收到了以下消息

sql: could not connect to server: Operation timed out
Is the server running on host "52.40.183.26" and accepting
TCP/IP connections on port 5432?

两个问题:

  • 这是最好的方法吗?
  • 如果是这样,我做错了什么?

提前致谢。

相关内容