2017-01-18 54 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應用程序都沒有答案。 –