EQVPS
КабінетПочати

Як змінити ім'я сервера і часовий пояс на VPS

Перейменуйте сервер і переведіть його годинник на свій пояс в Ubuntu, Debian і Windows Server — без попередження sudo, яке з'являється після самого hostnamectl, і з перевіркою cron, журналів та синхронізації часу після зміни. Кожен крок перевірено на наших образах.

Новий сервер називається так, як ви написали під час замовлення, а його годинник іде за UTC. Змінити і те, і інше нескладно. У перейменування є одна заковика: звичайна команда залишає старий рядок у /etc/hosts, і в Ubuntu sudo скаржиться на нього перед кожною командою. Ця інструкція виправляє обидва пункти в Ubuntu і Debian та показує команди для Windows Server. Кожен крок ми пройшли на наших образах.

Потрібен користувач із sudo. Його створює інструкція з налаштування Ubuntu.

1. Подивіться поточне ім'я і час

hostnamectl
timedatectl

Наш свіжий сервер з Ubuntu 24.04 показав як постійне ім'я те, що було вказано під час замовлення, а також Time zone: Etc/UTC, System clock synchronized: yes і NTP service: active. У Debian 12 і 13 картина та сама. Синхронізація годинника вже працює, ставити NTP не потрібно.

2. Змініть ім'я сервера

Оберіть коротке ім'я або повне, якщо воно збігатиметься з вашим DNS-записом, наприклад web1.example.com:

sudo hostnamectl set-hostname web1.example.com

Ім'я змінюється одразу, але /etc/hosts і далі пов'язує 127.0.1.1 зі старим. В Ubuntu це проявилося негайно:

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

hostname -f падав із тією самою помилкою. Debian знайшов ім'я іншим шляхом і попередження не показав, але його /etc/hosts застарів так само. Виправте файл в обох системах:

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

Після цього sudo замовк, hostname -f вивів web1.example.com, а hostname -s — web1.

Коментар на початку /etc/hosts каже, що файлом керує cloud-init і ваші правки можуть зникнути. На наших образах cloud-init записує його лише під час першого завантаження сервера. Ми перезавантажили сервер, а потім змусили cloud-init вважати наступне завантаження новим екземпляром. Ім'я і наш рядок у /etc/hosts пережили обидва рази.

Ім'я сервера живе лише на самому сервері. Якщо інші машини мають знаходити його за цим ім'ям, додайте ще DNS-запис: про це — як спрямувати домен на VPS. Для поштового сервера важливий і зворотний запис: див. налаштування зворотного DNS.

3. Змініть часовий пояс

Виведіть список поясів і оберіть свій. На нашому сервері їх було 497:

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

Сам годинник не зсувається. Змінюється лише те, як показується час і як читаються місцеві розклади. Ось що ми побачили після переходу з UTC на Asia/Tokyo:

ЩоПісля зміни
date, journalctlОдразу час Токіо
cronОдразу працював за Токіо: завдання на 09:48 виконалося о 09:48:01 JST, без перезапуску
/var/log/syslog (Ubuntu)Писав час за UTC, доки не перезапустили rsyslog
/etc/timezone (Ubuntu)І далі Etc/UTC

Тож перезапустіть службу журналів і все довготривале, що друкує час, наприклад ваш застосунок:

sudo systemctl restart rsyslog

У Debian 12 і 13 rsyslog не встановлено. Журнали там лише в journal, а він сам іде за новим поясом.

Деякі старі програми беруть пояс з /etc/timezone, а не із системного налаштування. Якщо якась із них досі показує UTC, запишіть туди ту саму назву й перезапустіть програму:

echo Asia/Tokyo | sudo tee /etc/timezone

Перш ніж перемикатися, перегляньте crontab. Рядок 0 3 * * *, написаний під 03:00 за UTC, тепер спрацює о 03:00 за Токіо, тобто на дев'ять годин раніше реального часу.

4. Windows Server

У Windows Server 2022 відкрийте PowerShell від імені адміністратора. Перейменування потребує перезавантаження:

Rename-Computer -NewName web1 -Restart

Ім'я комп'ютера у Windows обмежене 15 символами, тож тут використовуйте коротке ім'я.

Для часового поясу знайдіть ідентифікатор і задайте його. Він застосовується одразу, без перезавантаження:

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

Раз уже ви зайшли на сервер, саме час захистити RDP.

Який тариф обрати

Ім'я та часовий пояс нічого не коштують, тож підійде будь-який тариф: Nano за $3/міс для невеликого Linux-сервера, Windows-Small за $11/міс для Windows Server 2022. Усі тарифи — на сторінці VPS, оплата в USDT, USDC або ETH у мережах Base, Ethereum або Polygon.

Часті питання

Чи поверне cloud-init старе ім'я після перезавантаження?

На наших образах — ні. Ми задали нове ім'я через hostnamectl, перезавантажили сервер, а потім змусили cloud-init вважати наступне завантаження зовсім новим. Ім'я збереглося обидва рази, як і наша правка /etc/hosts. Перевстановлення дає чисту систему з початковим ім'ям.

Чому sudo пише «unable to resolve host» після перейменування?

hostnamectl змінює ім'я, але не чіпає /etc/hosts, де 127.0.1.1 і далі вказує на старе ім'я. В Ubuntu sudo тоді виводить «unable to resolve host» перед кожною командою. Замініть старе ім'я в рядку 127.0.1.1 на нове, і попередження зникне.

Серверу краще жити за UTC чи за місцевим часом?

UTC — безпечніший вибір: час у журналах різних серверів збігається, і немає стрибків під час переходу на літній час. Перейдіть на свій пояс, якщо хочете, щоб завдання cron і час у журналах читалися за вашим годинником. Працюють обидва варіанти, і змінити можна будь-коли.

Чи треба налаштовувати NTP?

Ні. Наші образи Ubuntu і Debian з першого завантаження синхронізують годинник через systemd-timesyncd. Виконайте timedatectl і знайдіть рядок «System clock synchronized: yes».

Чи зламає зміна поясу мої завдання cron?

Cron одразу починає працювати за новим поясом. На нашому сервері з Ubuntu 24.04 завдання на 09:48 за Токіо виконалося о 09:48:01 за Токіо, без перезапуску cron. Але перевірте завдання, написані під UTC: тепер вони спрацюють у цю годину вже за вашим місцевим часом.

Коментарі

Поки немає коментарів. Будьте першим.

Залишити коментар

Коментарі проходять модерацію перед публікацією.