Ubuntu থেকে ইন্টারনেটে একটি স্থানীয় সেবা প্রকাশ করা: পোর্ট ফরওয়ার্ডিংর সম্পূর্ণ গাইড
Publié le 28 May 2025
- সামস্যা : NAT এবং ব্যক্তিগত ঠিকানাগুলো
- ধাপ ১ : আপনার সার্বজনীন IP ঠিকানা চিহ্নিত করুন
- ধাপ 2: আপনার উবুন্টু মেশিনের স্থানীয় IP ঠিকানা জানা
- ধাপ 3 : আপনার বক্সে পোর্ট ফরওয়ার্ডিং কনফিগার করুন
- ধাপ ৪: সেবার কনফিগারেশন উবুন্টু-এ
- ধাপ 5: উবুন্টু ফায়ারওয়ালের কনফিগারেশন
- ধাপ 6: পরীক্ষা এবং যাচাই
- ভালো অনুশীলন এবং নিরাপত্তা
- পোর্ট ফরোয়ার্ডিংয়ের বিকল্প
- সমস্যা সমাধান
- উপসংহার
লক্ষ্যীয় শ্রোতা : মধ্যম
-
অনumannিত পূর্বশর্ত : উবুন্টু ও টার্মিনালের মৌলিক জ্ঞান এবং মৌলিক নেটওয়ার্ক ধারণা
-
প্রযুক্তিগত ধারণা : NAT, পোর্ট ফরওয়ার্ডিং, ফায়ারওয়াল, রিভার্স প্রক্সি
-
সিস্টেম কমান্ড : টার্মিনালের ব্যবহার, নেটওয়ার্ক কনফিগারেশন
-
উন্নত বিভাগ : নিরীক্ষণ, নিরাপত্তা, ক্লাউড বিকল্প
সামস্যা : NAT এবং ব্যক্তিগত ঠিকানাগুলো
ডিফল্টভাবে, আপনার ইন্টারনেট বক্স NAT (Network Address Translation) ব্যবহার করে একটি একক পাবলিক IP ঠিকানা আপনার ঘরোয়া নেটওয়ার্কের সব ডিভাইসের মধ্যে শেয়ার করে। আপনার স্থানীয় মেশিনগুলি ব্যক্তিগত IP ঠিকানা (192.168.x.x, 10.x.x.x, ইত্যাদি) ব্যবহার করে, যা ইন্টারনেটে রুটযোগ্য নয়।
আপনি আপনার Ubuntu মেশিনে একটি সেবা চালু করলে (উদাহরণস্বরূপ পোর্ট 8080-এ একটি ওয়েব সার্ভার), সেটি শুধু আপনার স্থানীয় নেটওয়ার্ক থেকে অ্যাক্সেসযোগ্য। ইন্টারনেট থেকে এটি অ্যাক্সেসযোগ্য করতে, আমাদের একটি পোর্ট ফরওয়ার্ডিং কনফিগার করতে হবে।
ধাপ ১ : আপনার সার্বজনীন 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 ঠিকানা হলো যে ঠিক jota ইন্টারনেট ব্যবহারকারী আপনার পরিষেবা অ্যাক্সেস করতে ব্যবহার করবে।
ধাপ 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 : আপনার বক্সে পোর্ট ফরওয়ার্ডিং কনফিগার করুন
আপনার বক্স মডেলের অনুযায়ী কনফিগারেশন পরিবর্তিত হয়, কিন্তু নিয়মটি একই
প্রশাসক ইন্টারফেস অ্যাক্সেস
আপনার ব্রাউজার খুলুন এবং আপনার বক্সের ওেব ইন্টারফেসে যান :
-
Freebox</think>
(There is nothing to translate; output remains empty.)192.168.1.1 ou mafreebox.freebox.fr
-
Livebox Orange:`192.168.1.1`
-
SFR বক্স :
192.168.1.1 -
Bbox Bouygues:`192.168.1.254`
পুনর্নির্দেশ কনফিগারেশন
পোর্ট ফরওয়ার্ডিং (নামগুলো পরিবর্তিত হয়) এর জন্য দেডিকেটেড বিভাগটি খুঁজুন:
-
পোর্ট ফরওয়ার্ডিং
-
NAT/PAT
-
পোর্ট ফরওয়ার্ডিং
-
গেম সার্ভার
এই প্যারামিটারগুলো দিয়ে একটি নতুন নিয়ম তৈরি করুন:
| ক্ষেত্র | মান |
|---|---|
নাম/বিবরণ |
উবুন্টু ওয়েব সেবা (অথবা স্পষ্ট নাম) |
বাহ্যিক পোর্ট (অথবা জনবেলি পোর্ট) |
8080 |
অভ্যন্তਰੀণ IP ঠিকানা |
আপনার উবুন্টু মেশিনের আইপি (উদাহরণস্বরূপ: 192.168.1.100) |
অন্তর্গত পোর্ট (বা প্রাইভেট পোর্ট) |
8080 |
প্রোটোকল |
TCP |
রাষ্ট্র |
সক্রিয় |
ধাপ ৪: সেবার কনফিগারেশন উবুন্টু-এ
নিশ্চিত করুন যে আপনার সেবা সব ইন্টারফেসে শুনছে, শুধুমাত্র লোকালহোস্টে নয় :
# ✅ 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 ডিফল্টরূপে 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
একটি রিভার্স প্রক্সি ব্যবহার
বेहतर নিরাপত্তা এবং লচিলতা জন্য, Nginx মতো একটি রিভার্স প্রক্সি ব্যবহার করতে বিবেচনা করুন:
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 Tunnel: মুক্ত এবং নিরাপদ সমাধান
-
serveo.net: সরল SSH টানেল
# Exemple avec ngrok
ngrok http 8080
# Exemple avec serveo
ssh -R 80:localhost:8080 serveo.net
VPS এবং রিভার্স প্রক্সি
পেশাদার ব্যবহারের জন্য, একটি VPS ব্যবহার করতে বিবেচনা করুন, যাতে একটি রিভার্স প্রক্সি আপনার স্থানীয় ইনফ্রাস্ট্রাকচারের দিকে VPNের মাধ্যমে নির্দেশ করে।
সমস্যা সমাধান
সাধারণ সমস্যা
| সমস্যা | সমাধান |
|---|---|
বাহ্যিক থেকে সেবা অপ্রাপ্য |
পোর্ট ফরওয়ার্ডিং কনফিগারেশন যাচাই করুন এবং পরিষেবাটি 0.0.0.0-এ শুনছে তা যাচাই করুন |
সংযোগ প্রত্যাখ্যাগ |
সেবা শুরু হয়নি অথবা শুধুমাত্র ১২৭.০.০.১-এ শোনছে |
সংযোগ টাইমআউট |
ফায়ারওয়াল সমস্যা (বক্স অথবা উবুন্টু) অথবা ভুলভাবে কনফিগার করা পোর্ট ফরওয়ার্ডিং |
সাধারণ IP নিয়মিতভাবে পরিবর্তিত হয় |
কনফিগার করুন একটি ডাইনামিক DNS (DynDNS, No-IP, etc.) |
নেটওয়ার্ক ডিবাগ
# 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, ক্লাউড পরিষেবা) সম্পর্কে চিন্তা করুন।
গুরুত্বপূর্ণ হলো নিরাপত্তাকে আপনার মনে রাখতে সব সময়: শক্তিশালী পাসওয়ার্ড ব্যবহার করুন, নিয়মিত আপনার সিস্টেম আপডেট করুন, এবং আপনার উন্মুক্ত সেবাগুলোর প্রবেশদ্বারগুলোকে নিগরানি করুন।
মন্তব্যে আপনার অভিজ্ঞতা এবং প্রশ্ন শেয়ার করুন; হিচকিচাবেন না!