Ssh

通過 ssh 隧道使代理在遠端伺服器上可用

  • August 14, 2015

我知道我可以使用 ssh 隧道在我的機器上創建一個“代理”,這樣我就可以使本地生成的所有流量都通過遠端伺服器。像這樣:

$ ssh -D 12345 myuser@remote_ssh_server

但是如果我需要在遠端伺服器上創建一個“代理”,那麼我發送的所有流量都將通過我的本地機器呢?這可能與 ssh 嗎?

本質上,我想使用我的本地網際網路連接和一些特定的命令來遠端執行,因為伺服器不能直接訪問網際網路。

最簡單的方法是一次一個埠和一個主機。例如,要將流量從 remote:8001 轉發到 intraserver:80,

ssh -R 8001:intraserver:80 myuser@remote

但是如果你想轉發來自遠端的所有流量,並且你有一個在本地主機上執行的 ssh 伺服器,

ssh -R 2200:localhost:22 myuser@remote ssh -D 10800 -p 2200 localhost

展開:

  • -R 2200:localhost:22設置從 remote:2200 到 localhost:22 的轉發。
  • ssh -p 2200 localhost在遠端執行 ssh,連接到 remote:2200,然後返回到 localhost:22(通過第一個 ssh 連接建立隧道)。
  • -D 10800通過從遠端返回到本地主機的連接,從遠端:10800 隧道 SOCKS。

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