windows - 通过代理从个人计算机访问公共 PostgreSQL 服务器 (Amazon RDS)
问题描述
我是亚马逊网络服务 (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隧道”来输入代理:
但是,将显示错误消息:
那么,任何人都可以帮助建议我们是否可以通过 HTTP 代理连接到公共 PostgreSQL 服务器?
解决方案
我认为问题是 Postgres 使用普通的 TCP/IP 协议,而您正在尝试使用 HTTP 代理。此外,您正在尝试针对您的 HTTP 代理服务器创建SSH 隧道,但这是行不通的。
所以我建议以下解决方案:
- 使用 TCP 代理而不是 HTTP 代理
- 创建一个 EC2 或任何可以从您的公司网络进行 SSH 访问并可以访问公共 Internet 的实例。这样您就可以通过该实例创建 SSH 隧道来实现您的目标。
注意:确保您的 PostgreSQL 可以从公共互联网访问(虽然这通常是个坏主意,但它超出了这个问题的范围)有时安全组配置会阻止它从公共互联网连接。
推荐阅读
- javascript - 错误中心模式 Slick.js 在四个中心幻灯片中添加不透明度
- c - 用函数读取文件到主函数中的数组
- c - U's like here 0x01U 的目的是什么
- javascript - JavaScript - 无法读取未定义的属性“拆分”
- python - Python为sqlnet.ora中的多行文本制作oneliner
- python-3.x - SendGrid 无法向 Yahoo 和 Outlook 发送列表退订电子邮件标题
- react-native - 为什么在本机反应中找不到模块错误?
- apache-spark - 安装较新版本时 Spark 中的 ClassNotFoundException
- java - org.apache.commons.csv.CSVRecord.values() 具有默认访问权限
- git - Github 仓库重命名问题