EQVPS
Kontrol paneliHemen başla

VPS'te sunucu adı ve saat dilimi nasıl değiştirilir

Sunucunuzu yeniden adlandırın ve saatini kendi saat diliminize alın: Ubuntu, Debian ve Windows Server'da, tek başına hostnamectl'den sonra gelen sudo uyarısı olmadan, değişiklikten sonra cron, günlükler ve saat eşitlemesi kontrol edilerek. Her adım kendi imajlarımızda denendi.

Yeni bir sunucu, sipariş verirken yazdığınız adı taşır ve saati UTC'dedir. İkisi de kolayca değişir. Yeniden adlandırmanın bir püf noktası var: alışılmış komut /etc/hosts içinde eski bir satır bırakır ve Ubuntu'da sudo her komuttan önce bundan yakınır. Bu rehber Ubuntu ve Debian'da ikisini de düzeltir ve Windows Server komutlarını gösterir. Her adımı kendi imajlarımızda çalıştırdık.

sudo yetkili bir kullanıcıya ihtiyacınız var. Ubuntu kurulum rehberi bir tane oluşturur.

1. Mevcut adı ve saati kontrol edin

hostnamectl
timedatectl

Yeni Ubuntu 24.04 sunucumuz, statik sunucu adı olarak siparişteki adı ve ayrıca Time zone: Etc/UTC, System clock synchronized: yes ve NTP service: active gösterdi. Debian 12 ve 13 de aynıydı. Saat eşitleme zaten çalışıyor, NTP kurmanıza gerek yok.

2. Sunucu adını değiştirin

Kısa bir ad seçin ya da yönettiğiniz bir DNS kaydıyla eşleşecekse tam bir ad seçin, örneğin web1.example.com:

sudo hostnamectl set-hostname web1.example.com

Ad hemen değişir, ama /etc/hosts hâlâ 127.0.1.1 adresini eskisine bağlar. Ubuntu'da bu hemen ortaya çıktı:

sudo: unable to resolve host web1.example.com: No address associated with hostname

hostname -f de aynı şekilde hata verdi. Debian adı başka bir yoldan buldu ve uyarı göstermedi, ama onun /etc/hosts dosyası da aynı derecede eskiydi. Dosyayı ikisinde de düzeltin:

sudo sed -i 's/^127\.0\.1\.1 .*/127.0.1.1 web1.example.com web1/' /etc/hosts
grep 127.0.1.1 /etc/hosts
hostname -f

Bundan sonra sudo sustu, hostname -f web1.example.com, hostname -s ise web1 yazdırdı.

/etc/hosts dosyasının başındaki yorum, dosyayı cloud-init'in yönettiğini ve değişikliklerinizin kaybolabileceğini söylüyor. Bizim imajlarımızda cloud-init onu yalnızca sunucunun ilk açılışında yazar. Yeniden başlattık, ardından cloud-init'in sonraki açılışı yeni bir örnek gibi görmesini sağladık. Ad ve /etc/hosts satırımız ikisini de atlattı.

Sunucu adı yalnızca sizin sunucunuzda yaşar. Başka makinelerin ona bu adla ulaşması gerekiyorsa bir DNS kaydı da ekleyin: bir alan adını VPS'inize yönlendirmek bunu anlatıyor. Bir e-posta sunucusu için ters kayıt da önemlidir: bkz. ters DNS ayarlamak.

3. Saat dilimini değiştirin

Dilimleri listeleyin ve kendinizinkini seçin. Sunucumuzda 497 tane vardı:

timedatectl list-timezones | grep -i tokyo
sudo timedatectl set-timezone Asia/Tokyo
timedatectl

Saatin kendisi kaymaz. Yalnızca saatlerin nasıl gösterildiği ve yerel zamanlamaların nasıl okunduğu değişir. UTC'den Asia/Tokyo'ya geçtikten sonra gördüklerimiz:

NeDeğişiklikten sonra
date, journalctlHemen Tokyo saati
cronHemen Tokyo saati: 09:48'e kurulu görev 09:48:01 JST'de çalıştı, yeniden başlatma yok
/var/log/syslog (Ubuntu)rsyslog yeniden başlatılana kadar UTC saatleri yazdı
/etc/timezone (Ubuntu)Hâlâ Etc/UTC

