如何进行复杂的端口转发(有点)

如何进行复杂的端口转发(有点)

我的情况非常不同。我的笔记本电脑名为 A,另一台机器 B(ip-172.16.28.3)安装了 ssh 服务器,我在该机器上有一个帐户,第三台机器 C(ip-172.16.24.3)是代理服务器。所有机器都在 LAN 内,但是

1- 机器 B 可以连接到 A 以及 C

2-机器A,即我的电脑,它只能连接到B,而不能连接到C

现在要使用互联网,我执行以下操作:

SSH-X[电子邮件保护]

然后我输入 Firefox,并使用机器 B 的 Firefox,代理设置为 172.16.24.3:3128

我不想使用 B 的 Firefox,而是想使用本地 Firefox。有没有办法让我通过 B 连接到 C,并使用本地 Firefox 进行浏览

答案1

由于笔记本电脑 A 可以通过 ssh 访问 B,而 B 可以访问计算机 C 上的端口 3128,因此您可以设置端口转发以将计算机 C 上的端口 3128 绑定到本地计算机 (A) 上的端口 3128。然后,您可以在笔记本电脑上将 Firefox 代理设置为 localhost:3128,它将使用计算机 C 上的端口 3128 进行代理服务。

ssh -L 3128:172.16.24.3:3128 [email protected]

解释:

-L = Take a remote port and bind it to some local port
3128 = The local port to bind to
172.16.24.3 = The remote host (proxy server) who's port you want access to.
3128 = The port on the remote host (proxy server) that you want access to.
[email protected] = the ssh server 

此方法可用于访问 ssh 服务器在网络上可以看到的任何机器上的任何端口(一次一个端口)。

一旦建立连接,您就可以在笔记本电脑上设置 Firefox,就像在机器 B 上一样,只是在代理设置中使用 localhost:3128 而不是 172.16.24.3:3128。

(“localhost” 应该与 127.0.0.1 相同)

答案2

-D参数允许ssh创建一个 SOCKS 代理,然后您可以使用 Firefox 连接到它。

例子:

ssh -D 127.0.0.1:9051 [email protected]

然后打开 Firefox 并将127.0.0.1端口设置9051为 SOCKS5 代理。

有关详细信息,请参阅For more information, seeman ssh

相关内容