SSH 隧道不起作用

SSH 隧道不起作用

我使用以下命令建立到我的 ubuntu 伺服器的 ssh 隧道:

ssh -fNg -L 8888:127.0.0.1:22 -p 1000 username@server-address  -v

然後我將 OSX http 和 https 代理程式設定為 127.0.0.1:8888

我收到以下錯誤:

SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2

協議不匹配。

問題是什麼?

答案1

-L 8888:localhost:22 會將本機連接埠 8888 轉送到 ssh 伺服器的連接埠 22。

SSH 可以提供襪子代理,您可以使用它來瀏覽您的 ssh 隧道。

ssh -fNg -D 8888 -p 1000 username@server-address  -v

連接後只需設定您的代理:

localhost:8888

答案2

你寫「我使用以下指令建立一個到我的 ubuntu 伺服器的 ssh 隧道:

ssh -fNg -L 8888:127.0.0.1:22 -p 1000 使用者名稱@伺服器位址 -v

好的,所以您需要在連接埠 1000 上有一個 SSH 伺服器

好的,客戶端程式將連接到連接埠 8888,並且它發送的任何內容都會轉發到連接埠 22(22 是 ssh 常用的連接埠)。

我想如果你試圖在 ssh 中建立 ssh 隧道,這可能是有意義的,儘管我無法立即想到這樣做的必要性!

然後我將 OSX http 和 https 代理設定為 127.0.0.1:8888”

不,您已經讓 SSH 開啟了偵聽連接埠 8888 的連接埠。

如果您將http[s] 代理程式放在目標電腦(伺服器位址)的連接埠22 上,並將Web 瀏覽器設定為使用代理程式127.0.0.1:8888,那麼您的Web 瀏覽器可以連接到連接埠8888,並且該連接埠將被轉送到目標電腦連接埠 22 上的 http 代理程式。當您這樣做時,-L 8888:127.0.0.1:22這表示您必須在目標電腦的連接埠 22 上進行偵聽。你可能想將 22 更改為更合理的值,例如 8080 我還沒有測試過,但我認為它會起作用

或者,SSH 也有一個 -D 選項,充當可以執行 HTTP[s] 的 SOCKS 代理,但告訴 Web 瀏覽器連接到 SOCKS 代理而不是常規 HTTPS。所以我想就像大衛說的那樣ssh -fNg -D 8888 -p 1000 username@server-address -v -fNg 和 -v 當然不是必需的。

相關內容