通过代理从个人电脑访问公共PostgreSQL服务器(AmazonRDS)

我是亚马逊网络服务 (AWS) 的新手。
我已经从 AWS RDS 创建了一个 PostgreSQL:

  • 端点:database-1.XXX.rds.amazonaws.com
  • 端口:5432
  • 公共可访问性:是
  • 可用区:ap-northeast-1c

之后,我会将使用数据库的应用程序推送到 AWS(可能部署到 EKS)。
但是,我想先尝试从本地计算机测试数据库服务器。

我还没有尝试在家里的笔记本电脑上进行测试,但我认为它会连接正常,因为我的笔记本电脑没有使用 HTTP 代理连接到网络。

问题是我想尝试从我公司的 PC 上进行测试,这需要设置 HTTP 代理才能连接到 Internet。电脑规格:

  • 视窗 10
  • 安装 PostgreSQL 10

首先,我尝试使用psql命令行:

psql -h database-1.XXXX.rds.amazonaws.com -U postgre
>  Unknown host

set http_proxy=http://user:password@my_company_proxy:3128
set https_proxy=http://user:password@my_company_proxy:3128
psql -h database-1.XXXX.rds.amazonaws.com -U postgre
>  Unknown host

set http_proxy=http://my_second_company_proxy:3128
set https_proxy=http://my_second_company_proxy:3128
psql -h database-1.XXXX.rds.amazonaws.com -U postgre
>  Unknown host

然后,我尝试使用 pgAdmin 工具。

从互联网帖子,它说我们可以使用“SSH Tunnel”输入代理:

但是,将显示错误消息:

那么,任何人都可以帮助建议我们是否可以通过 HTTP 代理连接到公共 PostgreSQL 服务器?

回答

我认为问题是 Postgres 使用普通的 TCP/IP 协议,而您正在尝试使用 HTTP 代理。此外,您正在尝试针对无法工作的 HTTP 代理服务器创建SSH 隧道

所以我建议以下解决方案:

  1. 使用 TCP 代理代替 HTTP 代理
  2. 创建一个 EC2 或任何可以从您的公司网络进行 SSH 访问并可以访问公共 Internet 的实例。这样您就可以通过该实例创建 SSH 隧道来实现您的目标。

注意:确保您的 PostgreSQL 可以从公共互联网访问(虽然这通常是个坏主意,但它超出了这个问题的范围)有时安全组配置会阻止它从公共互联网连接。


以上是通过代理从个人电脑访问公共PostgreSQL服务器(AmazonRDS)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>