我有一个客户,他允许我通过 VPN 访问他们的数据库。我需要我的 Web 应用程序也连接到同一个数据库。我目前的方法是:
- 创建一个新的 EC2 微实例(具体来说是 Red Hat 4.8.3-9)
- 将微实例连接到 VPN
- 将端口 5432 上的所有流量转发到客户端数据库服务器的 IP 地址
- 从我的应用程序服务器的端口 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?
两个问题:
- 这是最好的方法吗?
- 如果是这样,我做错了什么?
提前致谢。