Proxmox Dedicated Sunucuda Tek IP ile VM/Container Erişimi Nasıl Sağlanır? (Hetzner, OVH vb. için Rehber)

Elinizde güçlü bir kiralık sunucu var, Proxmox'u kurdunuz ve artık birden fazla sanal makine (VM) veya container çalıştırmaya hazırsınız.

https://www.vhv.rs/viewpic/Tixwbim_proxmox-proxmox-logo-hd-png-download/

Elinizde güçlü bir kiralık sunucu var, Proxmox'u kurdunuz ve artık birden fazla sanal makine (VM) veya container çalıştırmaya hazırsınız. Ama bir sorun var: Sadece tek bir genel (public) IP adresiniz var. Peki, bu tek adresi kullanarak hem Proxmox'a hem de içinde çalışan onlarca servise nasıl erişim sağlayacaksınız?

Cevap: Sanal Ağ (NAT) ve Port Yönlendirme!

Bu rehber, size Proxmox sunucunuzdaki o değerli tek IP adresini, içerde çalışan tüm servisleriniz için nasıl verimli bir şekilde paylaşacağınızı adım adım anlatacak. Bu sayede her bir container'ınız hem internete çıkabilecek hem de dışarıdan belirli portlar üzerinden erişilebilir hale gelecek.

Senaryomuz:

  • Proxmox Host: Tek bir Genel IP adresine sahip.
  • Container/VM: Kendi özel, iç ağında çalışacak.
  • Hedef 1 (NAT): Container'ın Proxmox host üzerinden internete çıkmasını sağlamak.
  • Hedef 2 (Port Yönlendirme): Host'un genel IP'sinin belirli bir portuna (örneğin 8080) gelen isteği, içerideki container'ın web sunucusuna (port 80) yönlendirmek.

Hazırsanız, başlayalım!


Adım 1: İç İletişim için Sanal Ağ Köprüsü Oluşturma

Öncelikle, VM ve container'larımızın kendi aralarında konuşabileceği, dış dünyadan yalıtılmış özel bir ağ oluşturacağız.

  1. Proxmox arayüzünde, sol menüden sunucunuzun adına tıklayın ve System -> Network bölümüne gidin.
  2. Create butonuna tıklayın ve açılan menüden Linux Bridge'i seçin.
  3. Açılan pencereyi şu bilgilerle doldurun:
    • Name: vmbr1 (Bu, bizim özel iç ağımızın adı olacak).
    • IPv4/CIDR: 10.10.10.1/24 (Bu, iç ağımızın ağ geçidi adresi olacak. Çakışma olasılığı düşük bir özel IP aralığı seçmek her zaman iyidir).
    • Bridge ports: KESİNLİKLE BOŞ BIRAKIN! Bu alan, tamamen sanal bir ağ oluşturduğumuz için boş kalmalıdır.
    • Comment: Özel NAT Ağı gibi bir açıklama yazabilirsiniz.
  4. Create'e tıklayın. Değişikliklerin uygulanması için üstte beliren Apply Configuration butonuna basmayı unutmayın.

Adım 2: Proxmox'u İnternete Açılan Kapı Olarak Ayarlama (NAT Kurulumu)

Şimdi Proxmox'a, bu yeni özel ağ (vmbr1) ile internete bağlı olan ana ağ (vmbr0) arasındaki trafiği yönlendirmesini öğreteceğiz.

Önemli Not: Ağ ayarlarıyla oynamak risklidir. Hata yapmanız durumunda sunucunuza erişimi kaybedebilirsiniz. Hetzner gibi servis sağlayıcılar, bu gibi durumlar için bir "KVM Konsol" veya "Rescue Mode" sunar. Başlamadan önce bu kurtarma seçeneklerine nasıl erişeceğinizi bildiğinizden emin olun!

  1. Proxmox sunucunuzun Shell'ini (konsolunu) açın.

  2. Ağ yapılandırma dosyasını metin düzenleyici ile açın:

    nano /etc/network/interfaces
    
  3. Dosyanın en altındaki iface vmbr1 inet static bloğunu bulun ve içine aşağıdaki üç satırı dikkatlice ekleyin. (vmbr0 sizin ana, internete bağlı arayüzünüz olmalı. ip a komutuyla kontrol edebilirsiniz.)

    auto vmbr1
    iface vmbr1 inet static
            address 10.10.10.1/24
            bridge-ports none
            bridge-stp off
            bridge-fd 0
            
    # BU SATIRLARI EKLEYİN
            post-up echo 1 > /proc/sys/net/ipv4/ip_forward
            post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
            post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
    

    Bu komutların anlamı:

    • post-up echo ...: Linux çekirdeğinde IP yönlendirmeyi etkinleştirir.
    • post-up iptables ... MASQUERADE: NAT işleminin kalbidir. 10.10.10.0/24 ağından gelen paketlerin, ana ağ arayüzü vmbr0 üzerinden çıkarken Proxmox'un genel IP adresiyle "maskelenmesini" (gizlenmesini) sağlar.
    • post-down ...: Ağ kapatıldığında eklenen kuralı temizleyerek sistemi düzenli tutar.
  4. Dosyayı kaydetmek için CTRL + X, ardından Y ve Enter'a basın. Değişikliklerin sorunsuz uygulanması için sunucuyu yeniden başlatın.


