背景
客户有个局域网,局域网里面有的设备,时间都不一致,导致交互的时候可能出现问题;
现在刚好有台主机,有两个以太网接口,其中一个可以连外网,能获取到网络时间,我们可以把这台主机做成ntp服务器,供局域网内其他主机做时间同步;
以下是相关操作方法步骤;
windows如何配置ntp服务器
手动配置
-
打开注册表编辑器。您可以按Win+R键,然后输入
regedit
并回车。 -
导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
-
在右侧面板中,双击“Enabled”,然后在数据值字段中输入“1”。
-
导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
-
在右侧面板中,双击“AnnounceFlags”,然后在数据值字段中输入“5”。
-
关闭注册表编辑器。
-
打开命令提示符(以管理员身份),然后输入以下命令来重启Windows时间服务:
net stop w32time && net start w32time
Windows主机已经被设置为NTP服务器,其他设备(如Linux主机和NVR设备)应该能够从此主机获取时间信息了。对于Linux主机和NVR设备,你需要将它们的NTP客户端指向Windows主机的IP地址。
- (20240123)将Windows Time服务设置为开机自启
今天重启神角矿工控机,发现ntp服务没有启动(启动类型显示“手动”),然后我把它改成“自动”以支持开机自启。
配置参数AnnounceFlags
和Enabled
含义
在Windows的注册表设置中,AnnounceFlags
和Enabled
这两个键值对NTP服务器的配置有特殊的含义。
-
AnnounceFlags
: 这个键控制了W32Time服务(Windows Time)是否(以及如何)向网络公布自己作为一个可用的时间源。它的值是一个位掩码,表示不同的标志。当AnnounceFlags
的值设为5时,表示以下两个条件:-
值4(二进制100)告诉W32Time服务,只有当本机是一个可靠的时间服务时(例如,它已经被配置为手动同步到一个硬件时钟或外部NTP服务器),才公布自己为时间服务器。
-
值1(二进制001)让W32Time服务始终公布自己为时间服务器,无论它是否已经接收到合法的时间更新。
-
-
Enabled
: 这个键决定了是否启用NTPServer。如果把这个值设为1,那么NTPServer就会被启用,即W32Time服务将作为NTP服务器,为其他设备提供时间。
请注意,在修改注册表之前,一定要创建一个还原点或者备份注册表。错误的修改可能会导致系统不稳定。
注意:AnnounceFlags默认值为a,如果我不修改它,貌似也能正常工作。
使用软件配置(NetTime)
在Windows上,有一些第三方应用程序允许你很容易地设置NTP服务器。
例如, “NetTime”。NetTime是一个简单的、易于使用的时间同步客户端,也可以作为服务器运行。以下是如何设置它的步骤:
-
下载并安装NetTime:http://www.timesynctool.com/
-
运行NetTime,然后右键点击系统托盘中的NetTime图标,选择“Settings”。
-
在“Settings”窗口中,勾选"Always provide time"选项,使得NetTime作为服务器提供时间服务。
-
点击“OK”保存设置。
这样,你就把你的Windows主机设为了NTP服务器。然后你就可以在其他设备(如Linux主机和NVR设备)上将其NTP客户端指向Windows主机的IP地址,实现局域网内的时间同步。
实操
下载它:
下载完成后点开默认安装即可:
点击Settings,勾选Allow other computers to sync to this computer:
弹出个警告,提示我们在把此主机用于ntp服务器时,需保证此主机时间的准确性,我们点No即可:
相关疑问:0.nettime.pool.ntp.org是什么?
0.nettime.pool.ntp.org
是一个公共的网络时间协议(NTP)服务器地址,它是NTP Pool Project的一部分。
NTP Pool Project是一个大型的、由志愿者和赞助商维护的NTP服务器池。它为全球的互联网用户提供精确的时间服务。"pool.ntp.org"项目使用DNS轮询来分配各种时间服务器的流量,这意味着当你查询"pool.ntp.org"时,DNS服务器会返回该池中任意一个服务器的IP地址。
在0.nettime.pool.ntp.org
这个地址中,0
表示该服务器在NTP Pool中的逻辑编号,而nettime
则可能是服务器组的名称,但我没有找到关于nettime
的特定信息。通常,你会看到像0.pool.ntp.org
,1.pool.ntp.org
这样的地址,其中的数字(如0, 1)代表了不同的服务器或服务器组。
然而,如果你的网络不能访问互联网,那么你将无法使用这个地址,因为它需要通过互联网来访问NTP Pool的服务器。在这种情况下,你需要设置一个内部的NTP服务器,如我之前所述。
我在神角矿win10工控机上用这个服务作为ntp同步服务器,但是盒子一直无法同步成功不知道怎么回事,一直显示超时(可能是工控机的防火墙阻止了,见本文后面解释)
注意事项
请务必检查windows主机123端口是否已被占用,方法请参考:windows查看端口占用,通过端口找进程号(查找进程号),通过进程号定位应用名(查找应用)(netstat、tasklist)
ubuntu20.04如何同步ntp服务器时间?
使用timedatectl systemd-timesyncd服务
Ubuntu 20.04默认使用的是systemd-timesyncd
服务来同步时间,你不需要另外安装NTP。以下是如何使用timedatectl
来同步NTP服务器的时间:
-
首先打开终端。
-
使用以下命令检查
systemd-timesyncd
服务的状态:
timedatectl status
- 如果
NTP service: active
行显示为yes
,则表示systemd-timesyncd
服务正在运行。如果没有,你可以用以下命令启动它:
sudo timedatectl set-ntp on
- 现在你的系统应该会自动从默认的NTP服务器同步时间。你也可以修改
/etc/systemd/timesyncd.conf
文件来更改NTP服务器。例如,使用nano编辑器:
sudo nano /etc/systemd/timesyncd.conf
- 在此文件中,找到以
#NTP=
开头的行,删除#
并添加你的NTP服务器,多个服务器之间用空格分隔。例如:
NTP=server1 server2
- 保存并关闭文件。然后重启
systemd-timesyncd
服务来应用更改:
sudo systemctl restart systemd-timesyncd
7. 查看时间是否同步成功
用timedatectl
命令查看,如果同步成功,我的盒子RTC Time那儿时间会显示正确,而不是1970xxxx:
timedatectl
用systemctl status systemd-timesyncd.service --no-pager
命令查看systemd-timesyncd服务的状态以及重要日志:
systemctl status systemd-timesyncd.service --no-pager
如果同步成功,会显示下面这行文字:
Initial synchronization to time server 192.168.19.232:123 (192.168.19.232).
以上就是在Ubuntu 20.04上使用timedatectl
来同步NTP服务器时间的步骤。
(重要)设置windows ntp服务器123端口 UDP的入站(必选)和出站流量(非必选)
注意:此方法为备选方案,在ntp无法同步时,可测试开启,看看开启后是否能够同步。
在Windows中,你可以通过以下步骤检查和配置防火墙以允许UDP 123端口的入站和出站流量:
-
打开“控制面板”。
-
点击“系统和安全”。
-
点击“Windows Defender 防火墙”。
-
在左侧菜单中,点击“高级设置”。
-
在新窗口中,你会看到"入站规则"和"出站规则"两个选项。首先,我们来创建一个允许UDP 123端口入站的规则。
-
点击"入站规则",然后在右侧点击"新建规则"。
-
在弹出的向导中,选择"端口",然后点击"下一步"。
- 选择"UDP",然后在"特定本地端口"中输入"123",点击"下一步"。
- 选择"允许连接",然后点击"下一步"。
-
确保所有的网络类型都被勾选,然后点击"下一步"。
-
给规则命名(例如,“NTP UDP 123 Inbound”),然后点击"完成"。
现在我已经可以让外部主机获取到ntp服务的时间了,后面出站规则貌似不用设置了
(下面无需设置)
接下来,我们创建一个允许UDP 123端口出站的规则。
-
在左侧菜单中,点击"出站规则",然后在右侧点击"新建规则"。
-
重复步骤7-11,只是在第9步时选择"允许连接"。
现在,Windows防火墙应该已经配置为允许UDP 123端口的入站和出站流量了。
20240123 今天调试神角矿,工控机上的ntp服务一直不能被外部请求通(本机可以),发现是被防火墙给阻止了(我后面按照上面上面配置了123端口 UDP的入站流量,就可以了)
如图:原先是将公用网络的防火墙打开了,我把它关闭,ntp服务就能使用了。
20240123 ubuntu systemd-timesyncd 时间同步(ntp同步)报错:Server has too large root distance. Disconnecting. 解决办法
https://dontla.blog.csdn.net/article/details/135777981文章来源:https://www.toymoban.com/news/detail-820214.html
参考文章
参考文章:时间同步服务器文章来源地址https://www.toymoban.com/news/detail-820214.html
到了这里,关于局域网ntp服务器设置(windows时间同步服务器NetTime)(ubuntu systemd-timesyncd ntp客户端)123端口、ntp校时、ntp同步(设置UDP入站流量绕过防火墙)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!