Ubuntu से इंटरनेट पर एक स्थानीय सेवा उजागर करें : पोर्ट फ़ॉरवर्डिंग का पूर्ण गाइड
Publié le 28 May 2025
- समस्या: NAT और निजी पते
- चरण 1: अपना सार्वजनिक IP पता पहचानें
- चरण 2: अपने उबुन्टू मशीन का स्थानीय IP पता जानें
- चरण 3: अपने बॉक्स पर पोर्ट फॉरवर्डिंग सेट अप करें
- चरण 4: Ubuntu पर सेवा की कॉन्फ़िगरेशन
- चरण 5: Ubuntu फ़ायरवॉल कॉन्फ़िगरेशन
- चरण 6 : परीक्षण और सत्यापन
- अच्छी प्रथाएँ और सुरक्षा
- पोर्ट फॉरवर्डिंग के विकल्प
- समस्या निवारण
- निष्कर्ष
-
अनुमानित पूर्वापेक्षाएँ : Ubuntu का बुनियादी ज्ञान, टर्मिनल का बुनियादी ज्ञान, मूल नेटवर्क अवधारणाएँ
-
तकनीकी अवधारणाएँ : NAT, पोर्ट फ़ॉरवर्डिंग, फ़ायरवॉल, रिवर्स प्रॉक्सी
-
सिस्टम कमांडें : टर्मिनल का उपयोग, नेटवर्क कॉन्फ़िगरेशन
-
उन्नत अनुभाग : निगरानी, सुरक्षा, क्लाउड विकल्प
समस्या: NAT और निजी पते
डिफ़ॉल्ट रूप से, आपके इंटरनेट बॉक्स का NAT (Network Address Translation) का उपयोग करके आपके घरेलू नेटवर्क के सभी उपकरणों के बीच केवल एक सार्वजनिक IP पता साझा किया जाता है। आपकी स्थानीय मशीनें निजी IP पते (192.168.x.x, 10.x.x.x, आदि) का उपयोग करती हैं, जो इंटरनेट पर रूट करने योग्य नहीं हैं।
जब आप अपनी Ubuntu मशीन पर कोई सेवा शुरू करते हैं (उदाहरण के लिए पोर्ट 8080 पर एक वेब सर्वर), तो वह केवल आपके स्थानीय नेटवर्क से ही सुलभ होता है। इसे इंटरनेट से सुलभ बनाने के लिए, हमें एक पोर्ट फ़ॉरवर्डिंग कॉन्फ़िगर करने की आवश्यकता होती है।
चरण 1: अपना सार्वजनिक IP पता पहचानें
सबसे पहले, अपने इंटरनेट कनेक्शन का सार्वजनिक IP पता प्राप्त करें:
# Plusieurs méthodes au choix
curl ifconfig.me
curl ipecho.net/plain
wget -qO- http://ipecho.net/plain
# Ou encore
curl -s checkip.amazonaws.com
यह IP पता वही है जिसका उपयोग इंटरनेट उपयोगकर्ता आपकी सेवा तक पहुँचने के लिए करेंगे।
चरण 2: अपने उबुन्टू मशीन का स्थानीय IP पता जानें
आपकी Ubuntu मशीन के पास आपके स्थानीय नेटवर्क पर एक निजी IP पता है। जानने के लिए:
# Afficher toutes les interfaces réseau
ip addr show
# Ou plus spécifiquement pour l'interface principale
ip route get 1.1.1.1 | awk '{print $7; exit}'
# Alternative avec hostname
hostname -I | awk '{print $1}'
इस पते को नोट करें (उदाहरण के लिए`192.168.1.100`), हमें इसे कॉन्फ़िगरेशन के लिए चाहिए होगा।
चरण 3: अपने बॉक्स पर पोर्ट फॉरवर्डिंग सेट अप करें
कॉन्फ़िगरेशन आपके बॉक्स के मॉडल के अनुसार भिन्न होता है, लेकिन सिद्धांत समान रहता है :
प्रशासन इंटरफ़ेस तक पहुँच
अपने ब्राउज़र को खोलें और अपने बॉक्स के वेब इंटरफ़ेस पर जाएँ :
-
फ्रीबॉक्स:`192.168.1.1` ou
mafreebox.freebox.fr -
लाइवबॉक्स ऑरेंज
192.168.1.1 -
SFR बॉक्स(No output)
192.168.1.1 -
Bbox Bouygues(No output)
192.168.1.254
रीडायरेक्शन की कॉन्फ़िगरेशन
पोर्ट फॉरवर्डिंग के लिए समर्पित खंड की तलाश करें (नाम भिन्न हो सकते हैं):
-
पोर्ट रीडायरेक्शन
-
NAT/PAT
-
पोर्ट फॉरवर्डिंग
-
गेम सर्वर
इन सेटिंग्स के साथ एक नया नियम बनाएँ :
| क्षेत्र | मूल्य |
|---|---|
नाम/विवरण |
Ubuntu वेब सेवा" (या कोई अन्य स्पष्ट नाम) |
बाहरी पोर्ट (या सार्वजनिक पोर्ट) |
8080 |
आंतरिक IP पता |
आपकी Ubuntu मशीन का IP (उदाहरण: 192.168.1.100) |
आंतरिक पोर्ट (या निजी पोर्ट) |
8080 |
प्रोटोकॉल |
TCP |
राज्य |
सक्रिय |
चरण 4: Ubuntu पर सेवा की कॉन्फ़िगरेशन
सुनिश्चित करें कि आपका सेवा सभी इंटरफेस पर सुनता है, केवल localhost पर नहीं:
# ✅ Correct : écoute sur toutes les interfaces
python3 -m http.server 8080 --bind 0.0.0.0
# ❌ Incorrect : écoute seulement en local
python3 -m http.server 8080 --bind 127.0.0.1
जाँचने के लिए कि आपका सेवा सही ढंग से सुन रहा है:
# Vérifier les ports en écoute
sudo netstat -tlnp | grep :8080
# ou avec ss (plus moderne)
sudo ss -tlnp | grep :8080
आपको कुछ ऐसा देखना चाहिए`0.0.0.0:8080`और नहीं`127.0.0.1:8080`.
चरण 5: Ubuntu फ़ायरवॉल कॉन्फ़िगरेशन
Ubuntu डिफ़ॉल्ट रूप से UFW (Uncomplicated Firewall) का उपयोग करता है। स्थिति जाँचें और आवश्यकतानुसार पोर्ट की अनुमति दें :
# Vérifier le statut du pare-feu
sudo ufw status
# Si le pare-feu est actif, autoriser le port 8080
sudo ufw allow 8080/tcp
# Ou plus spécifiquement pour un service web
sudo ufw allow 'Apache' # si vous utilisez Apache
sudo ufw allow 'Nginx Full' # si vous utilisez Nginx
चरण 6 : परीक्षण और सत्यापन
स्थानीय नेटवर्क से परीक्षण
पहले, अपने स्थानीय नेटवर्क पर किसी अन्य मशीन से पहुँच का परीक्षण करें:
# Remplacez par l'IP locale de votre machine Ubuntu
curl http://192.168.1.100:8080
बाहर से टेस्ट
अब, अपने सार्वजनिक IP का उपयोग करके इंटरनेट से परीक्षण करें :
# Remplacez par votre IP publique
curl http://VOTRE_IP_PUBLIQUE:8080
आप ऑनलाइन उपकरणों का भी उपयोग कर सकते हैं :
अच्छी प्रथाएँ और सुरक्षा
मूल सुरक्षा
# Configurer fail2ban pour protéger contre les attaques par force brute
sudo apt update && sudo apt install fail2ban
# Limiter l'accès avec UFW (exemple : autoriser seulement certaines IP)
sudo ufw allow from 203.0.113.0/24 to any port 8080
कनेक्शन मॉनिटरिंग
# Surveiller les connexions en temps réel
sudo netstat -an | grep :8080
# Logs des connexions (selon votre application)
sudo tail -f /var/log/nginx/access.log # pour Nginx
sudo journalctl -f -u your-service # pour un service systemd
रेवर्स प्रॉक्सी का उपयोग
बेहतर सुरक्षा और लचीलापन के लिए, नginx जैसे रिवर्स प्रॉक्सी का उपयोग करने पर विचार करें :
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
पोर्ट फॉरवर्डिंग के विकल्प
क्लाउड समाधान
-
ngrok: सुरक्षित अस्थायी सुरंग
-
Cloudflare टनलनि:शुल्क और सुरक्षित समाधान
-
serveo.net: सरल SSH टनल
# Exemple avec ngrok
ngrok http 8080
# Exemple avec serveo
ssh -R 80:localhost:8080 serveo.net
VPS और रिवर्स प्रॉक्सी
पेशेवर उपयोग के लिए, VPN के माध्यम से आपके स्थानीय बुनियादी ढाँचे की ओर इशारा करते हुए एक रिवर्स प्रॉक्सी के साथ VPS का उपयोग करने पर विचार करें।
समस्या निवारण
सामान्य समस्याएँ
| समस्या | हल |
|---|---|
बाहर से सेवा असुलभ |
पोर्ट फ़ॉरवर्डिंग कॉन्फ़िगरेशन की जाँच करें और सुनिश्चित करें कि सेवा 0.0.0.0 पर सुन रही है |
कनेक्शन अस्वीकारित |
सेवा शुरू नहीं हुई है या यह केवल 127.0.0.1 पर सुन रही है |
कनेक्शन टाइमआउट |
फ़ायरवॉल (बॉक्स या Ubuntu) की समस्या या पोर्ट फ़ॉरवर्डिंग का गलत कॉन्फ़िगरेशन |
सार्वजनिक IP नियमित रूप से बदलता है |
एक डायनामिक DNS (DynDNS, No-IP, आदि) कॉन्फ़िगर करें। |
नेटवर्क डिबग
# Tester la connectivité locale
telnet localhost 8080
# Tester depuis une autre machine du réseau
telnet 192.168.1.100 8080
# Vérifier les routes réseau
ip route show
# Analyser le trafic réseau
sudo tcpdump -i any port 8080
निष्कर्ष
इंटरनेट पर एक स्थानीय सेवा को उजागर करने के लिए पोर्ट फॉरवर्डिंग, सुरक्षा और निगरानी की सावधानीपूर्वक कॉन्फ़िगरेशन की आवश्यकता होती है। यद्यपि यह दृष्टिकोण विकास या व्यक्तिगत परियोजनाओं के लिए आदर्श है, उत्पादन उपयोग के लिए अधिक मज़बूत विकल्प (VPS, CDN, क्लाउड सेवाओं) पर विचार करें।
महत्वपूर्ण है कि आप हमेशा सुरक्षा को ध्यान में रखें: मजबूत पासवर्ड उपयोग करें, अपने सिस्टम को नियमित रूप से अपडेट करें, और अपने उजागर सेवाओं तक पहुँच की निगरानी करें।
अपने अनुभव और प्रश्न टिप्पणियों में साझा करने में संकोच न करें !