10

localtunnelv1を使用しています。しかし、v2ではサブドメインをカスタマイズできることがわかりました。この機能が必要です。

リポジトリREADMEから説明されているチュートリアルに従いましたが、いくつかの部分で混乱し、最終的には機能しませんでした。

最初のステップは、いくつかのWebアプリを実行することです:チェック済み、ポート番号で。8000。

次に、ホスト名について何かを言います。

Localtunnelはホスト名を使用していくつかの処理を行うため、2つのホスト名を設定する必要があります。1つはローカルトンネル登録用、もう1つはローカルトンネル用です。通常はワイルドカードが必要ですが、この例のトンネルのホスト名をハードコーディングするだけです。

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を想定しています。

ginkgo config / default.conf.py

どれ?とにかく...localtunnelリポジトリのディレクトリにあるファイルに基づいてmyconfig.conf.pyを作成しました /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

ginkgoは現在エラーを出していませんが、localtunnelは以前のエラーとは異なるエラーを発生させます。どうやらそれは接続プロセスで"/t/example"を取得しようとします。

4

2 に答える 2

2

このソフトウェアは古いバージョンの ws4py を想定しているようです。ws4pyの現在のバージョン (0.2.1)は、あなたが持っているように見えるものと一致しますが、ws4py の 0.1.5 バージョンは、localtunnelが使用しようとしているものと一致します。

ws4py 0.1.5 にダウングレードするだけで、問題を解決できる場合があります。

一方で、これは世界で最もサポートされているソフトウェアとは思えません。それがあなたの問題に対する正しい解決策であると確信していますか? コードとそのレポで提供されているすべてのドキュメントを調べたところ、この奇妙な tcp-tunnel-over-json-over-websockets がセットアップされていることがわかりましたサーバー側とクライアント側!) 独自の特定のセキュリティ、暗号化、または堅牢性機能を提供することすらなく、他のより一般的なツールよりも優れていることは何もないように見えます。しかし、確かに、私は何か重要なものを見逃しているかもしれません。

于 2012-05-18T15:36:08.177 に答える
1

localtunnel.com サーバーをセットアップするには、指示に従っている必要があると思います (つまり、他のドメインで独自の localtunnel サーバーを実行したい場合)。

通常の使用のための localtunnel v2 のインストールは、実行するのと同じくらい簡単pip install localtunnelです (おそらく sudo を使用)。

それが完了したら、実行するだけですlocaltunnel-beta -n <subdomain> 8000

詳細については、Jeff のブログ投稿を参照してください。

于 2013-01-03T15:27:50.760 に答える