Sunucu Yönetimi & Linux

    Ubuntu'da Netplan ile Statik IP Ayarlama

    Ubuntu Server üzerinde netplan yapılandırmasıyla kalıcı statik IP ve DNS ayarlamanın adım adım rehberi.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Yeni kurulmuş bir Ubuntu sunucusunun ağ tarafında sizi ilk karşılayan iş, IP adresinin sabitlenmesidir. DHCP ile dağıtılan bir adres bir gün değişebilir; oysa üzerine web sunucusu, veritabanı ya da mail servisi kuracağınız bir makinenin adresi her yeniden başlatmada aynı kalmalıdır. Aksi hâlde DNS kayıtlarınız, güvenlik duvarı kurallarınız ve uzaktan bağlanan istemcileriniz bir sabah kendini boşlukta bulur. İşte Ubuntu 17.10 ve sonrasında bu sabitleme işini yapan araç netplan'dır.

    Netplan, eski /etc/network/interfaces dosyasının yerini alan, YAML tabanlı bir ağ yapılandırma katmanıdır. Siz basit bir metin dosyasına "şu arayüze şu IP'yi ver, şu ağ geçidini kullan, şu DNS sunucularını tanımla" dersiniz; netplan bunu arka plandaki asıl motor için (systemd-networkd veya NetworkManager) uygun ayarlara çevirir. Bu rehberde dosya yapısını, en çok tökezlenen girinti kurallarını, statik IP tanımını, DHCP'yi kapatmayı ve en önemlisi yanlış bir ayarla sunucuya erişimi kaybettiğinizde konsol üzerinden nasıl kurtaracağınızı adım adım göreceğiz. Komut satırına henüz ısınıyorsanız önce Linux temel komutları rehberimiz işinizi kolaylaştırır.

    Netplan Nedir ve Neden YAML Kullanır#

    Netplan'ı bir "çevirmen" olarak düşünmek en doğru zihinsel modeldir. Kendisi doğrudan ağ arayüzlerini yönetmez; siz /etc/netplan/ altındaki YAML dosyalarını yazarsınız, netplan generate veya netplan apply komutu bu dosyaları okuyup arka plandaki gerçek ağ yöneticisine (backend/renderer) ait yapılandırmayı üretir. Sunucu kurulumlarında bu backend genellikle systemd-networkd, masaüstü kurulumlarında ise NetworkManager olur.

    Bu tasarımın getirdiği en büyük avantaj tekbiçimliliktir. Eskiden Debian tabanlı sistemlerde ağ ayarı /etc/network/interfaces dosyasında, bir başka dağıtımda başka bir yerde, kablosuz için ayrı bir araçta tutulurdu. Netplan hepsini tek bir YAML sözdiziminde toplar: kablolu, kablosuz, VLAN, bonding, köprü (bridge) yapılandırmalarının tamamı aynı mantıkla yazılır. Bir kez öğrendiğiniz sözdizimini her senaryoda kullanırsınız.

    YAML seçilmesinin nedeni, insan tarafından okunabilir olması ve girinti (indentation) ile hiyerarşi kurmasıdır. Ancak bu okunabilirliğin bir bedeli vardır: YAML boşluklara aşırı duyarlıdır. İlerideki bölümde göreceğimiz gibi, yanlış bir sekme karakteri veya kayan bir hizalama tüm dosyayı geçersiz kılar. Bu yüzden netplan'ı sevmenin ilk şartı, YAML'ın kurallarına saygı duymaktır.

    Yapılandırma Dosyasını Bulmak ve YAML Girinti Kuralları#

    Netplan yapılandırmaları /etc/netplan/ dizininde .yaml uzantılı dosyalar hâlinde durur. Ubuntu'nun kurulum yöntemine göre dosya adı değişir; sık karşılaşacaklarınız şunlardır:

    ls -1 /etc/netplan/
    # 00-installer-config.yaml     (Server ISO kurulumu)
    # 50-cloud-init.yaml           (bulut sağlayıcı / cloud-init)
    # 01-network-manager-all.yaml  (Masaüstü)
    

    Dizinde birden fazla dosya varsa netplan bunları ada göre alfabetik sırayla okur ve birleştirir; 00- ile başlayan bir dosya 50- ile başlayandan önce işlenir. Bu yüzden kendi elle yazdığınız yapılandırmayı ayrı bir dosyada (/etc/netplan/60-static.yaml gibi) tutmak temiz bir alışkanlıktır. Bulut sunucularında ise cloud-init dosyasını doğrudan düzenlemek yerine, üstüne yazan kendi dosyanızı eklemek daha güvenlidir.

    Şimdi en kritik konuya, girintiye gelelim. YAML'da hiyerarşi yalnızca boşluklarla kurulur ve iki demir kural vardır: asla sekme (tab) karakteri kullanılmaz, yalnızca boşluk kullanılır ve her seviye tutarlı sayıda boşlukla (netplan geleneğinde 2 boşluk) girintilenir. Aşağıdaki iskelet, seviyelerin nasıl iç içe geçtiğini gösterir:

    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s3:
          dhcp4: false
          addresses:
            - 192.168.1.50/24
    

    Burada network en dışta, version/renderer/ethernets iki boşluk içeride, arayüz adı enp0s3 dört boşluk içeride, onun özellikleri altı boşluk içeridedir. Bir satırı bir boşluk kaydırırsanız YAML onu bambaşka bir seviyeye ait sanar ve netplan "invalid YAML" hatası verir. Arayüz adınızı (enp0s3, eth0, ens18 gibi kart ve dağıtıma göre değişir) öğrenmek için ip -brief link show ya da ip addr komutunu kullanın; dosyaya yazacağınız ad, sistemdeki gerçek arayüz adıyla harfi harfine aynı olmalıdır.

    Statik IP, Ağ Geçidi ve DNS Tanımlama#

    Sıra en çok işinize yarayacak bölüme, tam bir statik yapılandırma yazmaya geldi. Aşağıdaki dosya; DHCP'yi kapatır, enp0s3 arayüzüne sabit bir IP verir, varsayılan ağ geçidini ve iki DNS sunucusunu tanımlar. Bu, üretim sunucularında kullanabileceğiniz gerçekçi bir şablondur:

    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s3:
          dhcp4: false
          dhcp6: false
          addresses:
            - 192.168.1.50/24
          routes:
            - to: default
              via: 192.168.1.1
          nameservers:
            addresses:
              - 1.1.1.1
              - 8.8.8.8
            search:
              - clou.tr
    

    Alanları tek tek açalım, çünkü her birinin bir mantığı var:

    AlanGöreviÖrnek değer
    dhcp4 / dhcp6IPv4/IPv6 için otomatik adres almayı aç/kapatfalse
    addressesArayüze atanacak statik IP + CIDR maskesi192.168.1.50/24
    routesRota tablosu; to: default varsayılan çıkışı belirlervia: 192.168.1.1
    nameservers.addressesDNS çözümleyici sunucuları1.1.1.1, 8.8.8.8
    nameservers.searchKısa isimlere eklenecek arama alan adıclou.tr

    Burada en sık gözden kaçan iki nokta CIDR maskesi ve varsayılan rota söz dizimidir. IP adresini 192.168.1.50 diye yalın yazamazsınız; mutlaka alt ağ maskesini CIDR biçiminde eklemelisiniz (/24, yani 255.255.255.0). Maskeyi unutursanız arayüz alt ağ üyeliğini bilmez ve yerel iletişim kırılır.

    Varsayılan ağ geçidi konusunda tarihsel bir ayrıntı var. Eski netplan sürümlerinde ağ geçidi gateway4: 192.168.1.1 satırıyla verilirdi. Bu yazım Ubuntu 22.04'ten itibaren kullanımdan kaldırıldı (deprecated); netplan apply çalıştırdığınızda uyarı basar. Modern ve önerilen yöntem, yukarıdaki gibi routes bloğu altında to: default / via: ... tanımlamaktır. Karşılaştırma için ikisini yan yana koyalım:

    # ESKİ (artık uyarı verir, kullanmayın)
          gateway4: 192.168.1.1
    
    # YENİ (önerilen)
          routes:
            - to: default
              via: 192.168.1.1
    

    DNS tarafında nameservers.addresses altına yazdığınız sunucular sistemin ad çözümlemesini yürütür. Buradaki değerler alan adı değil, DNS sunucularının IP adresleridir. Alan adınızın hangi nameserver'ları kullandığını ve bunları nasıl değiştireceğinizi merak ediyorsanız nameserver değiştirme rehberimiz konunun alan adı tarafını ayrıntısıyla ele alıyor; buradaki nameservers bloğu ise yalnızca sunucunun kendi çözümleyici ayarıdır ve ikisi birbirinden bağımsızdır.

    DHCP'yi Kapatma ve Renderer Seçimi#

    Statik IP'nin kalıcı olması için DHCP'nin kesinlikle kapalı olması gerekir. Aksi takdirde iki adres kaynağı çakışır: netplan sabit adresi verirken DHCP sunucusu ayrı bir adres dayatmaya çalışır ve arayüzde beklenmedik ikinci bir IP belirir. Bunu önlemek için ilgili arayüzde dhcp4: false (ve IPv6 kullanmıyorsanız dhcp6: false) satırlarını mutlaka ekleyin.

    renderer satırı, netplan'ın hangi arka motoru kullanacağını belirler. Sunucularda networkd (yani systemd-networkd) doğru tercihtir; hafiftir, arayüz gerektirmez ve headless makinelere uygundur. Masaüstü ortamlarında ise NetworkManager kullanılır. Renderer'ı hem genel düzeyde hem de arayüz bazında ayarlayabilirsiniz:

    network:
      version: 2
      renderer: networkd     # tüm arayüzler için varsayılan motor
      ethernets:
        enp0s3:
          dhcp4: false
          addresses: [192.168.1.50/24]
    

    Yukarıdaki örnekte addresses alanını köşeli parantezli tek satır (akış/flow biçimi) olarak da yazabileceğinizi görüyorsunuz; bu, tek bir değer için okunaklı bir kısayoldur ve blok listeyle işlevsel olarak aynıdır. Renderer değerini yalnızca gerçekten bilinçli bir gerekçeyle değiştirin; sunucularda varsayılan networkd seçeneğinden sapmak nadiren gerekir. Ubuntu sürümünüzü yükseltmeyi de düşünüyorsanız LTS sürüm yükseltme rehberimize göz atabilirsiniz, çünkü netplan ve backend davranışları sürümler arasında incelikli farklar taşıyabilir.

    netplan try ve netplan apply ile Güvenli Uygulama#

    Yapılandırmayı yazdınız; şimdi uygulama zamanı. Burada aceleci davranmak, özellikle uzaktaki bir sunucuda tehlikelidir. Netplan iki temel komut sunar ve aralarındaki farkı bilmek sizi çok ciddi bir baş ağrısından kurtarır.

    Doğrudan uygulamak isterseniz:

    sudo netplan apply
    

    Bu komut yapılandırmayı anında devreye alır. Ayar doğruysa sorun yok; ama yanlışsa ve uzaktan SSH ile bağlıysanız, komutu çalıştırdığınız anda bağlantınız kopabilir ve makineye bir daha giremezsiniz. İşte tam da bu senaryo için try komutu vardır:

    sudo netplan try
    

    netplan try, yeni yapılandırmayı geçici olarak uygular ve ekrana bir geri sayım koyar (varsayılan 120 saniye). Yeni ayar çalışıyorsa ve hâlâ makineye erişebiliyorsanız Enter tuşuna basıp değişikliği kalıcılaştırırsınız. Eğer bir şeyler ters gittiyse ve bağlantınız koptuysa, hiçbir tuşa basmazsınız; süre dolduğunda netplan otomatik olarak eski yapılandırmaya geri döner ve makine kurtulur. Uzaktaki her üretim sunucusunda apply yerine önce try kullanmak, deneyimli sistem yöneticilerinin refleksidir.

    Uygulama öncesi dosyanın söz dizimini denetlemek için de şu komut vardır:

    sudo netplan generate   # YAML'i backend yapılandırmasına çevirir, hataları raporlar
    

    Söz dizimi hatası varsa netplan burada hangi dosyada ve hangi satırda sorun olduğunu söyler. Uyguladıktan sonra sonucu doğrulamak için ise ip addr ve ip route komutlarıyla adresin ve varsayılan rotanın gerçekten oturduğunu kontrol edin:

    ip -brief addr show enp0s3
    ip route show default
    

    Yanlış Yapılandırmada Bağlantıyı Kurtarma#

    En kötü senaryoya hazırlıklı olmak, iyi bir sistem yöneticisini ayırt eden şeydir. Diyelim ki netplan apply çalıştırdınız, IP'yi yanlış yazdınız veya ağ geçidini hatalı girdiniz; SSH oturumunuz koptu ve sunucu artık ping'e bile yanıt vermiyor. Panik yapmayın, çünkü çıkış yolu her zaman vardır: sağlayıcının konsol/KVM erişimi.

    Clou.TR gibi sağlayıcılarda panel üzerinden bir VNC/konsol penceresi açarsınız; bu, sanki fiziksel olarak sunucunun başına oturmuşsunuz gibi doğrudan ekran ve klavye erişimi verir. Ağ tamamen çökmüş olsa bile konsol çalışmaya devam eder, çünkü ağdan bağımsızdır. Konsoldan giriş yaptıktan sonra kurtarma adımları basittir. Önce hatalı dosyayı düzeltin:

    sudo nano /etc/netplan/60-static.yaml
    

    Yaptığınız değişiklikten emin değilseniz, en hızlı yol geçici olarak DHCP'ye geri dönüp ağı ayağa kaldırmaktır. Sadece şu içeriği yazıp kaydedin:

    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s3:
          dhcp4: true
    

    Ardından uygulayın ve ağ arayüzünün bir adres alıp almadığını kontrol edin:

    sudo netplan apply
    ip addr show enp0s3
    

    Ağ geri geldiğinde tekrar SSH ile bağlanabilir ve statik yapılandırmayı bu kez netplan try kullanarak, aceleye getirmeden, doğru biçimde yazabilirsiniz. Metin düzenleyici olarak konsolda nano kullanmak en pratiğidir; nano ve vim arasındaki farkları nano ve vim metin düzenleyici rehberimizde bulabilirsiniz. Buradan çıkarılacak ders nettir: Statik IP ayarına başlamadan önce sağlayıcınızın konsol erişimini nasıl açacağınızı öğrenin; o kapı açık olduğu sürece hiçbir ağ hatası kalıcı bir felaket değildir.

    Sık Yapılan Hatalar ve Sorun Giderme#

    Netplan yapılandırmalarında karşılaşacağınız sorunların büyük çoğunluğu birkaç tipik hataya dayanır. Aşağıdaki tablo, hem belirtiyi hem de nedeni ve çözümü bir arada verir:

    BelirtiOlası nedenÇözüm
    netplan apply "invalid YAML" hatasıSekme karakteri veya hatalı girintiTab'ları boşlukla değiştirin, hizalamayı düzeltin
    Arayüz IP alıyor ama internet yokVarsayılan rota tanımsız veya yanlışroutes: to: default bloğunu ve via adresini kontrol edin
    İnternet var ama alan adları çözülmüyorDNS tanımsıznameservers.addresses ekleyin
    Ayar uygulanıyor ama arayüz güncellenmiyorYanlış arayüz adıip -brief link ile gerçek adı doğrulayın
    IP çakışması / iki adres görünüyorDHCP açık kalmışİlgili arayüzde dhcp4: false ekleyin

    Bu hatalardan en sinsisi girinti sorunudur, çünkü YAML sekme ile boşluğu görsel olarak aynı gösterebilir. Bir düzenleyicide sekmeleri görünür kılmak (nano'da Alt+P) çoğu zaman sorunu anında ortaya çıkarır. İkinci en sık sorun ise "IP var ama internet yok" durumudur; bu neredeyse her zaman eksik ya da yanlış varsayılan rotadan kaynaklanır. ip route show default çıktısında default via satırını göremiyorsanız, routes bloğunuzda bir eksik var demektir.

    Bir de yaygın bir kavram karışıklığını gidermekte fayda var. Sunucunun nameservers bloğundaki DNS ayarı, o makinenin dışarıdaki alan adlarını çözmesiyle ilgilidir; kendi alan adınızın internete nasıl göründüğüyle karıştırılmamalıdır. İki farklı katmanda çalışan bu kavramların ayrımını net kurduğunuzda sorun gidermeniz çok hızlanır. Bu tür ağ denemelerini kök erişimiyle rahatça yapabileceğiniz bir ortam istiyorsanız Clou.TR VDS sunucu ve sanal sunucu seçenekleri konsol/KVM erişimiyle birlikte gelir.

    Sıkça Sorulan Sorular#

    Netplan dosyamı değiştirdim ama ayarlar uygulanmıyor, neden?#

    En yaygın sebep, değişikliği uygulamak için sudo netplan apply komutunu çalıştırmayı unutmaktır; dosyayı kaydetmek tek başına ağı güncellemez. Komutu çalıştırdığınız hâlde de bir şey değişmiyorsa, büyük olasılıkla dosyadaki arayüz adı sistemdeki gerçek adla eşleşmiyordur. ip -brief link show ile arayüzün gerçek adını (örneğin enp0s3 mü, eth0 mı, ens18 mi) doğrulayıp YAML'daki adı buna göre düzeltin. Ayrıca aynı arayüzü tanımlayan ikinci bir netplan dosyası varsa, alfabetik olarak sonra okunan dosya sizinkinin üzerine yazıyor olabilir.

    gateway4 satırı neden uyarı veriyor?#

    Ubuntu 22.04 ve sonrasında gateway4 alanı kullanımdan kaldırıldı; netplan artık varsayılan ağ geçidinin routes bloğu altında to: default ve via ile tanımlanmasını bekliyor. Yapılandırmanız hâlâ çalışıyor olabilir ama her netplan apply çalıştırdığınızda bir uyarı basar ve gelecekteki sürümlerde tamamen kaldırılabilir. Doğru olan, gateway4 satırını silip yerine routes bloğunu eklemektir; böylece ileride sürüm yükselttiğinizde ağınız aksama yaşamaz.

    netplan try ile netplan apply arasındaki fark nedir?#

    netplan apply yeni yapılandırmayı anında ve kalıcı olarak devreye alır; bir hata varsa ve uzaktan bağlıysanız erişiminizi kaybedebilirsiniz. netplan try ise ayarı geçici olarak uygular ve bir geri sayım başlatır; onaylamak için Enter tuşuna basmazsanız, süre dolduğunda otomatik olarak eski çalışan yapılandırmaya geri döner. Bu yüzden uzaktaki üretim sunucularında her zaman önce try kullanmak, kendinizi kilitlenmeye karşı sigortalamanın en pratik yoludur.

    Yanlış yapılandırma yüzünden sunucuya SSH ile giremiyorum, ne yapmalıyım?#

    Bu durumda tek kurtarıcı, ağdan bağımsız çalışan konsol/KVM erişimidir. Sağlayıcınızın panelinden bir VNC veya konsol penceresi açarak sanki sunucunun fiziksel başındaymışsınız gibi giriş yapar, /etc/netplan/ altındaki hatalı dosyayı düzeltirsiniz. En hızlı geçici çözüm, dosyayı basit bir dhcp4: true yapılandırmasıyla değiştirip netplan apply çalıştırarak ağı geri kazanmaktır; ağ geldikten sonra statik ayarı bu kez netplan try ile dikkatlice yeniden yaparsınız. Bu yüzden statik IP ayarına başlamadan önce konsol erişiminizin nasıl açıldığını bilmek çok kritiktir.

    Bir arayüze birden fazla statik IP tanımlayabilir miyim?#

    Evet, addresses alanı bir liste olduğu için aynı arayüze birden çok IP adresi ekleyebilirsiniz; her adresi alt alta tire ile ve CIDR maskesiyle yazmanız yeterlidir (örneğin - 192.168.1.50/24 ve - 192.168.1.51/24). Bu, tek bir sunucuda birden fazla siteyi ayrı IP'lerle barındırmak ya da bir failover adresi eklemek istediğinizde işe yarar. Adreslerin hepsi aynı anda aktif olur ve ip addr show çıktısında arayüzün altında ayrı inet satırları hâlinde görünür.

    DHCP'yi kapatmazsam ne olur?#

    dhcp4 alanını false yapmazsanız arayüz hem sizin verdiğiniz statik IP'yi hem de DHCP sunucusundan gelen otomatik IP'yi almaya çalışır; sonuçta arayüzde iki adres belirir ve varsayılan rota ile DNS ayarları beklenmedik biçimde çakışabilir. Bu, "IP'yi sabitledim ama makine hâlâ farklı bir adresten yanıt veriyor" tarzı kafa karıştırıcı sorunların en sık nedenidir. Statik yapılandırmanın temiz ve öngörülebilir çalışması için ilgili arayüzde DHCP'yi mutlaka kapatın.

    Kapanış#

    Netplan, ilk bakışta girinti kurallarıyla insanı biraz zorlasa da, mantığını kavradığınızda Ubuntu ağ yönetimini son derece öngörülebilir hâle getirir. Aklınızda tutmanız gereken üç şey var: YAML boşluklara acımasızca duyarlıdır, ağ geçidi artık routes bloğuyla tanımlanır ve uzaktaki bir sunucuda her zaman netplan apply yerine önce netplan try kullanılır. Bu üç ilkeye sadık kaldığınız sürece statik IP ayarı, korkulacak değil rutin bir işe dönüşür.

    Bu tür ağ denemelerini rahatça yapabilmenin ön koşulu, kök erişimi veren ve bir hata anında konsol/KVM ile kurtulabileceğiniz bir altyapıdır. Kendi ağ yapılandırmanızı baştan sona kontrol etmek istediğiniz projeler için Clou.TR VDS ve sanal sunucu çözümlerini, sunucu yönetim yükünü bize bırakmak isterseniz sunucu yönetimi hizmetimizi inceleyebilirsiniz. Tüm sunucu seçeneklerine sunucu sayfasından, daha fazla pratik rehbere ise Bilgi Merkezi araç ve makalelerimizden ulaşabilirsiniz.

    NetplanUbuntu

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.