localhost जेल क्यों है और इससे कैसे भागें
\n\nआप localhost:3000, 127.0.0.1:5173 या [::1]:8080 पर सर्वर चला रहे हैं - सब कुछ परफेक्ट काम करता है। जब तक आप किसी सहकर्मी या दोस्त को अपना प्रोजेक्ट दिखाने नहीं कहते। तब शुरू होता है: "पेज उपलब्ध नहीं", "Connection refused", "ERR_CONNECTION_REFUSED"। परिचित लग रहा है?
समस्या यह है कि localhost (या 127.0.0.1) एक लूपबैक इंटरफ़ेस है। आपका सर्वर केवल उसी पर सुनता है। यह एक खाली कमरे में चिल्लाने जैसा है: आप खुद को सुनते हैं, लेकिन बाहर कोई नहीं। इस लेख में हम सीखेंगे कि कैसे लोकल सर्वर को पब्लिक (या कम से कम लोकल नेटवर्क में एक्सेसिबल) बनाया जाए TypeScript में। बिना किसी जादू के, केवल सिद्ध तरीके।
हम Stack Overflow (जहाँ इस विषय पर हज़ारों व्यूज़ हैं) पर सबसे आम सवालों के जवाब देंगे और Express, Node.js और Vite के लिए तैयार समाधान देंगे।
\n\n1. बेसिक: "सभी इंटरफ़ेस पर सुनना" का क्या मतलब है?
\n\nजब आप Express में app.listen(3000) लिखते हैं, तो सर्वर डिफ़ॉल्ट रूप से केवल localhost पर सुनता है। बाहर से एक्सेस की अनुमति देने के लिए, आपको 0.0.0.0 (सभी IPv4 इंटरफ़ेस) या :: (सभी IPv6) निर्दिष्ट करना होगा।
TypeScript में यह इस तरह दिखता है:
\n\nimport express from 'express';\n\nconst app = express();\nconst PORT = 3000;\n\n// सभी इंटरफ़ेस पर सुनें\napp.listen(PORT, '0.0.0.0', () => {\n console.log(`Server is running on http://0.0.0.0:${PORT}`);\n console.log(`आपके IP से लोकल नेटवर्क में उपलब्ध`);\n});\n\n\nअब सर्वर न केवल localhost पर, बल्कि आपके कंप्यूटर के लोकल IP (जैसे 192.168.1.10:3000) पर भी उपलब्ध है।
अपना लोकल IP कैसे पता करें?
\n- \n
- Windows:
ipconfig→ IPv4 एड्रेस खोजें \n - macOS/Linux:
ifconfigयाip addr→inet 192.168.x.xलाइन देखें \n
लेकिन यह केवल पहला कदम है। अक्सर समस्या गहरी होती है - फ़ायरवॉल, CORS या सर्वर का अन्य डिवाइस से जवाब न देना।
\n\n2. CORS: ब्राउज़र रिक्वेस्ट क्यों ब्लॉक करता है?
\n\nभले ही आपने नेटवर्क एक्सेस खोल दिया हो, ब्राउज़र दूसरे डोमेन से रिक्वेस्ट ब्लॉक कर सकता है। यह CORS (Cross-Origin Resource Sharing) पॉलिसी है। समाधान - सर्वर पर हेडर सेट करना।
\n\nExpress के लिए cors पैकेज इंस्टॉल करें:
npm install cors\nnpm install @types/cors --save-dev\n\n\nTypeScript सर्वर में कनेक्ट करें:
\n\nimport express from 'express';\nimport cors from 'cors';\n\nconst app = express();\n\n// सभी ओरिजिन की अनुमति दें (डेवलपमेंट के लिए)\napp.use(cors({\n origin: '*',\n methods: ['GET', 'POST', 'PUT', 'DELETE'],\n allowedHeaders: ['Content-Type', 'Authorization']\n}));\n\napp.listen(3000, '0.0.0.0', () => {\n console.log('CORS चालू, सर्वर बाहर से उपलब्ध');\n});\n\n\nमहत्वपूर्ण: प्रोडक्शन में origin: '*' का उपयोग न करें - विशिष्ट डोमेन दें।
3. फ़ायरवॉल: अदृश्य ब्लॉकर
\n\nभले ही सर्वर 0.0.0.0 पर सुन रहा हो, आपका फ़ायरवॉल इनकमिंग कनेक्शन ब्लॉक कर सकता है। यह एक सामान्य कारण है कि बाहरी एक्सेस काम नहीं करता।
पोर्ट कैसे खोलें (Windows उदाहरण):
\n- \n
- "Windows Defender Firewall" खोलें \n
- "Advanced Settings" पर क्लिक करें \n
- Inbound Rule बनाएँ \n
- पोर्ट (जैसे 3000) और प्रोटोकॉल (TCP) निर्दिष्ट करें \n
- कनेक्शन की अनुमति दें \n
macOS/Linux पर ufw या iptables का उपयोग करें:
# ufw के माध्यम से पोर्ट 3000 की अनुमति दें\nsudo ufw allow 3000/tcp\n\n\n