Hedef kitle : Orta seviye
  • Varsayılan ön koşullar: Ubuntu, terminal ve temel ağ kavramları hakkında temel bilgi

  • Teknik Kavramlar: NAT, port yönlendirme, güvenlik duvarı, ters proxy

  • Sistem komutları: terminal kullanımı, ağ yapılandırması

  • İleri düzey bölümler: monitoring, güvenlik, bulut alternatifleri

Sorun: NAT ve özel adresler

Sorun : Ubuntu makinenizde bir web uygulaması geliştiriyorsunuz ve ev ağınızdan dışarıdan erişilebilir olmasını istiyorsunuz mu? Doğru yerdesiniz! Bu makalede, internet kutunuza (router’ınıza) port yönlendirme yaparak, bir yerel hizmeti (örneğin 8080 numaralı porta üzerinden) İnternet’e nasıl açacağınızı göreceğiz.

Varsayılan olarak, internet kutunuz, Network Address Translation (NAT) kullanarak ev ağınızdaki tüm cihazlar arasında tek bir kamu IP adresini paylaşır. Yerel makineleriniz (192.168.x.x, 10.x.x.x vb.) gibi özel IP adreslerini kullanır ve bu adresler Internet üzerinden yönlendirilemez.

Ubuntu makinenizde bir hizmet başlattığınızda (örneğin 8080 numaralı porta sahip bir web sunucusu), bu hizmet sadece yerel ağınızdan erişilebilir olur. İnternetten erişime açmak için bir bağlantı noktası yönlendirmesi yapmamız gerekir.

Adım 1: Herkese açık IP adresinizi belirleyin

Öncelikle, internet bağlantınızdan kamu IP adresimizi alalım.

# 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

Internet kullanıcıları hizmetinize erişmek için kullanacakları IP adresi budur.

Adım 2: Ubuntu makinenizin yerel IP adresini öğrenin

Ubuntu makineniz yerel ağınızda özel bir IP adresine sahiptir. Bunu öğrenmek için:

# 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}'

Bu adresi not alın (örnek olarak)192.168.1.100), yapılandırma için buna ihtiyacımız olacak.

Adım 3: Kutunuzda port forwarding’u yapılandırın

Yapılandırma, kutunuzun modeline göre değişse de, ilke aynı kalır:

Yönetim arabirimine erişim

Tarayıcınızı açın ve cihazınızın web arayüzüne gidin.

  • 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`

Yönlendirme yapılandırması

Port yönlendirme için ayrılmış bölümü arayın (isimler değişebilir):

  • Bağlantı noktası yönlendirme

  • NAT/PAT

  • Port yönlendirme

  • Oyun sunucuları

Bu parametrelerle yeni bir kural oluşturun:

alan Değer

İsim/Açıklama

Ubuntu Web Servisi" (veya başka açıkça belirtilen isim)

Dış port (veya kamu port)

8080

İç IP adresi

Ubuntu makinenizin IP adresi (örnek: 192.168.1.100)

Dahili port (veya özel port)

8080

Protokol

TCP

Devlet

Etkinleştirildi

Adım 4 : Ubuntu’da hizmet yapılandırması

Servisinizin sadece localhost değil, tüm arayüzlerde dinlediğinden emin olun :

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

Servisinizin doğru şekilde dinlediğini kontrol etmek için :

# Vérifier les ports en écoute
sudo netstat -tlnp | grep :8080
# ou avec ss (plus moderne)
sudo ss -tlnp | grep :8080

Bir şey gibi bir şey görmeniz gerekir`0.0.0.0:8080`ve değil`127.0.0.1:8080`.

Adım 5: Ubuntu güvenlik duvarı yapılandırması

Ubuntu varsayılan olarak UFW (Uncomplicated Firewall) kullanır. Durumunu kontrol edin ve gerekirse porta izin verin :

# 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

Adım 6 : Test ve doğrulama

Yerel ağdan test

İlk olarak, yerel ağınızdaki başka bir makineden erişimi test edin :

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

Dışarıdan test

Şimdi genel IP’nizi kullanarak İnternet üzerinden test edin :

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

Çevrimiçi araçlar da kullanabilirsiniz:

İyi uygulamalar ve güvenlik

Temel güvenlik

# 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

Bağlantı izleme

# 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

Reverse proxy kullanımı

Daha iyi güvenlik ve esneklik için Nginx gibi bir ters proxy kullanmayı düşünün :

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;
    }
}

Port yönlendirme alternatifleri

Bulut çözümleri

  • ngrok: geçici güvenli tünel

  • Cloudflare Tunnelücretsiz ve güvenli çözüm

  • serveo.net: basit SSH tüneli

# Exemple avec ngrok
ngrok http 8080

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

VPS ve ters proxy

Profesyonel kullanım için, VPN üzerinden yerel altyapınıza yönlendiren bir reverse proxy ile VPS kullanmayı düşünün.

Sorun giderme

Yaygın sorunlar

Sorun Çözüm

Hizmet dışarıdan erişilemez

Port yönlendirme yapılandırmasını kontrol edin ve hizmetin 0.0.0.0 üzerinden dinlediğini doğrulayın

Bağlantı reddedildi

Servis başlatılmıyor veya sadece 127.0.0.1 üzerinde dinliyor

Bağlantı zaman aşımı

(kutu veya Ubuntu) güvenlik duvarı sorunu veya yanlış yapılandırılmış port yönlendirme

Kamu IP adresi düzenli olarak değişir

Dinamik bir DNS yapılandırın (DynDNS, No-IP, vb.)

Ağ hata ayıklama

# 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

Sonuç

İnternet üzerindeki bir yerel hizmeti açmak, port yönlendirme, güvenlik ve izleme için dikkatli yapılandırma gerektirir. Bu yaklaşım, geliştirme veya kişisel projeler için mükemmeldir ancak üretim kullanımı için daha sağlam alternatifleri (VPS, CDN, bulut hizmetleri) düşünün.

Her zaman güvenliği akılda tutmak önemlidir: güçlü şifreler kullanın, sisteminizi düzenli olarak güncelleyin ve açık hizmetlerinizin erişimlerini izleyin

Deneyimlerinizi ve sorularınızı yorumlarda paylaşmaktan çekinmeyin!

İlgili Makaleler