2012-05-14 50 views
10

我正在使用localtunnel v1。但是我發現v2可以讓你自定義子域名,而且我需要這個功能。如何正確運行localtunnel v2

我遵循repository中的README中描述的教程,但它讓我困惑了幾個部分,最後它沒有奏效。

第一步是運行一些web應用程序:檢查,端口號。 8000

然後,它說,一些有關主機名:

Localtunnel做一些事情與主機名,所以你要設置兩個 主機名。一個用於localtunnel註冊,一個用於localtunnel。 正常情況下,它需要一個通配符,但我們只需要硬編碼該示例隧道的主機名爲 。

example.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 

下一步...

現在可以啓動服務器。它基於 config目錄中的配置文件。你可以讓你自己的,但這個被配置爲 在端口9999上運行的服務器,並期望主機名localtunnel.local

銀杏配置/ default.conf.py

哪一個?反正...我創建了一個基於在localtunnel回購的目錄/deploy文件myconfig.conf.py:

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 

localtunnel過程:

$ 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 

雖然銀杏沒有給出任何錯誤,現在,還是localtunnel提高從先前的錯誤,不同的錯誤。顯然它試圖在連接過程中獲取「/ t/example」。

回答

2

它看起來像這個軟件預計舊版本的ws4py。 ws4py的current version (0.2.1)與您看起來似乎相符,而0.1.5 version of ws4py與localtunnel試圖使用的匹配。

降級到ws4py 0.1.5可能足以解決您遇到的問題。

另一方面,雖然,這似乎並不是世界上最受支持的軟件。你確定這是你的問題的正確解決方案嗎?我已經查看了代碼和該回購中提供的所有文檔,我得到的是它設置了這個奇怪的tcp-tunnel-over-json-over-websockets(是的,websockets,用於python的東西服務器和客戶端!),甚至沒有提供任何特定的安全性或加密或健壯性功能,而且似乎沒有其他更常用的工具無法做得更好。但是,我可能會錯過一些重要的東西。

+0

是否有任何其他信息可以提供或解釋以提高我的答案? –

+0

千響應延遲響應...但只降級ws4py無法正常工作。請參閱我的編輯。 – borges

+0

關於您的評論,我使用此工具的目標僅僅是爲了與安全性無關的測試功能共享本地Web服務器。如果你知道任何工具都是一樣的,我很想知道! – borges

1

我認爲你必須按照說明設置localtunnel.com服務器(即如果你想在其他域上運行你自己的localtunnel服務器)。

正常使用安裝localtunnel v2應該像運行pip install localtunnel(可能使用sudo)一樣簡單。

一旦這樣做了,只要運行localtunnel-beta -n <subdomain> 8000

有關詳細信息,請參閱Jeff's blog post