![如何进行复杂的端口转发(有点)](https://linux22.com/image/1309134/%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E5%A4%8D%E6%9D%82%E7%9A%84%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%88%E6%9C%89%E7%82%B9%EF%BC%89.png)
我的情况非常不同。我的笔记本电脑名为 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
。