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: теперь они сработают в этот час уже по вашему местному времени.

Комментарии

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

Оставить комментарий

Комментарии проходят модерацию перед публикацией.