2012-05-14 12 views
10

मैं localtunnel v1 का उपयोग कर रहा हूं। लेकिन मैंने पाया कि v2 आपको सबडोमेन को कस्टमाइज़ करने की अनुमति देता है, और मुझे इस सुविधा की आवश्यकता है।localtunnel v2 को ठीक से कैसे चलाएं

मैंने README में repository से वर्णित ट्यूटोरियल का पालन किया, लेकिन यह मुझे कई हिस्सों में भ्रमित कर दिया और अंत में, यह काम नहीं किया।

पहला कदम कुछ वेब-ऐप चलाने के लिए है: चेक किया गया, पोर्ट नंबर पर। 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 

अगला कदम ...

अब आप सर्वर शुरू कर सकते हैं। यह कॉन्फ़िगर निर्देशिका में कॉन्फ़िगरेशन फ़ाइल पर आधारित है। आप अपनी खुद की कर सकते हैं, लेकिन यह एक के लिए कॉन्फ़िगर है पोर्ट 9999 पर सर्वर चलाने के लिए और होस्ट नाम localtunnel.local

जिन्को config/default.conf.py

कौन सा उम्मीद?

lt --broker 127.0.0.1:9999 --name example 8000 

मुझे मिल गया:

port = 9999 
hostname = 'localtunnel.local' 
service = 'localtunnel.server.TunnelBroker' 

लेकिन, जब मैं चलाएँ: वैसे भी ... मैं localtunnel रेपो की निर्देशिका /deploy में फ़ाइलों के आधार पर myconfig.conf.py बनाया

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 में डाउनग्रेड करने से आपके पास होने वाली समस्याओं को हल करने के लिए पर्याप्त हो सकता है।

दूसरी तरफ, यह दुनिया में सबसे अच्छा समर्थित सॉफ्टवेयर की तरह प्रतीत नहीं होता है। क्या आपको यकीन है कि यह आपकी समस्या का सही समाधान है? मैंने उस रेपो में दिए गए कोड और सभी दस्तावेज़ों को देखा है, और मुझे जो मिलता है वह यह है कि यह अजीब टीसीपी-सुरंग-ओवर-जेसन-ओवर-websockets (हाँ, websockets, दोनों पर पाइथन के साथ सेट करता है सर्वर और क्लाइंट साइड!) चीज, बिना किसी विशेष सुरक्षा या एन्क्रिप्शन या मजबूती क्षमताओं को प्रदान किए, और ऐसा कुछ भी नहीं लगता है कि अन्य सामान्य उपकरण बेहतर नहीं कर सकते हैं। लेकिन दिया, मुझे कुछ महत्वपूर्ण याद आ रही है।

+0

क्या कोई अन्य जानकारी है जो मैं यहां अपना उत्तर सुधारने के लिए प्रदान या समझा सकता हूं? –

+0

जवाब देने में देरी के लिए हजारों माफ़ी ... लेकिन केवल ws4py डाउनग्रेडिंग काम नहीं कर सका। कृपया मेरा संपादन देखें। – borges

+0

और आपकी टिप्पणी के बारे में, इस टूल के साथ मेरा लक्ष्य केवल स्थानीय वेब सर्वर को परीक्षण सुविधाओं के लिए साझा करना है जो सुरक्षा से संबंधित नहीं हैं। यदि आप किसी भी उपकरण को जानते हैं जो ऐसा करता है, तो मुझे जानना अच्छा लगेगा! – borges

1

मुझे लगता है कि आपको localtunnel.com सर्वर स्थापित करने के निर्देशों का पालन करना होगा (यानी यदि आप किसी अन्य डोमेन पर अपना खुद का localtunnel सर्वर चलाने के लिए चाहते हैं)।

सामान्य उपयोग के लिए localtunnel v2 स्थापित करना pip install localtunnel (संभवतः सूडो के साथ) चलाना जितना आसान होना चाहिए।

एक बार यह हो, बस localtunnel-beta -n <subdomain> 8000

अधिक जानकारी के लिए चलाने के लिए, Jeff's blog post देखते हैं।

संबंधित मुद्दे