Может быть одной из нескольких возможных причин. Я предполагаю, что вас больше всего интересует доступ к странице администрирования web2py на удаленном сервере, поскольку web2py не позволяет удаленному доступу администратора к незащищенному каналу ... Итак, сначала сначала вы должны убедиться, что IP-таблицы вашего сервера позволяют доступ к услугам на порту, к которому вы пытаетесь подключиться, в противном случае эти решения удаленного подключения, вероятно, не будут работать (за исключением, возможно, плана C). См. Здесь для получения дополнительной информации: https://help.ubuntu.com/community/IptablesHowTo
Во-первых, позвольте мне показать вам, как SSH туннелировался с web2py через десятки серверов, которые я использовал в прошлом. Я буду использовать порт 8889 в моих примерах:
ssh -L 8889:127.0.0.1:8889 [email protected]
Так же, как с нормальным SSH, вы должны увидеть оболочку вашего сервера (который вы продемонстрировали). Теперь, в же терминал, перейдите в корневой каталог web2py вашего сервера и выполните следующие действия (не закрывайте окно терминала после):
> cd mywebite.com
> python web2py.py -a password -i 127.0.0.1 -p 8889
*web2py startup stuff*
Теперь на локальном посещении http://127.0.0.1:8889/admin браузера и вы должны увидеть страницу администрирования web2py с вашего сервера.
Plan B - Использование самоподписанного SSL сертификата
Если вы по-прежнему возникают проблемы с SSH туннеля, другой вариант, вы можете попробовать использует самозаверяющий сертификат SSL.
Выполнение самозаверяющего сертификата очень легко с OpenSSL, и вы также можете использовать генераторы самозаверяющих генераторов (хотя я не рекомендую это делать), чтобы сэкономить вам еще больше времени.
После того, как у вас есть сгенерированные .crt и .KEY файлов, SFTP на сервер и загружать файлы в корневой каталог web2py вашего сервера (или загрузить их на Dropbox, SSH к серверу, перейдите в ваш корневой каталог web2py и wget ссылки на файлы). Наконец SSH к серверу и выполните следующие действия (не закрывайте окно терминала после):
> cd mywebite.com
> python web2py.py -a password -p 8889 -i 0.0.0.0 server.crt -k server.key
*web2py startup stuff*
Теперь в вашем браузере введите (обратите внимание на HTTPS)https://xxx.xxx.xxx.xxx:8889/admin (ххх ...как ваш IP-адрес сервера), или вы можете сделать https://mywebsite.com:8889/admin, если у вас уже есть настройка имени домена.
Теперь вы должны увидеть предупреждение безопасности SSL в своем браузере. Просто проигнорируйте это предупреждение и добавьте исключение, и, наконец, вы сможете увидеть страницу администрирования web2py со своего сервера.
План C - Изменить источник web2py
Это наименее рекомендуемый план, чтобы позволить администратору по незащищенному каналу, и должны использоваться в качестве последнего средства. Вы можете просто отредактировать часть исходного кода web2py, которая отключает администратора, просто добавив одну строку кода. В < корневого каталога web2py сервера> \ приложения \ Admin \ модель \ access.py (вокруг линии 21) поставила request.is_local = True до части, которая отключает админ через незащищенный канал:
'...'
request.is_local=True #TESTING ONLY. COMMENT OUT OR REMOVE IN PRODUCTION!
if request.env.http_x_forwarded_for or request.is_https:
session.secure()
elif not request.is_local and not DEMO_MODE:
raise HTTP(200, T('Admin is disabled because insecure channel'))
'...'
Теперь вы можете получить доступ к администратору web2py вашего сервера, просто посетив http://xxx.xxx.xxx.xxx:8889/admin (xxx ... будучи вашим IP-адресом сервера), или вы можете сделать http://mywebsite.com:8889/admin, если у вас уже есть настройка вашего домена.
Обратите внимание, что это быстрое и грязное решение и должно использоваться только временно и для тестирования. Не забудьте удалить или прокомментировать эту линию в производстве!
Возможный дубликат [SSH -L соединение успешно, но перенаправление портов локального хоста не работает »канал 3: открытие не выполнено: подключение не выполнено: соединение отклонено») (http://stackoverflow.com/questions/18705453/ssh-l- connection-success-but-localhost-port-forwarding-not-working-channel) – Kenster