NTP (Протокол сетевого времени) — это протокол, используемый для синхронизации компьютерного времени. Это протокол клиент-сервер, используемый для синхронизации часов компьютера. Подключившись к серверу времени в сети, компьютер может получить точную информацию о времени и обеспечить синхронизацию своих часов с другими устройствами в сети.
Сервер NTP (протокол сетевого времени) в основном используется для синхронизации времени компьютеров и сетевых устройств, чтобы обеспечить точность и согласованность времени в системе. Сценарии использования NTP-серверов включают в себя следующие аспекты:
1. На этот раз мы в основном разворачиваем NTP-сервер;
2. Бизнес-сервер указывает NTP-сервер для синхронизации времени.
hostname | IP-адрес | Версия операционной системы | Роль |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | NTP-сервер |
docker | 192.168.3.127 | centos 7.6 | Бизнес-сервер |
[root@jeven ~]# yum repolist enabled
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
!base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
!extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 518
!gitlab-ce/7 Gitlab CE Repository 934
!pgdg-common/7/x86_64 PostgreSQL common RPMs for RHEL / CentOS 7 - x86_64 497
!pgdg11/7/x86_64 PostgreSQL 11 for RHEL / CentOS 7 - x86_64 1,595
!pgdg12/7/x86_64 PostgreSQL 12 for RHEL / CentOS 7 - x86_64 1,261
!pgdg13/7/x86_64 PostgreSQL 13 for RHEL / CentOS 7 - x86_64 1,021
!pgdg14/7/x86_64 PostgreSQL 14 for RHEL / CentOS 7 - x86_64 762
!pgdg15/7/x86_64 PostgreSQL 15 for RHEL / CentOS 7 - x86_64 473
!updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 5,367
repolist: 22,500
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
Установите Chrony напрямую, используя yum
yum -y install chrony
Запустите службу chronyd
systemctl enable --now chronyd
Проверьте текущий статус службы хрони
[root@jeven ~]# systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-11-01 16:36:53 CST; 28s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 31095 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 31090 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 31092 (chronyd)
Tasks: 1
Memory: 464.0K
CGroup: /system.slice/chronyd.service
└─31092 /usr/sbin/chronyd
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
reboot # Перезагрузите систему
[root@jeven ~]# getenforce
Disabled
Измените файл /etc/chrony.conf.
vim /etc/chrony.conf
server ntp1.aliyun.com iburst
allow 192.168.3.0/24
allow 192.168.3.0/24
local stratum 10
Перезапустите службу chronyd.
systemctl restart chronyd
Установите программное обеспечение Chrony напрямую
yum -y install chrony
Запустите службу chronyd
systemctl enable --now chronyd
файл конфигурации chrony.conf
vim /etc/chrony.conf
pool 192.168.3.166 iburst
Перезапустите службу chronyd.
systemctl restart chronyd
Выполните следующую команду, чтобы проверить состояние синхронизации времени.
[root@docker ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* jeven.dhcp-route 3 6 17 10 +15us[ +52us] +/- 23ms
Выполните следующую команду, чтобы просмотреть подробную информацию о NTP-сервере.
[root@docker ~]# chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* jeven.dhcp-route 3 6 37 7 +14us[ +175us] +/- 19ms
Установите текущее время на неправильное время
date -s "2012-12-12 12:12:12"
Проверьте текущее время и обнаружите, что оно было изменено на неправильное время.
[root@docker ~]# date
Wed Dec 12 12:12:13 CST 2012
Выполните следующую команду, чтобы синхронизировать время вручную и немедленно.
[root@docker ~]# sudo chronyc makestep
200 OK
Проверьте текущее время и обнаружите, что неправильное время было изменено на правильное.
[root@docker ~]# date
Wed Nov 1 17:09:22 CST 2023
Я участвую в третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 с эссе, получившими приз, и сформирую команду, которая разделит приз!