我有一个应用程序连接到同一端口上的多个主机:
a.protected:123
b.protected:123
Run Code Online (Sandbox Code Playgroud)
我无法直接访问它们中的任何一个,但我可以建立一个 ssh 隧道(通过x.accessible)。
如果端口不同,我可以将隧道连接到相同的端口号:
ssh -f me@x.accessible -L 123:a.protected:123 -N
Run Code Online (Sandbox Code Playgroud)
然后我会添加 a.protected 作为 localhost 的别名,在 /etc/hosts
但是考虑到更多主机使用相同的端口号,我有什么选择?如何在不更改应用程序的情况下使用隧道让应用程序连接到它们?
你有两个选择。要么使用不同的源地址,要么使用socks 代理。
您的lo接口配置为127.0.0.1/8,即所有以 127 开头的地址都属于当前主机。
隧道的语法是
-L [bind_address:] port:host:hostport
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用以下内容:
ssh -L 127.1.0.1:123:a.protected:123 -L 127.1.0.2:123:b.protected:123
Run Code Online (Sandbox Code Playgroud)
现在让 a.protected 解析为 127.1.0.1:123,b.protected 解析为 127.1.0.2。
ssh -D 1080
Run Code Online (Sandbox Code Playgroud)
这将在端口上启动本地袜子代理1080。所有连接都将解析并连接到隧道的另一端。
如果您的应用程序支持袜子代理,只需配置它。否则,您tsocks无论如何都可以使用代理。
| 归档时间: |
|
| 查看次数: |
6286 次 |
| 最近记录: |