2017-01-18 52 views
1

我已经创建了过去的SSH隧道,但是我在OSX上遇到了问题。我正在寻找一个网站的端口80,并将其指向我的localhost:8080。当我运行这个命令OSX从远程端口到本地的SSH隧道

ssh -L 8080:<cloud_ip_address>:80 [email protected]<cloud_ip_address> -N 

我得到默认的Apache'它的工作!'页。

为什么我没有获得远程机器(运行Web应用程序)的端口80?

UPDATE 我还没有解决方案,但我有一些更多的信息。我得到的页面是/ var/www/html中的默认页面,但是我正在提供没有静态页面的Flask应用程序。

回答

3

因为HTTP协议不仅包含IP地址,还包含主机名(您在浏览器中输入的URL),它在<cloud_hostname>localhost之间不同。欺骗它的最简单方法是创建/etc/hosts(将会有一些OSX替代 - 搜索...)条目将远程机器的主机名重定向到本地主机。

127.0.0.1 <cloud_hostname> 

但请注意,在这种情况下,您将无法使用主机名访问远程机器!

+0

不幸的是,这似乎并不奏效。我仍然从云服务器获得默认的ubuntu apache页面。我读过OSX模糊了一些常见的SSH功能。我问过这个问题,可能是一个更合适的论坛:[SU论坛](http://superuser.com/questions/1168824/forwarding-remote-port-80-to-osx-localhost-port) –

+0

做完之后一些挖掘,我已经得到了一些理解(但仍然无法解决)发生了什么。我收到的页面是/ var/www/HTML中的默认页面。所以我的Flask应用程序路由不被视为默认路由。无论如何,如何将隧道指向Flask应用程序都没有答案。 –