我在用局部隧道v1。但是我发现v2允许您自定义子域,我需要这个特性。
我遵循了README中从存储库中描述的教程,但它在几个部分使我感到困惑,最后,它没有工作。
第一步是运行一些web应用程序: checked,端口为8000.
然后,它提到了一些关于主机名的内容:
Local隧道使用主机名进行一些操作,因此您需要设置两个主机名。一个用于本地隧道注册,一个用于您的本地隧道。通常,它需要一个通配符,但我们只是为这个示例隧道硬编码主机名。 example.localtunnel.local -> 127.0.0.1 localtunnel.local -> 127.0.0.1 您可以在/etc/ ghost中执行此操作,也可以使用该高级鬼实用程序。
我在这里迷路了,但我还是编辑了我的/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.
哪个?不管怎样..。我创建myconfig.conf.py是基于local隧道repo的dir /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'
<Greenlet at 0xb6e0db1cL: <bound method TunnelClient.listen of <localtunnel.client.TunnelClient object at 0xb6def52c>>> failed with TypeError在银杏过程中:
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)
<BrokerFrontend fileno=6 address=0.0.0.0:9999>: Failed to handle request:
request = GET /t/example HTTP/1.1 from ('127.0.0.1', 35907)
application = <ws4py.server.wsgi.middleware.WebSocketUpgradeMiddleware object at 0x95bc2ac>
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 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局部隧道处理:
$ lt --broker 127.0.0.1:9999 --name example 8000
Traceback (most recent call last):
File "/usr/local/bin/lt", line 9, in <module>
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虽然银杏现在没有任何错误,但是本地隧道仍然会产生与以前不同的错误。显然,它试图在连接过程中获得“/t/示例”。
发布于 2012-05-18 15:36:08
看起来这个软件期待的是一个更老版本的ws4py。当前版本(0.2.1) of ws4py与您所拥有的内容匹配,而0.1.5版本的ws4py与本地隧道试图使用的内容相匹配。
降级到ws4py 0.1.5可能足以解决您所面临的问题。
另一方面,这似乎并不是世界上最受支持的软件。你确定这是解决你问题的正确方法吗?我查看了该回购中提供的代码和所有文档,得到的是它设置了这个奇怪的tcp隧道--over over(是的,websockets,用于服务器端和客户端都有python的东西!)事物,甚至没有提供任何特定的安全,加密或自己的健壮性能力,它似乎没有做任何其他更常见的工具不能做得更好。但当然,我可能错过了一些重要的事情。
发布于 2013-01-03 15:27:50
我认为您必须按照指示设置localtunnel.com服务器(即。如果您想在其他域上运行您自己的本地隧道服务器)。
安装用于正常使用的本地隧道v2应该像运行pip install localtunnel一样容易(可能使用sudo)。
一旦完成,只需运行localtunnel-beta -n <subdomain> 8000
有关更多细节,请参见杰夫的博客文章。
https://stackoverflow.com/questions/10590506
复制相似问题