3台机器之间的端口转发

我有3台机器连接成一个链,A,B,C。

A-->B-->C 

A是我的机器,B是服务器,C是其他机器,有一些服务和Web服务器。 由于某些问题,我需要从A访问C上的Web服务器(端口80),我可以使用sshlogin从A到B,然后从B到C,但此时的控制台太less了。 我需要networking浏览器,并使用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) 

所以当我inputipB:8888时,我将被转发到C:80。

任何帮助,作为解释什么必须做,或命令脚本将不胜感激。 我注意到从一个博客,它必须做两次ssh -L转发完成,但我不明白为什么。

你在正确的轨道上。

在A:

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

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

有关OP的要求更多的细节:

我从你的问题假设你想要访问C上的Web服务器(我猜你有一个Web浏览器上的graphics用户界面环境)。

你不能直接访问C(不pipe出于什么原因),但是你可以访问B,而B又可以访问C.所以我们在A和B之间build立一个隧道,要求B把隧道的末端连接到C上的Web服务器