Хоча може здаватися, що налаштування часу – це автоматична процедура, нерідко трапляються збої або неправильні конфігурації часу в Linux. Зважаючи на те, що для звичайних користувачів налаштування часу в Linux може бути дещо складним, ми розберемося з цим процесом і пояснимо, як саме налаштувати синхронізацію часу через мережу в цій операційній системі.
Окрім конфігурації протоколу NTP, ми також розглянемо, як виправити неприємну проблему зі збоєм часу при використанні подвійного завантаження Linux та Windows.
Конфігурування протоколу Network Time
Синхронізація годинника вашого комп’ютера з Linux із серверами точного часу є найпоширенішим способом забезпечити правильний показ часу. У більшості дистрибутивів Linux це відбувається автоматично. Проте, не кожен дистрибутив Linux використовує NTPd, а ті, що використовують, можуть мати проблеми з його налаштуванням. Щоб виправити ці неполадки, ми розповімо, як вручну налаштувати демон протоколу Network Time Protocol у Linux.
Спочатку відкрийте термінал і встановіть NTP, якщо він ще не встановлений на вашому пристрої. Ймовірно, він вже є, але для певності, ось команди для його встановлення в більшості сучасних дистрибутивів Linux:
Ubuntu
sudo apt install ntp
Debian
sudo apt-get install ntp
Arch Linux
sudo pacman -S ntp
Fedora
sudo dnf install ntp
OpenSUSE
sudo zypper install ntp
Після інсталяції програмного забезпечення, вам потрібно буде встановити з’єднання з NTP-сервером. Зазвичай, більшість дистрибутивів Linux вже мають власні NTP-сервери, налаштовані у файлі /etc/ntp.conf. Якщо ви не довіряєте цим серверам, ви можете їх змінити на більш надійний, наприклад, офіційний сервер Google NTP.
Щоб додати сервер Google NTP, відредагуйте файл ntp.conf:
sudo nano /etc/ntp.conf
Видаліть наявні записи, якщо бажаєте, і замініть їх наступними (хоча ми не рекомендуємо це робити). Для найкращих результатів, вставте записи Google NTP на початок списку.
Примітка: важливо, щоб `iburst` був в кінці кожного нового запису. Опція `iburst` надсилає серію пакетів на сервери лише тоді, коли виникають проблеми з підключенням до сервера часу.
server time.google.com iburst server time2.google.com iburst server time3.google.com iburst
Після завершення, збережіть зміни у файлі конфігурації, натиснувши Ctrl + O у Nano. Щоб вийти з редактора, натисніть Ctrl + X.
Налаштування часового поясу
NTP може автоматично синхронізувати час з серверів, але спочатку йому необхідно знати часовий пояс. Зазвичай, під час початкового налаштування вашої операційної системи Linux, він запитує часовий пояс та встановлює його. Якщо під час інсталяції щось пішло не так, це потрібно буде виправити вручну за допомогою `tzselect`.
Відкрийте термінал та запустіть інструмент вибору часового поясу:
tzselect
Запуск інструмента `tzselect` допоможе вам правильно встановити часовий пояс. Після цього ви зможете запустити NTPd.
Запуск NTP
Всі з’єднання з серверами часу налаштовані. Наступним кроком є використання системи ініціалізації Systemd для запуску NTP під час завантаження. Зверніть увагу, що якщо ваша операційна система Linux не використовує Systemd, як більшість сучасних, вам потрібно буде знайти альтернативу цим командам.
Спочатку запустіть NTPd:
sudo systemctl start ntpd.service
Потім, увімкніть його запуск під час завантаження за допомогою `systemctl enable`.
sudo systemctl enable ntpd.service
Виконання наведених вище команд має миттєво налаштувати час, оскільки час UTC у вашому BIOS тепер правильний (завдяки Tzselect).
Використання локального часу
Існують інші способи встановити час у Linux, окрім NTP. Найбільш популярна альтернатива – це використання “локального часу”. Локальний час дозволяє Linux зберігати час, але не синхронізувати його з нічим. Тобто, час зберігається без будь-яких коригувань. Це менш надійний метод, але він працює. Питання в тому, навіщо його використовувати?
Основна причина використання локального часу замість NTP – це проблеми з часом при подвійному завантаженні. Якщо ви коли-небудь завантажували Linux, а потім перезавантажували Windows 10, ви могли помітити розбіжності у часі. Це відбувається тому, що обидві операційні системи мають служби синхронізації часу, і вони “сперечаються” між собою. Найпростіший спосіб вирішити цю проблему – відключити синхронізацію часу в Linux.
Примітка: навіть якщо ви налаштували Linux на використання локального часу, Windows все одно може мати проблеми з часом. Обов’язково перевірте налаштування часу Windows, щоб уникнути подальших конфліктів між двома операційними системами.
Запуск `timedatectl` повинен виправити цю ситуацію:
sudo timedatectl set-local-rtc 1
Після переходу на локальний час, можливо, знадобиться перезавантажити комп’ютер. Після повторного входу, система повинна використовувати локальний час.
Хочете вимкнути локальний час? Якщо так, вам потрібно буде знову запустити команду `timedatectl`. Спробуйте виконати команду нижче:
sudo timedatectl set-local-rtc 0
Як і раніше, перезавантажте свій комп’ютер Linux. Під час наступного входу локальний час не повинен використовуватися.