Giriş
Linux sistemlerinde sunucu adını değiştirmek veya yeni bir makine kurarken hostname'un tutarlılığı büyük önem taşır. Log dosyalarında, izleme panellerinde ve ağ kayıtlarında aynı hostname kullanılması, yönetim sürecini kolaylaştırır ve karışıklıkları önler. systemd tabanlı Linux dağıtımlarında hostnamectl komutu, hostname ve ilgili sistem metadata'larını komut satırından yönetmek için standart araçtır. Bu komutla /etc/hostname dosyasını elle düzenlemeye gerek kalmadan hostname değişiklikleri gerçekleştirebilirsiniz.
Temel Bilgiler ve Hostname Türleri
hostnamectl komutu üç farklı hostname türünü yönetir:
- Static (Sabit) Hostname: Yönetici tarafından
/etc/hostnamedosyasına kaydedilen ve yeniden başlatmalar sonrasında bile kalıcı olan isimdir. Bu isim çekirdek ve ağ servisleri tarafından kullanılır. - Transient (Geçici) Hostname: Ağ yapılandırmasından veya DHCP'den gelen geçici isimdir. Static hostname geçerli değilse kullanılır. Yeniden başlatma sonrasında kaybolur.
- Pretty (Güzel) Hostname: Kullanıcı dostu, boşluk ve özel karakterler içerebilen serbest formatlı isimdir.
/etc/machine-infodosyasında saklanır ve masaüstü ortamları ile yönetim araçları tarafından kullanılır. Ağ servislerinde etkisi yoktur.
Önemli Not: Hostname'ler DNS etiketlerine uygun olmalıdır. Tek bir etiket (örneğin web-server) veya tam nitelikli alan adı (örneğin web-server.example.com) kullanılabilir. Linux çekirdeği hostname'leri 64 karakterle sınırlar.
Syntax ve Temel Kullanım
hostnamectl [SEÇENEKLER] KOMUT
Komut argümanı olmadan çalıştırıldığında, hostnamectl sistem durumu hakkında bilgi verir:
hostnamectl status
Bu komut, sistem hostname'ini, makine kimliğini (Machine ID), önyükleme kimliğini (Boot ID), sanalizasyon platformunu, işletim sistemini ve çekirdek sürümünü gösterir.
Hostname Sorgulama
- Tüm hostname bilgilerini görüntülemek:
hostnamectl - Sadece static hostname'i görüntülemek:
hostnamectl --static - Sadece transient hostname'i görüntülemek:
hostnamectl --transient - Sadece pretty hostname'i görüntülemek:
hostnamectl --pretty - Sadece hostname'i görüntülemek (alternatif yöntem):
hostnamectl hostname
Hostname Türlerine Örnek
Çıktı aşağıdaki gibi olacaktır:
Static hostname: web-server-01
Icon name: computer-vm
Chassis: vm
Machine ID: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
Boot ID: f7e8d9c0b1a2f7e8d9c0b1a2f7e8d9c0
Virtualization: kvm
Operating System: Ubuntu 24.04 LTS
Kernel: Linux 6.8.0-10-generic
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC (Q35 + ICH9, 2009)
Static Hostname Değiştirme
Adım 1: Mevcut static hostname'i değiştirmek için aşağıdaki komutu kullanın:
sudo hostnamectl --static hostname yeni-hostname
Örnek:
sudo hostnamectl --static hostname web-server-01
Adım 2: Değişikliğin uygulandığını doğrulamak için:
hostnamectl --static
Not: Değişiklik anında uygulanır, ancak aynı terminal oturumunda eski hostname görüntülenmeye devam edebilir. Yeni bir terminal penceresi açarak değişikliği görebilirsiniz.
Tüm Hostname Türlerini Aynı Anda Ayarlama
Static, transient ve pretty hostname'leri birlikte ayarlamak için --static, --transient veya --pretty seçeneklerini kullanmayın:
sudo hostnamectl hostname yeni-hostname
Bu komut, static hostname olarak yeni-hostname değerini, transient hostname olarak da aynı değeri ayarlar. Pretty hostname ise boş kalır.
Pretty Hostname Ayarlama
Pretty hostname, kullanıcı dostu bir isimdir ve serbest formatta olabilir. Örneğin:
sudo hostnamectl --pretty hostname "Web Sunucusu 01 - Üretim Ortamı"
Static ve pretty hostname'ler birbirinden bağımsızdır. Örneğin:
sudo hostnamectl --static hostname web-server-01
sudo hostnamectl --pretty hostname "Web Sunucusu 01 (Üretim)"
Pretty hostname /etc/machine-info dosyasında saklanır ve masaüstü ortamlarında gösterilir.
Transient Hostname Ayarlama
Transient hostname, geçici bir isimdir ve genellikle ağdan gelir. Sadece geçerli oturum için kullanılır:
sudo hostnamectl --transient hostname temporary-node
Bu isim, sistem yeniden başlatıldığında kaybolur.
Chassis Türü Ayarlama
Chassis türü, sistemin donanım türünü tanımlar. Bu bilgi masaüstü ortamları ve sistem araçları tarafından kullanılır. Geçerli chassis türleri şunlardır:
desktop- Masaüstü bilgisayarlaptop- Dizüstü bilgisayarconvertible- Dönüştürülebilir cihazserver- Sunucutablet- Tablethandset- Akıllı telefonwatch- Akıllı saatembedded- Gömülü sistemvm- Sanal makinecontainer- Konteyner
Chassis türünü ayarlamak için:
sudo hostnamectl chassis server
Örnek: Sanal makine için:
sudo hostnamectl chassis vm
Chassis türü /etc/machine-info dosyasında saklanır.
Dağıtım Ortamı ve Konum Bilgisi Ayarlama
Büyük ölçekli ortamlarda makineleri tanımlamak için ek metadata'lar kullanılabilir. Bu bilgiler /etc/machine-info dosyasında saklanır ve hostnamectl çıktısında görüntülenir, ancak sistem davranışını etkilemez.
Dağıtım ortamı ayarlama:
sudo hostnamectl deployment production
Konum bilgisi ayarlama:
sudo hostnamectl location "Rack-3 / Veri Merkezi-Ankara"
Bu bilgiler izleme ve envanter araçları tarafından kullanılabilir.
Uzak Makine veya Konteyner Yönetimi
hostnamectl komutu, uzak makinelerde SSH üzerinden kullanılabilir. Bu özellik, -H seçeneğiyle etkinleştirilir.
Uzak makine sorgulama:
hostnamectl -H kullanıcı@uzak-makine.example.com status
Konteyner yönetimi: Yerel systemd makine veya konteyner üzerinde işlem yapmak için -M seçeneği kullanılır:
hostnamectl -M konteyner-ismi status
Not: Uzak makineye erişim için gerekli izinlere sahip olmanız gerekir. SSH anahtarları veya parola doğrulaması gerekebilir.
Hostname ve Ağ Yapılandırması
Önemli Uyarı: Hostname değişikliği DNS kayıtlarını otomatik olarak güncellemez. Diğer sistemlerin yeni hostname ile erişebilmesi için DNS kayıtlarının manuel olarak güncellenmesi gerekir.
/etc/hosts dosyası da hostname değişikliklerinden etkilenebilir. Eski hostname için bir giriş varsa, bu girişin yeni hostname ile güncellenmesi yerel isim çözümlemesi sorunlarını önler. Örneğin:
127.0.1.1 eski-hostname
127.0.1.1 yeni-hostname
Bulut ortamlarında, cloud-init veya sağlayıcı metadata'si yeniden başlatma sırasında hostname'i eski haline döndürebilir. Bu durumda /etc/cloud/cloud.cfg dosyasındaki preserve_hostname: true seçeneğini kontrol edin.
Sorun Giderme
hostnamectl: komut bulunamadı
Çözüm: Bu komut yalnızca systemd tabanlı Linux dağıtımlarında mevcuttur. systemd kullanmayan sistemlerde
hostnamekomutunu kullanın ve platformun hostname yapılandırma dosyasını manuel olarak düzenleyin.
Could not set property: Erişim reddedildi
Çözüm: Hostname değişikliği ve sistem metadata'larının güncellenmesi için yönetici ayrıcalıkları gerekir. Komutu
sudoile çalıştırın ve hesabınızın yetkili olduğunu doğrulayın.
Hostname yeniden başlatma sonrasında eski haline dönüyor
Çözüm:
cloud-init, DHCP veya başka bir sağlayıcı servis hostname'i sıfırlıyor olabilir. Sistemdeki bulut ve ağ yapılandırmasını kontrol edin ve hostname'i tekrar tekrar değiştirmek yerine temel sorunu çözün.
Hızlı Referans Tablosu
| Görev | Komut |
|---|---|
| Sistem hostname detaylarını göster | hostnamectl |
| Mevcut hostname'i yazdır | hostnamectl hostname |
| Static hostname'i yazdır | hostnamectl --static |
| Sadece static hostname'i ayarla | sudo hostnamectl --static hostname web-server-01 |
| Tüm hostname türlerini ayarla | sudo hostnamectl hostname web-server-01 |
| Pretty hostname ayarla | sudo hostnamectl --pretty hostname "Web Sunucusu 01" |
| Transient hostname ayarla | sudo hostnamectl --transient hostname temporary-node |
| Chassis türünü ayarla | sudo hostnamectl chassis server |
| Dağıtım ortamını ayarla | sudo hostnamectl deployment production |
| Konumu ayarla | sudo hostnamectl location "Rack-3 / Veri Merkezi-Ankara" |
| Uzak makine sorgula | hostnamectl -H kullanıcı@uzak-makine.example.com status |
| Konteyner sorgula | hostnamectl -M konteyner-ismi status |
Sonuç
hostnamectl komutu, systemd tabanlı Linux sistemlerinde hostname ve ilgili sistem metadata'larını yeniden başlatmaya gerek kalmadan yönetmenizi sağlar. Bu komutla hostname değişikliklerini hızlı ve güvenilir bir şekilde gerçekleştirebilir, sisteminizi daha iyi organize edebilirsiniz. Hostname yönetiminin yanı sıra DNS kayıtları ve /etc/hosts dosyası gibi ağ yapılandırmalarını da dikkate almayı unutmayın.
Daha geniş bir hostname yönetimi rehberi için Linux'te hostname değiştirme makalesini inceleyebilirsiniz.