Bu yüzden günlük hizmetini ve uzun süre çalışıp saat yazan her şeyi, örneğin uygulamanızı, yeniden başlatın:

sudo systemctl restart rsyslog

Debian 12 ve 13 rsyslog kurmaz. Günlükleri yalnızca journal'dadır ve o yeni dilimi kendiliğinden izler.

Bazı eski programlar dilimi sistem ayarından değil /etc/timezone dosyasından okur. Bunlardan biri hâlâ UTC gösteriyorsa aynı adı oraya yazın ve o programı yeniden başlatın:

echo Asia/Tokyo | sudo tee /etc/timezone

Geçiş yapmadan önce crontab'ınıza bakın. 03:00 UTC için yazılmış 0 3 * * * satırı artık Tokyo saatiyle 03:00'te, yani gerçek zamanda dokuz saat önce çalışacak.

4. Windows Server

Windows Server 2022'de PowerShell'i yönetici olarak açın. Yeniden adlandırma yeniden başlatma ister:

Rename-Computer -NewName web1 -Restart

Windows bilgisayar adları 15 karakterle sınırlıdır, bu yüzden burada kısa adı kullanın.

Saat dilimi için kimliği bulun ve ayarlayın. Yeniden başlatma gerekmeden hemen uygulanır:

Get-TimeZone -ListAvailable | Where-Object Id -like '*Tokyo*'
Set-TimeZone -Id 'Tokyo Standard Time'
Get-TimeZone

Madem giriş yaptınız, RDP'yi güvenli hale getirmek için iyi bir an.

Hangi plan

Sunucu adı ve saat dilimi hiçbir şeye mal olmaz, yani her plan uygun: küçük bir Linux sunucu için $3/ay ile Nano, Windows Server 2022 için $11/ay ile Windows-Small. Tüm planlar VPS sayfasında; ödeme Base, Ethereum veya Polygon üzerinde USDT, USDC ya da ETH ile yapılır.

SSS

cloud-init yeniden başlatmadan sonra eski adı geri getirir mi?

Bizim imajlarımızda hayır. hostnamectl ile yeni bir ad verdik, yeniden başlattık, sonra cloud-init'in bir sonraki açılışı tamamen yeni bir örnek gibi görmesini sağladık. Ad iki seferde de kaldı, /etc/hosts'taki değişikliğimiz de. Yeniden kurulum size özgün adla temiz bir sistem verir.

Yeniden adlandırdıktan sonra sudo neden "unable to resolve host" diyor?

hostnamectl adı değiştirir ama /etc/hosts'u değiştirmez; orada 127.0.1.1 hâlâ eski adı gösterir. Ubuntu'da sudo bu yüzden her komuttan önce "unable to resolve host" yazar. 127.0.1.1 satırındaki eski adı yenisiyle değiştirin, uyarı kaybolur.

Sunucum UTC mi kullanmalı, yerel saatimi mi?

UTC daha güvenli varsayılandır: farklı sunucuların günlük saatleri uyuşur ve yaz saati geçişlerinde atlama olmaz. cron görevlerini ve günlük saatlerini kendi saatinizle okumak istiyorsanız kendi diliminize geçin. İkisi de çalışır ve istediğiniz zaman yeniden değiştirebilirsiniz.

NTP kurmam gerekiyor mu?

Hayır. Ubuntu ve Debian imajlarımız saati ilk açılıştan itibaren systemd-timesyncd ile eşitler. timedatectl çalıştırın ve "System clock synchronized: yes" satırına bakın.

Saat dilimini değiştirmek cron görevlerimi bozar mı?

cron yeni dilimi hemen kullanır. Ubuntu 24.04 sunucumuzda Tokyo saatiyle 09:48'e kurulu bir görev, cron yeniden başlatılmadan Tokyo saatiyle 09:48:01'de çalıştı. Yine de UTC'ye göre yazılmış görevleri kontrol edin: artık yerel saatinizle o saatte çalışırlar.

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.