Ubuntu

從 windows 到 ubuntu 的反向 SSH 隧道為 SQL 伺服器提供服務

  • January 16, 2014

正如問題所說,我目前正在嘗試建立從 NAT 後面的 Windows 伺服器到託管的 Ubuntu VPS 的反向 SSH 連接。我幾乎是 Linux 和 SSH 的初學者。

我正在使用以下命令從 Windows 機器執行 PLink 連接:

plink.exe -ssh -R 3005:localhost:1433 deploy@test.website -pw password

在 VPS 上,我在 sshd_config 中添加了以下幾行:

Match User deploy  
GatewayPorts yes

並重新啟動 SSH。網路統計-an | grep 3005 帶回以下響應:

tcp        0      0 0.0.0.0:3005            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:3005          127.0.0.1:47578         ESTABLISHED
tcp6       0      0 :::3005                 :::*                    LISTEN
tcp6       0      0 127.0.0.1:47578         127.0.0.1:3005          ESTABLISHED

對我來說,這看起來是對的,但這純粹是我試圖破譯給出的資訊。但是我的 ruby​​ webapp(在 Padrino、Mizuno 和 Nginx 上執行)拒絕連接到 localhost 上此埠上的 SQL 伺服器。我錯過了什麼嗎?

希望這是足夠的資訊。如果還有什麼,我會盡力提供。

從您提供的資訊(主要是 的輸出netstat)來看,您的埠轉發似乎沒問題。

您可以通過嘗試從 Ubuntu 機器打開到該埠的連接來保證這一點。嘗試類似:

telnet localhost 3005

然後,您應該屬於以下三種情況之一:

  1. 您收到一條消息telnet: Unable to connect to remote host: Connection refused,表示埠轉發不起作用,埠 3005 在 Ubuntu 伺服器上仍處於關閉狀態。
  2. 您收到消息connect_to localhost port 1433: failed.Connected to localhost.直接關閉Connection closed by foreign host.它意味著埠轉發正常(第一次連接),但 SQL 伺服器上的偵聽埠不接受連接(第二次連接,即使錯誤消息首先出現)。
  3. 您收到來自 SQL Server 的邀請,然後連接可能會關閉。如果是這種情況,則意味著埠轉發工作正常。但問題在於您的 SQL 伺服器或您的應用程序連接到它的方式。

我認為你應該在 2. 或 3.

引用自:https://serverfault.com/questions/567188