我有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服务器