2010-05-25 28 views
16

तक नहीं पहुंच सकता है मैं उसी नेटवर्क पर किसी अन्य कंप्यूटर से अपने Django सर्वर तक पहुंचने का प्रयास कर रहा हूं। मैं अपने सर्वर को सेट कर लेने और सब कुछ सही ढंग python manage.py runserver का उपयोग करने और http://127.0.0.1:8000 के लिए जा रहा देख सकते हैं लेकिन जब मैं python manage.py runserver 0.0.0.0:80 इस्तेमाल करने की कोशिश, मैं किसी अन्य कंप्यूटर से मेरी Django पेज नहीं देख सकते। Django सर्वर होस्ट करने वाले कंप्यूटर इंट्रानेट आईपी 192.168.1.146 है। मेरे माध्यमिक कंप्यूटर पर, मैं एक ब्राउज़र को आग लगाता हूं और http://192.168.1.146:80 तक पहुंचने का प्रयास नहीं करता हूं। मैंने बंदरगाह 80 को भी अग्रेषित किया है (और मैंने 8000 की भी कोशिश की है) कोई फायदा नहीं हुआ :(मदद!Django 0.0.0.0:80; दूरस्थ रूप से

उत्तर

31

मेरे पास एक विंडोज कंप्यूटर पर एक ही प्रश्न था, और 0.0.0.0 के बजाय python manage.py runserver 192.168.1.146:80 के साथ Django सर्वर शुरू किया। (मैंने पाठ्यक्रम का एक अलग आईपी पता इस्तेमाल किया)।

उसके बाद, एक Windows फ़ायरवॉल संवाद को पॉप और पूछा कि क्या मैं बंदरगाह (हाँ) अनवरोधित चाहिए। लैन में अन्य कंप्यूटर तब 192.168.1.146:80 का उपयोग कर Django सर्वर तक पहुंच सकते हैं।

2

लगता है जैसे यह फ़ायरवॉल मुद्दा है। क्या आप अपने सर्वर पर पोर्ट 80 खोलना सुनिश्चित करते हैं कंप्यूटर?

+3

यह वास्तव में मेरा मुद्दा था। लिनक्स उपयोगकर्ताओं के लिए आपको पोर्ट 8000 या जो भी पोर्ट आप सेवा कर रहे हैं, उसे 'sudo ufw 8000/tcp' – oat

+0

@tao की अनुमति देने की अनुमति देने की अनुमति देने की आवश्यकता है। धन्यवाद। –

+0

@tao धन्यवाद। आपको इसे एक उत्तर के रूप में पोस्ट करना चाहिए। –

0

अग्रेषण पोर्ट 80 के आपके उल्लेख से, ऐसा लगता है कि आपका दूसरा कंप्यूटर Django चलाने वाले एक अलग नेटवर्क (राउटर) पर है। उस स्थिति में, आपको Django नेटवर्क के राउटर के आईपी पर ब्राउज़ करना चाहिए - 1 9 2.168 पता केवल राउटर के पीछे से दिखाई देता है, और पोर्ट अग्रेषण सुनिश्चित करेगा कि आपका अनुरोध सही मशीन पर जाता है।

0

आप इसे किस ओएस पर चल रहे हैं? क्या आपने रूट विशेषाधिकार देने की कोशिश की है? (यह मानते हुए आप ubuntu/लिनक्स पर यह चला रहे हैं)

इस बजाय चल रहा प्रयास करें:

sudo python manage.py runserver 0.0.0.0:80 
-3

जहां तक ​​मैं समझता हूँ, 0.0.0.0 एक गैर- routable आईपी है।

यह केवल, स्थानीय मशीन पर कार्य करेगा जब आप पता करने के लिए एक सॉकेट बाँध।

+0

वास्तव में '0.0.0.0' का अर्थ है हर संभव आईपी। यह वास्तव में मार्ग योग्य नहीं है, लेकिन इसका विशेष अर्थ है। –

+0

0.0.0.0 का अर्थ है सभी इंटरफेस पर बांधना। तो स्थानीय रूप से यह 127.0.0.1 से जुड़ा होगा, और यह किसी भी कार्ड पर किसी भी इंटरफ़ेस से जुड़ जाएगा। एनएटी अग्रेषण बंदरगाहों के साथ एनएटी के पीछे यदि आपके पीछे एक अच्छा विकल्प भी है, क्योंकि django इस बारे में भ्रमित नहीं होगा कि इसे गलत आईपी के साथ क्यों संबोधित किया जा रहा है – Shayne

7

आदेश यह मेरे लिए काम करने के लिए, मैं टर्मिनल (मैक ओएस एक्स 10.8.2) में sudo python manage.py runserver 0.0.0.0:80 भाग गया, और/फिर अपने ipad (या iPhone) ब्राउज़र में, http://[your आईपी पते] पर जाएं। मैं नहीं यह करने के लिए था: Testing Django website on iphone

To find the IP address on a Mac

2

जब यह उबंटू से चल रहा है, यह कहा जाता अनुमति नहीं दी है जब मैं यह करने के लिए करने की कोशिश की:

python manage.py runserver 0.0.0.0:80 

चूंकि यह एक अनुमति था रयान और gtujan की तरह निम्नलिखित ठीक काम किया।

sudo python manage.py runserver 0.0.0.0:80 

नोट: कि आप पोर्ट 80 पर एक सर्वर है, जो एक HTTP पोर्ट है चल रहे हैं। तो जब आप अपने वेब ब्राउज़र से यूआरएल टाइप करते हैं तो आपको अपने यूआरएल में ": 80" टाइप करने की आवश्यकता नहीं होती है।

http://192.168.1.146:80/ 

निम्नलिखित पर्याप्त होना चाहिए। यहां तक ​​कि यदि आप "80" टाइप करते हैं, तो इसे भी वही माना जाता है।

http://192.168.1.146/ 

हालांकि 8000 आदि जैसे अन्य पोर्ट नंबरों के लिए: 8000 को यूआरएल का हिस्सा होना आवश्यक है।

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