EQVPS
PanelZacznij

Jak zmienić nazwę hosta i strefę czasową na VPS

Zmień nazwę serwera i ustaw jego zegar na swoją strefę w Ubuntu, Debianie i Windows Server, bez ostrzeżenia sudo, które pojawia się po samym hostnamectl, i ze sprawdzeniem cron, logów i synchronizacji czasu po zmianie. Każdy krok przetestowany na naszych obrazach.

Nowy serwer nazywa się tak, jak wpisałeś przy zamówieniu, a jego zegar chodzi w UTC. Jedno i drugie łatwo zmienić. Zmiana nazwy ma jeden haczyk: zwykłe polecenie zostawia starą linię w /etc/hosts, a w Ubuntu sudo narzeka na nią przed każdym poleceniem. Ten poradnik naprawia oba punkty w Ubuntu i Debianie i pokazuje polecenia dla Windows Server. Każdy krok wykonaliśmy na naszych obrazach.

Potrzebujesz użytkownika z sudo. Tworzy go poradnik konfiguracji Ubuntu.

1. Sprawdź obecną nazwę i czas

hostnamectl
timedatectl

Nasz świeży serwer z Ubuntu 24.04 pokazał jako stałą nazwę hosta to, co podano przy zamówieniu, a do tego Time zone: Etc/UTC, System clock synchronized: yes i NTP service: active. Debian 12 i 13 wyglądały tak samo. Synchronizacja zegara już działa, więc nie trzeba instalować NTP.

2. Zmień nazwę hosta

Wybierz krótką nazwę albo pełną, jeśli ma pasować do rekordu DNS, którym zarządzasz, na przykład web1.example.com:

sudo hostnamectl set-hostname web1.example.com

Nazwa zmienia się od razu, ale /etc/hosts dalej kieruje 127.0.1.1 na starą. W Ubuntu wyszło to natychmiast:

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

hostname -f kończył się tym samym błędem. Debian znalazł nazwę inną drogą i nie pokazał ostrzeżenia, ale jego /etc/hosts był tak samo nieaktualny. Popraw plik w obu systemach:

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

Potem sudo ucichło, hostname -f wypisał web1.example.com, a hostname -s wypisał web1.

Komentarz na początku /etc/hosts mówi, że plikiem zarządza cloud-init i Twoje zmiany mogą przepaść. Na naszych obrazach cloud-init zapisuje go tylko przy pierwszym uruchomieniu serwera. Zrestartowaliśmy serwer, a potem sprawiliśmy, że cloud-init uznał kolejny start za nową instancję. Nazwa i nasza linia w /etc/hosts przetrwały oba razy.

Nazwa hosta istnieje tylko na Twoim serwerze. Jeśli inne maszyny mają go znajdować pod tą nazwą, dodaj też rekord DNS: opisuje to kierowanie domeny na VPS. Dla serwera pocztowego liczy się też rekord odwrotny: zobacz konfigurację odwrotnego DNS.

3. Zmień strefę czasową

Wypisz strefy i wybierz swoją. Nasz serwer miał ich 497:

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

Sam zegar się nie przesuwa. Zmienia się tylko sposób wyświetlania czasu i odczytywania lokalnych harmonogramów. Oto co zobaczyliśmy po przejściu z UTC na Asia/Tokyo:

CoPo zmianie
date, journalctlOd razu czas Tokio
cronOd razu czas Tokio: zadanie na 09:48 ruszyło o 09:48:01 JST, bez restartu
/var/log/syslog (Ubuntu)Zapisywał czas UTC, dopóki nie zrestartowano rsyslog
/etc/timezone (Ubuntu)Dalej Etc/UTC

Zrestartuj więc usługę logów i wszystko, co działa długo i wypisuje czas, na przykład swoją aplikację:

sudo systemctl restart rsyslog

Debian 12 i 13 nie instalują rsyslog. Ich logi są tylko w journalu, który sam podąża za nową strefą.

Niektóre starsze programy czytają strefę z /etc/timezone, a nie z ustawienia systemowego. Jeśli któryś nadal pokazuje UTC, wpisz tam tę samą nazwę i zrestartuj ten program:

echo Asia/Tokyo | sudo tee /etc/timezone

Zanim przełączysz strefę, przejrzyj crontab. Linia 0 3 * * * pisana pod 03:00 UTC uruchomi się teraz o 03:00 czasu Tokio, czyli dziewięć godzin wcześniej w czasie rzeczywistym.

4. Windows Server

W Windows Server 2022 otwórz PowerShell jako administrator. Zmiana nazwy wymaga restartu:

Rename-Computer -NewName web1 -Restart

Nazwy komputerów w Windows są ograniczone do 15 znaków, więc użyj tu krótkiej nazwy.

Dla strefy czasowej znajdź identyfikator i ustaw go. Działa od razu, bez restartu:

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

Skoro już jesteś zalogowany, to dobry moment, żeby zabezpieczyć RDP.

Jaki plan

Nazwa hosta i strefa czasowa nic nie kosztują, więc pasuje każdy plan: Nano za $3/mies. dla małego serwera Linux, Windows-Small za $11/mies. dla Windows Server 2022. Wszystkie plany są na stronie VPS, a płatność odbywa się w USDT, USDC lub ETH w sieciach Base, Ethereum lub Polygon.

FAQ

Czy cloud-init przywróci starą nazwę po restarcie?

Na naszych obrazach nie. Ustawiliśmy nową nazwę przez hostnamectl, zrestartowaliśmy serwer, a potem sprawiliśmy, że cloud-init potraktował kolejny start jak zupełnie nową instancję. Nazwa została za oba razy, tak samo jak nasza zmiana w /etc/hosts. Ponowna instalacja daje czysty system z pierwotną nazwą.

Dlaczego sudo pisze „unable to resolve host” po zmianie nazwy?

hostnamectl zmienia nazwę, ale nie /etc/hosts, gdzie 127.0.1.1 dalej wskazuje starą nazwę. W Ubuntu sudo wypisuje wtedy „unable to resolve host” przed każdym poleceniem. Zamień starą nazwę na nową w linii 127.0.1.1, a ostrzeżenie zniknie.

Serwer powinien działać w UTC czy w moim czasie lokalnym?

UTC to bezpieczniejszy wybór: czasy w logach różnych serwerów się zgadzają i nie ma skoków przy zmianie czasu. Przełącz się na swoją strefę, jeśli chcesz, żeby zadania cron i czasy w logach były w Twoim czasie. Obie opcje działają i można je zmienić w każdej chwili.

Czy muszę konfigurować NTP?

Nie. Nasze obrazy Ubuntu i Debiana synchronizują zegar przez systemd-timesyncd od pierwszego uruchomienia. Uruchom timedatectl i poszukaj „System clock synchronized: yes”.

Czy zmiana strefy zepsuje moje zadania cron?

Cron od razu używa nowej strefy. Na naszym serwerze z Ubuntu 24.04 zadanie ustawione na 09:48 czasu Tokio ruszyło o 09:48:01 czasu Tokio, bez restartu cron. Sprawdź jednak zadania pisane pod UTC: teraz uruchomią się o tej godzinie w Twoim czasie lokalnym.

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.