如何在 2 个服务器上创建 SSH 隧道?

hpn*_*hpn 6 ssh ssh-tunneling socks

我有 2 个服务器,A 和 B。我想创建一个从我的系统到服务器 B 的隧道,但我有一些限制来做到这一点。所以我必须首先通过隧道连接到服务器 A,然后从服务器 A 连接到服务器 B。我的目标是拥有一个 SOCKS 代理来浏览网络。

我怎样才能做到这一点?

Sac*_*kar 6

我正在向您展示一种非常基本的方法。这里我假设 B 可以从 A 直接访问。根据不同的情况可能会有变化。

在 A:

ssh -D socks_port B
Run Code Online (Sandbox Code Playgroud)

这将打开 A 上的端口 socks_port 作为 SOCKS 代理。

在您的系统上:

ssh -L local_port:localhost:socks_port A
Run Code Online (Sandbox Code Playgroud)

这会将您系统上的 local_port 转发到 A 上的端口 socks_port。

然后你可以配置你的浏览器在套接字上使用 SOCKS 代理 localhost:local_port


一个一行程序应该是这样的:

ssh -t -L 1234:localhost:5678 FIRSTHOST ssh -D 5678 SECONDHOST
Run Code Online (Sandbox Code Playgroud)

whereFIRSTHOSTSECONDHOST必须由您的主机名或 IP 地址替换。

在您的浏览器中,您必须输入袜子代理:

localhost:1234
Run Code Online (Sandbox Code Playgroud)