一:更新系统时间的方式
1、手动修改
通过相关工具来手动修改系统的时间。
2、自动同步
使用NTP自动同步系统时间。
二:手动修改系统时间
1、date工具
作用:显示和设置系统时间选项:
-d <字符串> 显示字符串所指的日期与时间,比如:"-1 day"表示当前日期的前一天,必须要加双引号-s <字符串> 设置当前的时间和日期#年月日使用(-)分隔,时分秒使用(:)分隔
时间格式:
# 显示时间格式: date [+指定的格式]# 相关格式说明:%T:time,显示时分秒,24小时制(hh:mm:ss) %F:full date,显示年月日,%Y-%m-%d# 说明:Y: 年m:月 d:日 H:时 M:分 S:秒
例如:显示年月日时分秒
# 格式:date"+%F %T"# 需要用双引号括起来 表示这是一个整体root@ubuntu1804:~# date Tue28Mar202311:07:08 AM CSTroot@ubuntu1804:~# date +"%F"2023-03-28root@ubuntu1804:~# date +"%T"11:07:18root@ubuntu1804:~# date +"%F %T"2023-03-2811:07:29
只修改年月日:
date-s"20220710"或date-s"YYYY-MM-DD"# 时间设置成2022年7月10日0时0分
只修改时分秒:
date-s"hh:mm:ss"
全部都改:
date-s"YYYY-YY-DDHH:mm:ss"
说明:
使用date命令修改的时间是
临时生效的,重启系统后失效,需要将当前时间和硬件时间同步后才可以持久生效。
2、hwclock工具
作用:实现时间的校对,将硬件时间和系时间进行校对。使用date手动修改了时间后,需要使用hwclock进行校对。
选项:
-s, --hctosys# 以硬件时钟为准,校正系统时钟-w, --systohc# 以系统时钟为准,校正硬件时钟
说明:clock是hwclock的一个软链接
# centos存在clock和hwclock[root@Centos8 ~]# ll `which hwclock`-rwxr-xr-x.1root root66928Jul222020/usr/sbin/hwclock [root@Centos8 ~]# ll `which clock`lrwxrwxrwx.1root root7Jul222020/usr/sbin/clock -> hwclock# clock是hwclock的一个软链接,ubuntu上面只有hwclockroot@ubuntu1804:~# which clockroot@ubuntu1804:~# which hwclock /sbin/hwclock
例如:将系统时间同步到硬件时间
# 同步的时候没有任何提示root@ubuntu1804:~# hwclock -w root@ubuntu1804:~#
例如:将硬件时间同步到系统时间
# # 同步的时候没有任何提示root@ubuntu1804:~# hwclock -s
3、timedatectl 工具
作用:timedatectl 工具可以用来更改时区也可以用来修改系统时间,一般是用来更改时区用的。
查看时区列表:
# 格式 timedatectl list-timezones # 例如:root@ubuntu1804:~# timedatectl list-timezones Africa/Abidjan Africa/Accra .......
修改时区:
# 格式timedatectlset-timezone 时区# 例如:修改时区 修改时区无任何提示root@ubuntu1804:~# timedatectl set-timezone Asia/Shanghai
修改日期时间:
timedatectlset-time"2017-01-23 10:30:00"# YYYY-mm-dd HH-MM-SS
开启NTP:
timedatectlset-ntptrue/false
通过软链接的方式修改时区:
# 存放时区信息 /etc/timezoneroot@ubuntu1804:~# cat /etc/timezoneAsia/Shanghai# 修改时区影响的文件 /etc/localtime# 例如root@ubuntu2004:~# rm -f /etc/localtime #更改时区最终收到影响的文件:/etc/localtimeroot@ubuntu2004:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeroot@ubuntu1804:~# ll /etc/localtimelrwxrwxrwx1root root35Mar2811:20/etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
三:使用NTP自动同步时间
NTP(Network Time Protocol)协议,网络时间协议。利用ntp协议可以实现网络中的计算机时间同步。
1、ntpdate工具
作用:利用时间同步服务器的时间来校准本机的时间,使用互联网上的时间同步服务器需要连接互联网
格式:
ntpdateserver_host
例如: 使用ntpdate同步时间
root@ubuntu1804:~# apt install ntpdateroot@ubuntu1804:~# date Tue Dec1315:12:07CST2022root@ubuntu1804:~# date -d '-1 day'Mon Dec1215:12:22CST2022root@ubuntu1804:~# ntpdate ntp.aliyun.com13Dec15:12:36ntpdate[15040]: adjust time server203.107.6.88offset0.002588 secroot@ubuntu1804:~# date Tue Dec1315:12:40CST2022#同步后的时间
2、ntp工具
作用:利用时间同步服务器的时间来校准本机的时间,能持久同步时间而不是一次同步。
说明:ntp工具是客户端和服务器都是一个工具,默认作为客户端使用。
ntp作为客户端:可以用来校准本地时间为其它ntp服务器的时间
ntp作为服务端:用来搭建ntp时间服务器,其它主机同步本机时间
ntp的客户端工具:
ntpq工具:是ntp的命令行工具,用于查询和控制 NTP 服务器,并获取与服务器时间同步的信息。
# 查看 NTP 服务器状态:显示当前计算机与所有已配置 NTP 服务器之间的时间同步状态ntpq-p# 查看 NTP 服务器系统状态:显示每个 NTP 服务器的系统状态信息ntpq-c sysstat# 查看计算机与 NTP 服务器之间的同步状态:示计算机与 NTP 服务器之间的同步状态,包括时间差和延迟等信息ntpq-c loopstats
3、chrony工具
作用:利用时间同步服务器的时间来校准本机的时间,能持久同步时间而不是一次同步。同步的精度和速度比ntp更快。
端口:
服务端udp的123端口,如果chrony开启了客户端功能的话,会对123\udp端口进行监听。
客户端监听udp的323端口,作用同上。
chrony作为客户端:可以用来校准本地时间为其它ntp服务器的时间
chrony作为服务端:用来搭建ntp时间服务器,其它主机同步本机时间
chrony的客户端工具:
chronyc工具:用于管理和监控 NTP(网络时间协议)客户端的命令行工具
# 检查 NTP 服务器的状态:显示当前的时间误差,NTP 服务器的状态,NTP 版本号等信息。chronyctracking# 查看可用的 NTP 服务器列表:查看本地计算机与 NTP 服务器之间的连接状态chronycsources# 调整时钟频率:立即调整系统时钟,使其与 NTP 服务器同步chronycmakestep# 显示当前的活动:显示 NTP 守护进程的当前状态,例如它是否正在向其他 NTP 服务器发送请求或接收响应。chronycactivity
四:NTP的配置
通过将一台主机搭建为时间服务器,其它局域网内的主机可以和本机的时间进行同步。
1、ntp工具
作为客户端:
只需要在配置文件中指定ntp服务器的地址就行
root@ubuntu1804:~# vim /etc/ntp.confpool ntp.aliyun.com iburst# iburst表示加速同步
作为服务端:
将本机时间作为标准,以此给其它主机同步时间。
# 以本机时间为准,允许所有用户进行同步root@ubuntu1804:~#vim/etc/ntp.confserver127.127.1.0fudge127.127.1.0stratum10restrictdefault
restrict:
restrict:用于限制哪些主机或网络可以与时间服务器进行通信。默认是restrict default允许所有主机同步
配置restrict参数可以帮助保护时间服务器免受不必要的流量和安全攻击。
# 格式 restrict [IP] [mask] [netmask_IP] [patameter]# 参数 default# 默认参数,表示没有限制。这意味着任何客户端都可以访问该服务器并进行时间同步ignore# 表示忽略所有的 NTP 请求,这意味着客户端无法与服务器进行时间同步。nomodify# 表示客户端无法修改服务器的时间设置noquery# 表示客户端无法查询服务器的状态信息,例如版本号、偏差等。limited# 表示限制客户端的访问速率,防止客户端过于频繁地请求时间同步。ntpport# 指定允许访问服务器的 NTP 端口范围# 例如:# 允许所有客户端访问服务器 (默认)restrictdefault# 限制只有同一个局域网内的主机可以同步时间restrict192.168.0.0mask255.255.255.0nomodifynotrap# 限制来自192.168.1.0/24子网范围内的主机只能通过1234端口访问NTP服务器,而不允许使用其他端口访问。restrict192.168.1.0mask255.255.255.0ntpport1234”# 限制来自 192.168.1.0/24 网段的所有主机,禁止其查询服务器,并且不信任该网段的主机。restrict192.168.1.0mask255.255.255.0noquerynotrust# 局域网里面搭建ntp就使用这个进行限制。# 允许192.168.0.0网段访问时间服务器,但是不能修改时间服务器的一些配置。# modify 表示禁止客户端修改服务器的时间设置,notrap 表示禁止客户端使用 trap 操作。restrict192.168.0.0mask255.255.255.0nomodifynotrap
2、chrony工具
作为客户端:
只需要使用server或pool指定ntp服务器的地址就行了。
root@ubuntu1804:~# vim /etc/chrony/chrony.confserver ntp.aliyun.com
作为服务端:
将本机时间作为标准,其它主机的时间同步本机时间。
因为chrony默认是作为客户端使用的,即服务端的123端口默认没开,需要在配置文件中使用allow指定才会切换为服务端模式。
# 修改改配置文件root@ubuntu1804:~#vim/etc/chrony/chrony.confserver127.127.1.0fudge127.127.1.0stratum10localstratum10# 使用本地硬件时钟作为时间源,并将同步级别设置为 10,表示该服务器的时间较准确allow0.0.0.0/0# 指定允许同步的网段 表示的是任何主机都可以和本机进行时间的同步# fudge这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0
说明:
server:用于指定单个NTP服务器
pool:用于指定NTP服务器池而不是单个NTP服务器
iburst:让同步时间的时候更快,开启多个并行任务来进行同步
prefer:表示如果指定了多个时间服务器的情况下优先用这个
server192.168.7.49preferiburst# prefer表示如果指定了多个时间服务器的情况下优先用这个 iburst:表示加速时间同步
五:具体实现
1、 ntp
使用ntp同步ntp服务器上的时间
# 安装ntp服务root@ubuntu1804:~# apt install ntp# 只需要在配置文件中加入这个就行root@ubuntu1804:~# vim /etc/ntp.conf pool ntp.aliyun.com# 查看 NTP 服务器状态root@ubuntu1804:~# ntpq -premote refid st twhenpoll reach delay offset jitter============================================================================== ntp.aliyun.com .POOL.16p -6400.0000.0000.000# 查看同步后的时间root@ubuntu1804:~# date Wed Mar2914:08:54CST2023
使用ntp搭建本地时间服务器
搭建好后需要等待5-10分钟才行
# 修改客户端时间用于测试root@ubuntu1804:~#date-s"20220329"TueMar2900:00:00CST2022# 1. 修改服务端配置文件root@ubuntu1804:~#vim/etc/ntp.confpoolntp.aliyun.comiburstserver127.0.0.1iburstfudge127.127.1.0stratum10restrictsource10.0.0.0mask255.255.255.0nomodify# 2. 查询和显示NTP服务器的状态root@ubuntu1804:/var/log/ntpstats#ntpstatsynchronisedtolocalnetatstratum11timecorrecttowithin199mspollingserverevery64s# 查看同步信息 没带星号说明还没开始同步root@ubuntu1804:/var/log/ntpstats#ntpq-premoterefidsttwhenpollreachdelayoffsetjitter==============================================================================LOCAL(0).LOCL.10l1164370.0000.0000.000# 带星号说明已经开始同步root@ubuntu1804:/var/log/ntpstats#ntpq-premoterefidsttwhenpollreachdelayoffsetjitter==============================================================================*LOCAL(0).LOCL.10l54643770.0000.0000.000# 3. 客户端时间同步root@ubuntu1804:~#ntpdate10.0.0.2215Oct00:19:27ntpdate[3631]:noserversuitableforsynchronizationfound# 服务端配置好后,需要等5-10分钟左右才能同步成功,否则就会出现上面的提示root@ubuntu1804:~#ntpdate10.0.0.2229Mar17:42:59ntpdate[3632]:steptimeserver10.0.0.22offset14318478.924123sec# 查看更新后的时间root@ubuntu1804:~#dateWedMar2916:15:44CST2023
2、chrony工具
使用chrony同步ntp服务器上的时间
# 将本机时间修改为一个错误时间测试root@ubuntu1804:~#dateTueMar2900:00:55CST2022# 安装服务root@ubuntu1804:~#aptinstallchrony# 修改配置文件root@ubuntu1804:~#vim/etc/chrony/chrony.confpoolntp.aliyun.comiburst# 重启服务root@ubuntu1804:~#systemctlrestartchronyd.service# 查看本地计算机与NTP服务器之间的连接状态root@ubuntu1804:~#chronycsources210Numberofsources=1MSName/IPaddressStratumPollReachLastRxLastsample===============================================================================^?203.107.6.8826131-8775h[-8775h]+/-31ms# 查看有多少个ntp源在线root@ubuntu1804:~#chronycactivity200OK1sourcesonline0sourcesoffline0sourcesdoingburst(returntoonline)0sourcesdoingburst(returntooffline)0sourceswithunknownaddressroot@ubuntu1804:~#dateWedMar2914:38:41CST2023
使用chrony搭建本地时间服务器
# 客户端时间设置root@ubuntu1804:~#date-s"20220228"MonFeb2800:00:00CST2022# 服务器配置root@ubuntu1804:~#vim/etc/chrony/chrony.confserver127.0.0.1iburst# fudge 127.127.1.0 stratum 10localstratum10allow0.0.0.0/0# 重启服务root@ubuntu1804:~#systemctlrestartchronyd.service# 查看有多少个ntp源在线root@ubuntu1804:~#chronycactivity200OK0sourcesonline0sourcesoffline1sourcesdoingburst(returntoonline)0sourcesdoingburst(returntooffline)0sourceswithunknownaddress# 显示本机时间和远程服务器同步的情况root@ubuntu1804:~#chronycsources210Numberofsources=1MSName/IPaddressStratumPollReachLastRxLastsample===============================================================================^*localhost1061779-38ns[+535ns]+/-1362ns# 客户端同步时间root@ubuntu1804:~#ntpdate10.0.0.2229Mar14:58:27ntpdate[3607]:adjusttimeserver10.0.0.22offset-0.020780secroot@ubuntu1804:~#dateWedMar2914:58:29CST2023
(51条消息) NTP服务器配置_ntp配置_Resines的博客-CSDN博客
六:Windows搭建和使用NTP服务器
1、windows搭建NTP服务器
(1)修改注册表启动NTP server
快捷键win + R 打开“运⾏”菜单,输⼊regedit打开Windows注册表修改注册表配置,设定授权时间服务器“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config”[AnnounceFlags]修改设定值为5
修改注册表配置启动ntp服务器:
“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer”[Enabled]数值修改为1
(2)重启WindowsTime服务
# 管理员模式下cmd终端执⾏以下命令:netstop w32timenetstart w32time
2、windows使用NTP服务器
(1)将WindowsTime服务设置自动启动
打开Windows系统服务(Win + R然后输⼊services.msc再回⻋),找到Windows Time系统服务,右击更改属性,将其"启动类型"改为"⾃动"。
(2)指定ntp服务器的地址
⿏标右击电脑左下⻆的时间,打开:调整⽇期/时间(A)
选择添加不同时区的时钟
再选择Internet时间,点击:更改设置,勾选上⼩⽅块,服务器选择上⼀步配置的IP地址,点击⽴即更新.