Ssh-Tunneling

通向相同埠號的隧道

  • January 17, 2014

我有一個應用程序連接到同一埠上的多個主機:

a.protected:123
b.protected:123

我不能直接訪問它們中的任何一個,但我可以創建一個 ssh 隧道(通過x.accessible)。

如果埠不同,我可以將隧道連接到相同的埠號:

ssh -f me@x.accessible -L 123:a.protected:123 -N

然後我會添加 a.protected 作為 localhost 的別名,在/etc/hosts

但是鑑於更多主機使用相同的埠號,我有什麼選擇?如何在不更改應用程序的情況下使用隧道讓應用程序連接到它們?

你有兩個選擇。要麼使用不同的源地址,要麼使用 socks 代理。

不同的源地址

您的lo介面配置為127.0.0.1/8,即所有以 127 開頭的地址都屬於目前主機。

您的隧道的語法是

-L [bind_address:] port:host:hostport

因此,您可以使用類似的東西:

ssh -L 127.1.0.1:123:a.protected:123 -L 127.1.0.2:123:b.protected:123

現在讓 a.protected 解析為 127.1.0.1:123,b.protected 解析為 127.1.0.2。

使用 socks 代理

ssh -D 1080 

這將在 port 上啟動一個本地 socks 代理1080。所有連接都將解析並連接到隧道的另一端。

如果您的應用程序支持 socks 代理,只需配置它。否則,您tsocks無論如何都可以使用代理。

引用自:https://unix.stackexchange.com/questions/109749