Ssh-Tunneling
通向相同埠號的隧道
我有一個應用程序連接到同一埠上的多個主機:
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
無論如何都可以使用代理。