Cељна група: средњи
  • Pretpostavljeni preuslovi : osnovno znanje Ubuntu-a, terminala, osnovni koncepti mreže

  • Tehnički pojmovi : NAT, preusmeravanje porta, vatrozidni zid, reverzni proxy

  • Системске команде : коришћење терминала, конфигурација мреже

  • Napredne sekcije : monitoring, bezbednost, alternative u oblaku

Проблема: NAT и приватне адресе

Проблематика : Ви развијете веб-апликацију на вашој Убунту машини и желите да буде доступна изван вашег домаћинског мрежа? Ви сте на правим месту! У овом чланку ћемо видети како да изложите локалну услугу (на пример на порту 8080) на Интернет конфигурисањем преусмеравања порта на вашем интернет рутеру.

Podrazumevano vaš internetski ruter koristi NAT (Network Address Translation) da dele jednu javnu IP adresu između svih uređaja vaše kućne mreže. Vaši lokalni uređaji koriste privatne IP adrese (192.168.x.x, 10.x.x.x, itd.) koje nisu rutabilne na Internetu.

Kada pokrenete uslugu na vašoj Ubuntu mašini (npr. web server na portu 8080), ona je dostupna samo iz vaše lokalne mreže. Da bi je učinili dostupnom iz Interneta, moramo da podesimo preusmeravanje porta.

Корак 1: Идентификујте вашу јавну IP адресу

Prvo, preuzmimo javnu IP adresu vaše internet veze:

# 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 рачунара

Vaša Ubuntu mašina ima privatnu IP adresu na vašoj lokalnoj mreži. Da biste je saznali:

# 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`), ćemo nam biti potrebno za konfiguraciju.

Korak 3: Podešavanje preusmeravanja porta na vašem ruteru

Konfiguracija varira u zavisnosti od modela vašeg uređaja, ali princip ostaje isti:

Приступ administracijskom interfejsu

Otvorite svoj pretraživač i idite na web interfejs svojeg rutera :

  • Freebox:`192.168.1.1` ou mafreebox.freebox.fr

  • Livebox Orange : 192.168.1.1

  • SFR Box:`192.168.1.1`

  • Bbox Bouygues:`192.168.1.254`

Конфигурација преусмеравања

Pronađite sekciju posvećenu prosleđivanju porta (nazivi variju) :

  • Преусмеравање порта

  • NAT/PAT

  • Преузимање порта

  • Игровни сервери

Kreirajte novo pravilo sa ovim parametrima :

polje Vrednost

Назив/Опис

Ubuntu web usluga (ili drugi jasni naziv)

Vanjski port (ili javni port)

8080

Unutrašnja IP adresa

IP vaše Ubuntu mašine (npr: 192.168.1.100)

Unutrašnj port (ili privatni port)

8080

Protokol

TCP

стање

Активисан

Корак 4: Конфигурација услуге на Ubuntu

Uverite se da vaša usluga nasluhuje na svim interfejsima, a ne samo na localhostu :

# ✅ 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

Trebalo bi da vidite nešto kao`0.0.0.0:8080`и не`127.0.0.1:8080`.

Корак 5 : Конфигурација Убунту фајрволу

Ubuntu podrazumevano koristi UFW (Uncomplicated Firewall). Proverite njegov status i dozvolite port ako je potrebno :

# 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

Korak 6 : Test i validacija

Тест са локалне мреже

Prvo, testirajte pristup s drugog računala u vašoj lokalnoj mreži :

# Remplacez par l'IP locale de votre machine Ubuntu
curl http://192.168.1.100:8080

Тест изван

Sada, testirajte sa interneta koristeći vašu javnu IP adresu:

# Remplacez par votre IP publique
curl http://VOTRE_IP_PUBLIQUE:8080

Možete takođe koristiti online alate kao:

Dobre prakse i bezbednost

Основна безбедност

# 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

Monitoring veza

# 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

Коришћење реверзног прокси

Za bolju bezbednost i fleksibilitet, razmotrite korišćenje reverse proxy-ja kao što je 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;
    }
}

Alternative za preusmeravanje porta

Решения у облаку

  • ngrokprivremeni sigurnosni tunel

  • Cloudflare Tunnel: besplatno i sigurno rešenje

  • serveo.net: jednostavan SSH tunel

# Exemple avec ngrok
ngrok http 8080

# Exemple avec serveo
ssh -R 80:localhost:8080 serveo.net

VPS i obrnuti proxy

Za profesionalnu upotrebu, razmislite o korišćenju VPS-a sa reverzním proxyom koji kaže na vašu lokalnu infrastrukturu putem VPN-a.

Otklanjanje poteškoća

češći problemi

Problem Rešenje

Usluga nije dostupna izvan

Proverite konfiguraciju prijenosa porta i da li servis sluša na 0.0.0.0

Veza odbacena

Usluga nije pokrenuta ili sluša samo na 127.0.0.1

Истек времена везе

Problem sa firewallom (box ili Ubuntu) ili pogrešno konfigurisano port forwarding

Javna IP se redovno menja.

Konfigurisite dinamički DNS (DynDNS, No-IP, itd.)

Debug mreže

# 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

Zaključak

Izlaganje lokalnog servisa na Internet zahteva pažljivu konfiguraciju prijenosa porta, sigurnosti i monitoringu. Iako je ovaj pristup savršen za razvoj ili lične projekte, razmotrite jače alternative (VPS, CDN, usluge u oblaku) za proizvodnu upotrebu.

Važno je da uvek imate na umu bezbednost: koristite jače lozinke, redovno ažurirajte svoj sistem i pratite pristup vašim izloženim uslugama.

Ne sumnjajte da podelite vaša iskustva i pitanja u komentari!

Повезани чланци