2017-01-18 14 views
1

Я создал туннели SSH в прошлом, но у меня проблемы с OSX. Я ищу, чтобы взять порт 80 веб-сайта и направить его на мой localhost: 8080. Когда я запускаю эту командуOSX SSH туннель от удаленного порта до местного

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

Я получаю по умолчанию apache 'он работает!' стр.

Почему я не получаю порт 80 удаленной машины (на которой работает веб-приложение)?

ОБНОВЛЕНИЕ У меня пока нет решения, но у меня есть дополнительная информация. Страница, которую я получаю, является страницей по умолчанию в/var/www/html, но я обслуживаю приложение Flask, у которого нет статических страниц.

ответ

3

Поскольку протокол HTTP содержит не только IP-адрес, но и имя хоста (URL-адрес, который вы вводите в свой браузер), который отличается от <cloud_hostname> и localhost. Самый простой способ обмануть его - создать /etc/hosts (будет какая-то альтернатива OSX - поиск ...), перенаправив имя хоста вашего удаленного компьютера на localhost.

127.0.0.1 <cloud_hostname> 

Обратите внимание, что в этом случае вы не сможете получить доступ к удаленной машине с помощью имени хоста!

+0

К сожалению, это не работает. Я по-прежнему получаю страницу Ubuntu apache по умолчанию с облачного сервера. Я читал, что OSX скрывает некоторые общие функции SSH. Я спросил об этом, возможно, в более подходящем форуме: [SU Forum] (http://superuser.com/questions/1168824/forwarding-remote-port-80-to-osx-localhost-port) –

+0

после выполнения некоторые копания, я получил некоторое понимание (но еще не решение), что происходит. Страница, которую я получаю, является страницей по умолчанию в/var/www/HTML. Поэтому мой маршрут приложения Flask не рассматривается как маршрут по умолчанию. Независимо от этого, нет ответа на то, как направлять туннель в приложение Flask. –