localhost को बाहर से एक्सेस करें: TypeScript समाधान

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

localhost जेल क्यों है और इससे कैसे भागें

\n\n

आप localhost:3000, 127.0.0.1:5173 या [::1]:8080 पर सर्वर चला रहे हैं - सब कुछ परफेक्ट काम करता है। जब तक आप किसी सहकर्मी या दोस्त को अपना प्रोजेक्ट दिखाने नहीं कहते। तब शुरू होता है: "पेज उपलब्ध नहीं", "Connection refused", "ERR_CONNECTION_REFUSED"। परिचित लग रहा है?

\n\n

समस्या यह है कि localhost (या 127.0.0.1) एक लूपबैक इंटरफ़ेस है। आपका सर्वर केवल उसी पर सुनता है। यह एक खाली कमरे में चिल्लाने जैसा है: आप खुद को सुनते हैं, लेकिन बाहर कोई नहीं। इस लेख में हम सीखेंगे कि कैसे लोकल सर्वर को पब्लिक (या कम से कम लोकल नेटवर्क में एक्सेसिबल) बनाया जाए TypeScript में। बिना किसी जादू के, केवल सिद्ध तरीके।

\n\n

हम Stack Overflow (जहाँ इस विषय पर हज़ारों व्यूज़ हैं) पर सबसे आम सवालों के जवाब देंगे और Express, Node.js और Vite के लिए तैयार समाधान देंगे।

\n\n

1. बेसिक: "सभी इंटरफ़ेस पर सुनना" का क्या मतलब है?

\n\n

जब आप Express में app.listen(3000) लिखते हैं, तो सर्वर डिफ़ॉल्ट रूप से केवल localhost पर सुनता है। बाहर से एक्सेस की अनुमति देने के लिए, आपको 0.0.0.0 (सभी IPv4 इंटरफ़ेस) या :: (सभी IPv6) निर्दिष्ट करना होगा।

\n\n

TypeScript में यह इस तरह दिखता है:

\n\n
import 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) पर भी उपलब्ध है।

\n\n

अपना लोकल IP कैसे पता करें?

\n
    \n
  • Windows: ipconfig → IPv4 एड्रेस खोजें
  • \n
  • macOS/Linux: ifconfig या ip addr → inet 192.168.x.x लाइन देखें
  • \n
\n\n

लेकिन यह केवल पहला कदम है। अक्सर समस्या गहरी होती है - फ़ायरवॉल, CORS या सर्वर का अन्य डिवाइस से जवाब न देना।

\n\n

2. CORS: ब्राउज़र रिक्वेस्ट क्यों ब्लॉक करता है?

\n\n

भले ही आपने नेटवर्क एक्सेस खोल दिया हो, ब्राउज़र दूसरे डोमेन से रिक्वेस्ट ब्लॉक कर सकता है। यह CORS (Cross-Origin Resource Sharing) पॉलिसी है। समाधान - सर्वर पर हेडर सेट करना।

\n\n

Express के लिए cors पैकेज इंस्टॉल करें:

\n\n
npm install cors\nnpm install @types/cors --save-dev\n
\n\n

TypeScript सर्वर में कनेक्ट करें:

\n\n
import 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: '*' का उपयोग न करें - विशिष्ट डोमेन दें।

\n\n

3. फ़ायरवॉल: अदृश्य ब्लॉकर

\n\n

भले ही सर्वर 0.0.0.0 पर सुन रहा हो, आपका फ़ायरवॉल इनकमिंग कनेक्शन ब्लॉक कर सकता है। यह एक सामान्य कारण है कि बाहरी एक्सेस काम नहीं करता।

\n\n

पोर्ट कैसे खोलें (Windows उदाहरण):

\n
    \n
  • "Windows Defender Firewall" खोलें
  • \n
  • "Advanced Settings" पर क्लिक करें
  • \n
  • Inbound Rule बनाएँ
  • \n
  • पोर्ट (जैसे 3000) और प्रोटोकॉल (TCP) निर्दिष्ट करें
  • \n
  • कनेक्शन की अनुमति दें
  • \n
\n\n

macOS/Linux पर ufw या iptables का उपयोग करें:

\n\n
# ufw के माध्यम से पोर्ट 3000 की अनुमति दें\nsudo ufw allow 3000/tcp\n
\n\n

4. Vite सर्वर की समस्या

ब्लॉग

पुस्तक अनुशंसाएँ