(笔记)【NTP系列:07】NTP时间同步配置总结:Windows(W32Time)作为NTP时钟源服务端,Linux作为客户端
一、NTP工作模式(客户端/服务器模型)
NTP服务端:Windows(W32Time)系统
NTP客户端:Linux嵌入式控制板
二、NTP服务端配置
步骤如下: 1. 禁用windows防火墙或者设置防火墙入站规则(两者二选一)。 方法1.禁用防火墙步骤: 控制面板—>系统和安全—>windows防火墙—>启用或关闭防火墙 关闭专用网络和公共网络的防火墙。 方法2.设置防火墙入站规则步骤: 控制面板—>系统和安全—>windows防火墙—>高级设置—>入站规则(右键)—>新建规则—>端口—>下一步—>UDP,特定本地端口:123—>起名NTP—>完成。 打开Windows注册表:win+R->输入regedit->运行。
2. 修改Windows注册表: 修改注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\]中AnnounceFlags的值为5.AnnounceFlags值的含义: 5:强制时钟源为本地CMOS时钟 a:强制时钟源为本地CMOS时钟 修改注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]中Enabled的值为1.即使能NTP服务器. 修改[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\]中Enabled的值为0.即关闭NTP客户端. 退出注册表。
3. 打开管理员命令行:右击开始—>windows PowerShell(管理员) 在命令行中执行如下命令: 先停止服务: net stop w32time。 重新打开服务: net start w32time。如果提示:Windows Time 服务已经启动成功。则配置ok.
4. 回环测试ntp服务器是否运行: 在命令行中执行:w32tm /stripchart /computer:127.0.0.1" 如果出现10:41:02 error: 0x80072746类似这种字样表示不通,服务器没有运行。 如果出现13:59:00, d:+00.0003901s o:+00.0000687s [ * ]类似这种字样表示服务器运行正常。
三、NTP客户端配置
1. 确认ntpd.service服务文件内容(以下为默认配置,无需更改)
root@XX:/lib/systemd/system# cat ntpd.service [Unit] Description=Network Time Service After=network.target [Service] Type=forking PIDFile=/run/ntpd.pid ExecStart=/usr/sbin/ntpd -u ntp:ntp -p /run/ntpd.pid -g [Install] WantedBy=multi-user.target
2. 确认ntpdate.service服务文件内容(以下为默认配置,无需更改)
root@XX:/lib/systemd/system# cat ntpdate.service [Unit] Description=Network Time Service (one-shot ntpdate mode) Before=ntpd.service [Service] Type=oneshot ExecStart=/usr/bin/ntpdate-sync silent RemainAfterExit=yes [Install] WantedBy=multi-user.target
3. NTP手动同步测试
使用"ntpdate ntp_server_ip"命令,观察时间是否同步成功,若不能同步成功,可使用”ntpdate -d ntp_server_ip“查看同步失败原因。
注:当ntpd服务运行时,是不能正确执行ntpdate的,此时需要关闭ntpd服务。
若手动同步不成功,可参考文章:(笔记)【NTP系列:02】NTP使用常见问题记录 - tdyizhen1314 - 博客园 (cnblogs.com)
4. NTP自动同步测试
首先需要修改ntp唯一的配置文件”/etc/ntp.conf“,新增红色字体部分,其中:
tos maxdist 30: 将容忍时钟偏差修改至30,单位为S,该值默认为1.5. 当偏差大于此限定值时,ntp不会同步时钟。 tinker panic 0: 当服务器时钟与本地时钟偏差大于1000时,ntp客户端会视为此偏差过大,不会同步时钟,且会退出ntpd服务,设置为0可忽略此限制。 server 172.16.1.200 iburst minpoll 6 maxpoll 6:设置ntp服务器地址。 logfile /var/log/ntp.log: 设置ntp日志文件路径,也可以不设置,仅是调试时使用。
配置完成后,参考如下:
root@AM437x-Droidsurg:~# cat /etc/ntp.conf # This is the most basic ntp configuration file # The driftfile must remain in a place specific to this # machine - it records the machine specific clock error driftfile /var/lib/ntp/drift # This should be a server that is close (in IP terms) # to the machine. Add other servers as required. # Unless you un-comment the line below ntpd will sync # only against the local system clock. # # # tos maxdist 30 tinker panic 0 # # server time.server.example.com server 172.16.1.200 iburst minpoll 6 maxpoll 6 # # Using local hardware clock as fallback # Disable this when using ntpd -q -g -x as ntpdate or it will sync to itself server 127.127.1.0 fudge 127.127.1.0 stratum 14 # # Defining a default security setting restrict default # logfile /var/log/ntp.log
此时可使用系统命令启动服务,如下:
systemctl stop ntpd #停止ntpd服务 systemctl start ntpd #启动ntpd服务 systemctl status ntpd #输出ntpd服务状态
此时可手动人为调整ntp服务端或客户端的时钟,观察是否能自动同步成功。【注:时间同步需要时间,并不是立即同步(除非修改时钟后,重启ntpd服务),而是需要等待若干分钟时间,如15分钟,有可能更长时间。只有当ntp客户端判断自身处于:Leap Indicator: unknown (clock unsynchronized),才会立将NTP报文中的时间同步至系统时钟】
注:若ntpd自动同步不成功,可参考文章:(笔记)【NTP系列:05】NTP时间同步失败:Windows(W32Time)作为NTP时钟源服务端,Linux作为客户端 - tdyizhen1314 - 博客园 (cnblogs.com)
posted on 2023-02-06 11:14 tdyizhen1314 阅读(3512) 评论(0) 编辑 收藏 举报