簡體   English   中英

我在私有子網中有 AWS Postgres 實例,但我沒有任何 VPN,如何通過本地訪問它?

[英]I have AWS Postgres instance in private subnet and I don't have any VPN, How Can I access it through Local?

我在私有子網下有一個 Postgres 實例,我沒有配置 VPN 來連接,即使我的堡壘(跳轉節點)也不允許這樣做。 有沒有辦法通過我的本地機器將它連接到開發測試?

默認端口是 5432。我可以通過 Bastion 節點 ssh 訪問我的應用程序服務器。

因為您可以通過 Bastion ssh 訪問您的應用程序服務器。 然后您可以創建兩級 ssh 隧道代理。 由於 Postgres 是不允許的,即使 Bastion 節點也不允許,只允許通過應用服務器。

1:創建一條從應用服務器到堡壘節點的隧道。

ssh-add ~/ .ssh/id_rsa ;ssh -oStrictHostKeyChecking=no -Att -l USER_NAME BASTION IP ssh -oStrictHostKeyChecking=no -Att -l USER_NAME APP_SERVER_IP -L 5432: AWS_POSTGRESS_END_POINT : 543

(保持打開這個終端)

2:創建另一個從堡壘到本地計算機的隧道:(打開新終端)

ssh-add ~/ .ssh/id_rsa ;ssh -oStrictHostKeyChecking=no -Att -l USER_NAME BASTION_IP -L 5432:localhost:5432(保持打開這個終端)

3:在連接字符串中使用 localhost 或 127.0.0.1 和 5432 端口(從本地機器連接)而不是 Postgress 端點。

注意:用粗體突出顯示的文本替換正確的 ssh 密鑰路徑和您的用戶名。 並保持打開兩個終端以維持會話。

端口轉發是一個過程,您可以在其中建立從您的計算機(在 Internet 上)到堡壘服務器的連接,然后流量轉發到數據庫。

ssh -i key.pem ec2-user@BATION-IP -L 5432:DATABASE-DNS-NAME:5432

然后,在您的 SQL 客戶端中,通過以下方式連接到數據庫:

localhost:5432

當 SQL 客戶端轉到本地計算機上的端口 5432 時,SSH 連接會將流量轉發到堡壘服務器,然后堡壘服務器將其發送到: DATABASE-DNS-NAME:5432

(您實際上可以在本地使用任何端口號。例如,您可以創建到不同數據庫的多個轉發連接,每個連接在不同的端口上。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM