3台机器之间的端口转发

3台机器之间的端口转发

我有 3 台以链形式连接起来的机器,A、B、C。

 A-->B-->C

A 是我的计算机,B 是服务器,C 是另一台计算机,上面有一些服务和 Web 服务器。由于一些问题,我需要从 A 访问 C 上的 Web 服务器(端口 80),我可以使用 ssh 从 A 登录到 B,然后从 B 登录到 C,但此时控制台太少了。我需要 Web 浏览器,使用带选项的 ssh-X不起作用(Firefox 启动时 dbus 出现一些问题)。

我使用经典命令在 B 上进行端口转发,为 ssh 转发 22 端口:

ssh -L 2222:localhostB:22 user@ipC

但使用相同的方法转发端口 80 不起作用:

ssh -L 8888:localhostB:80 user@ipC

我知道还有一些其他的转发可以使其工作,但我不知道如何以及做什么。

我需要这样的东西:

A --> B (frd from B:8888 to C:80) --> C (port 80 web server)

因此当我输入 ipB:8888 时,我将被转发到 C:80。

任何帮助,如解释必须做什么,或带有命令的脚本,都将不胜感激。我从一篇博客中注意到,必须转发两次才能ssh -L完成,但我不明白为什么。

答案1

你走在正确的道路上。

在 A:

ssh -L 8888:ipC:80 user@ipB -N

将使 C 上的 Web 服务器可以通过 A 上的 localhost:8888 访问

应原始发帖者的要求,提供更多细节:

我从你的问题中假设你想要访问 A 上 C 的网络服务器(我猜你在 A 上有一个 GUI 环境,带有网络浏览器)。

你不能直接访问 C(无论出于什么原因),但你可以访问 B,反过来 B 又可以访问 C。因此,我们在 A 和 B 之间创建一个隧道,要求 B 将隧道的一端连接到 C 上的 Web 服务器

相关内容