Adım 3: Container'ınızı Özel Ağa Dahil Etme

Sıra geldi test container'ımızı bu yeni özel ağa bağlamaya.

  1. Proxmox arayüzünde ilgili container'ı seçin ve Network sekmesine gidin. eth0 arayüzüne çift tıklayın.
  2. Bridge olarak vmbr1'i seçin ve kaydedin.
  3. Container'ı başlatın, Console'u açın ve root olarak giriş yapın.
  4. Container'ın kendi ağ dosyasını düzenleyin:
    nano /etc/network/interfaces
    
  5. İçeriği aşağıdaki gibi statik IP ayarlarıyla güncelleyin:
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
            address 10.10.10.100/24     # Container'ın bu ağdaki özel IP adresi
            gateway 10.10.10.1          # Ağ geçidimiz: Proxmox'taki vmbr1'in adresi
            nameserver 8.8.8.8          # DNS sunucusu (Google)
            nameserver 1.1.1.1          # DNS sunucusu (Cloudflare)
    
  6. Dosyayı kaydedip container'ı Reboot edin.
  7. Açıldığında internet bağlantısını test edin: ping google.com. Cevap alıyorsanız, harika! NAT çalışıyor.

Adım 4: Port Yönlendirme ile Dış Dünyaya Kapı Açma

Şimdi en heyecanlı kısma geldik. Dışarıdan sunucumuzun genel IP'sinin 8080 portuna gelen bir isteği, container'ımızdaki web sunucusunun 80 portuna yönlendireceğiz.

  1. Test için Web Sunucusu Kurun (Container İçinde):

    apt update && apt install apache2 -y
    
  2. Proxmox Sunucusunun Shell'ine Geri Dönün:
    Aşağıdaki sihirli iptables komutunu çalıştırın:

    iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to-destination 10.10.10.100:80
    

    Komutun Anlamı: "Ey Proxmox, genel internete bağlı vmbr0 arayüzünden sana gelen ve hedef portu 8080 olan TCP paketlerini al ve onları 10.10.10.100 IP adresinin 80 numaralı portuna postala."

  3. Anı Test Etme Zamanı!
    Herhangi bir bilgisayardaki tarayıcınızı açın ve adres çubuğuna şunu yazın:
    http://<SUNUCUNUZUN_GENEL_IP_ADRESİ>:8080

    Eğer karşınıza Apache'nin "It works!" sayfası geliyorsa, başardınız! Dış dünyadan container'ınıza eriştiniz.


Adım 5: Ayarların Uçup Gitmesini Önleme

iptables kuralları geçicidir ve sunucu yeniden başladığında sıfırlanır. Bunları kalıcı yapmak için:

  1. Proxmox Sunucu Shell'inde iptables-persistent paketini kurun:
    apt install iptables-persistent
    
    Kurulum sırasında mevcut IPv4 ve IPv6 kurallarını kaydetmek isteyip istemediğinizi sorduğunda her ikisine de Yes diyerek onaylayın. Bu paket, kurallarınızı bir dosyaya kaydedecek ve her açılışta otomatik olarak yükleyecektir.

Sonuç

Tebrikler! Artık tek bir genel IP adresine sahip dedicated sunucunuzu, birden çok servisi barındırabilen çok yönlü bir platforma dönüştürdünüz. Bu yöntemle aynı mantığı kullanarak bir oyun sunucusunun portunu (örn: 25565), bir veritabanının portunu veya bir medya sunucusunun portunu ilgili VM veya container'a kolayca yönlendirebilirsiniz.