Я использую localtunnel v1. Но я обнаружил, что v2 позволяет настроить поддомен, и мне нужна эта функция.
Я следовал руководству, описанному в README
из репозитория , но в некоторых частях оно меня запутало и, в конце концов, не сработало.
Первый шаг — запустить какое-нибудь веб-приложение: проверено, на порту нет. 8000.
Затем он говорит что-то об именах хостов:
Localtunnel кое-что делает с именем хоста, поэтому вы хотите имена хостов. Один для регистрации в локальном туннеле, другой для вашего локального туннеля. Обычно он ожидает подстановочный знак, но мы просто жестко закодируем имя хоста для этот пример туннеля.
пример.localtunnel.local -> 127.0.0.1
localtunnel.local -> 127.0.0.1Вы можете сделать это в /etc/hosts или использовать эту причудливую утилиту-призрак.
Я тут заблудился, но все же я отредактировал свой /etc/hosts
:
127.0.0.1 localhost
127.0.1.1 my-pc-name
127.0.0.1 example.localtunnel.local
127.0.0.1 localtunnel.local
Следующий шаг...
Теперь можно запускать сервер. Он основан на файле конфигурации в каталог конфигурации. Вы можете сделать свой собственный, но этотнастроен на запустить сервер на порту 9999 и ожидать имя хоста localtunnel.local
ginkgo config/default.conf.py
Какой? В любом случае... Я создал myconfig.conf.py на основе файлов в каталоге репозитория localtunnel/deploy
:
port = 9999
hostname = 'localtunnel.local'
service = 'localtunnel.server.TunnelBroker'
Но когда я запускаю:
lt --broker 127.0.0.1:9999 --name example 8000
, я получаю:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gevent/greenlet.py", line 390, in run
result = self._run(*self.args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/localtunnel/client.py", line 53, in listen
msg = self.ws.receive(msg_obj=True)
TypeError: receive() got an unexpected keyword argument 'msg_obj'
>> failed with TypeError
И в гинкго process:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line 438, in handle_one_response
self.run_application()
File "/usr/local/lib/python2.7/dist-packages/ws4py/server/geventserver.py", line 85, in run_application
self.result = self.application(self.environ, start_response_for_upgrade)
File "/usr/local/lib/python2.7/dist-packages/ws4py/server/wsgi/middleware.py", line 131, in __call__
environ.copy()))
TypeError: handle_websocket() takes exactly 3 arguments (2 given)
: Failed to handle request:
request = GET /t/example HTTP/1.1 from ('127.0.0.1', 35907)
application =
127.0.0.1 - - [2012-05-14 17:18:18] "GET /t/example HTTP/1.1" 101 162 0.000933
И, очевидно, http://example.localtunnel.local:9999не работает.
Как это исправить? И где я должен изменить, чтобы изменить окончательный поддомен?
Извините за жуткий английский.
Изменить
Я последовал предложению Павлаи понизил версию. Но хотя изменения и произошли, ошибки все же случаются. процесс ginkgo:
$ ginkgo eco.conf.py
Starting process with eco.conf.py...
127.0.0.1 - - [2012-05-22 20:21:11] "GET /t/example HTTP/1.1" 400 116 0.000190
процесс localtunnel:
$ lt --broker 127.0.0.1:9999 --name example 8000
Traceback (most recent call last):
File "/usr/local/bin/lt", line 9, in
load_entry_point('localtunnel==0.4.0', 'console_scripts', 'lt')()
File "/usr/local/lib/python2.7/dist-packages/localtunnel/client.py", line 31, in main
client.serve_forever()
File "/usr/local/lib/python2.7/dist-packages/ginkgo/core.py", line 188, in serve_forever
self.start()
File "/usr/local/lib/python2.7/dist-packages/ginkgo/core.py", line 124, in start
ready = not self.do_start()
File "/usr/local/lib/python2.7/dist-packages/localtunnel/client.py", line 42, in do_start
self.ws.connect()
File "/usr/local/lib/python2.7/dist-packages/ws4py-0.1.5-py2.7.egg/ws4py/client/threadedclient.py", line 72, in connect
self.process_response_line(response_line)
File "/usr/local/lib/python2.7/dist-packages/ws4py-0.1.5-py2.7.egg/ws4py/client/__init__.py", line 61, in process_response_line
raise HandshakeError("Invalid response status: %s %s" % (code, status))
ws4py.exc.HandshakeError: Invalid response status: 400 Bad Handshake
Хотя ginkgo теперь не выдает никаких ошибок, localtunnel по-прежнему выдает ошибки, отличные от предыдущих ошибок. Очевидно, он пытается получить «/t/example» в процессе подключения.