这个 ssh 配置是否允许 host1 访问 host3?

这个 ssh 配置是否允许 host1 访问 host3?

我想在朋友的电脑上安装代理,但我们的 ISP 不允许端口转发。我有一个远程 Linux 实例,我想这个想法也许可行:

图表

host1(我)将连接到 host2(Linux 机),同时将 host1 上的 p0 转发到 host2 上的 p1。host3(朋友)将连接到 host2,同时将 host2 上的 p1 转发到 host3 上的 p2。

答案1

是的,这应该可行。我在我的 Linux 机器上试过了。

  • host3 上的命令ssh -R p1:localhost:p2 user@host2在 host 2 上创建一个监听套接字 p1,该套接字通过隧道传输到 host3 上的 p2
  • host1 上的命令ssh -L p0:localhost:p1 user@host2在 host1 上创建一个监听套接字 p0,该套接字通过隧道传输到 host2 上的 p1

因此,host1 上的 http://localhost:p0 通过隧道传输到 host2 上的 p1,而 host2 上的 p1 通过隧道传输到 host3 上的 p2。

我对此进行了如下测试:

  • host3:启动Web服务器
  • 主机3:ssh -R 10443:localhost:443 user@host2
  • 主机1:ssh -L 443:localhost:10443 user@host2
  • 主机 1:firefox -> https://localhost

相关内容