簡體   English   中英

SSH 連接超時通過端口轉發,但不是通過直接訪問

[英]SSH connection timed out via port forwarding, but not via direct access

我正在嘗試在對 RDS 實例具有訪問權限的EC2實例上進行端口轉發。

  • 這授予我訪問對 RDS 實例具有正確權限的 VM 的權限。 通過 ssh:
<my_user>@<my_local_machine>:~$ ssh ubuntu@ec2-<my_ip>.<my_region>.compute.amazonaws.com

# Connection successful,
ubuntu@ip-<my_ec2_private_ip>:~$ telnet <my_rds_database_endpoint>.<my_region>.rds.amazonaws.com 5432
Trying 10.0.30.11...
Connected to <my_rds_database_endpoint>.<my_region>.rds.amazonaws.com.
Escape character is '^]'.
Connection closed by foreign host.
  • 從我之前訪問的 VM 訪問數據庫也可以:
psql -U <my_user> -h <my_rds_database_endpoint>.<my_region>.rds.amazonaws.com -d <my_database>
  • 以這種方式執行端口轉發似乎不起作用
ssh -N ubuntu@ec2-<my_ip>.<my_region>.compute.amazonaws.com -L 5432:<my_rds_database_endpoint>.<my_region>.rds.amazonaws.com:5432

-> 這成功運行,但在我嘗試連接到此實例的(dagster)進程中,我得到:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "<my_rds_database_endpoint>.<my_region>.rds.amazonaws.com:5432" (<my_rds_ip>), port 5432 failed: Connection timed out
    Is the server running on that host and accepting TCP/IP connections?

以下是測試我的組件連接性的摘要: 問題的圖形表示

通過我localhostnmap

nmap ec2-<my_ip>.eu-west-3.compute.amazonaws.com -PN -p 5432
Starting Nmap 7.80 ( https://nmap.org ) at 2023-01-10 10:33 CET
Nmap scan report for ec2-<my_ip>.eu-west-3.compute.amazonaws.com (<my_ip>)
Host is up.

PORT     STATE    SERVICE
5432/tcp filtered postgresql
nmap <my_rds_database_endpoint>.<my_region>.rds.amazonaws.com -PN -p 5432
Starting Nmap 7.80 ( https://nmap.org ) at 2023-01-10 10:33 CET
Nmap scan report for <my_rds_database_endpoint>.<my_region>.rds.amazonaws.com (<my_rds_ip>)
Host is up.

PORT     STATE    SERVICE
5432/tcp filtered postgresql
nmap localhost -PN -p 5432
Starting Nmap 7.80 ( https://nmap.org ) at 2023-01-10 10:34 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).

PORT     STATE SERVICE
5432/tcp open  postgresql

我發現這篇文章有同樣的問題,但不幸的是沒有詳細的解決方案。

我錯過了什么?

創建隧道后,您必須使用它。 根據錯誤信息,您仍在嘗試直接連接到 rds 實例。 您需要將數據庫客戶端指向隧道的盡頭,例如psql -h localhost -U <my_user> -d <my_database> 隧道軟件然后使它從另一端彈出並連接到所需的端點。

暫無
暫無

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

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