Windows Server 2016 NTP服务端和客户端配置

[2024.06.12]更新。
· 优化了添加客户端NTPServer的顺序。
· 发现一个更加专业的网站,有兴趣的可以拿来参考。没有特殊要求的话,结尾的两个批处理就够用了(见效快)。

服务端参考:配置权威时间 - Windows Server | Microsoft Learnicon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/active-directory/configure-authoritative-time-server客户端参考:Windows 时间服务工具和设置 | Microsoft Learnicon-default.png?t=N7T8https://learn.microsoft.com/zh-cn/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings?tabs=config


[2022.12.10] 更新。

版权声明:本文为CSDN博主「liupin67」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liupin67/article/details/84207325

目前这篇浏览超过2W,而且网上也有其他地方引用转发,还有转发后是错误的,这里附上原文连接是方便更新维护后,依然能链接过来。


[2021.07.02] 更新。服务端的批处理。


[2021.06.25] 更新。结尾处有彩蛋,欢迎登录后复制。


[2018.11.19] 发布。

目标:

        A、B两台Windows Server 2016系统的服务器。B要做为NTP服务器使用,而只有A可以连到互联网。所以先将A作为NTP服务端,再将B作为既是服务端又是客户端。其它设备同B服务器同步时间。

服务端:1.微软键+R键,进入“运行”,输入“regedit”,进入注册表。
2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type    右键修->修改为 NTP。
3.修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer的Enabled的值为1(默认为0) 。
4.修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config里的"AnnounceFlags"值为5(默认为a)。
5.重启Windows Time服务,或者cmd输入:net stop w32time  回车,在输入: net start w32time。
6.按开始->运行,输入"services.msc"进入服务,将Windows Time服务启动类型设置为自动。
7.如果防火墙是打开状态,记得打开防火墙端口(入站规则):123/UDP。
8.服务中的两个RPC服务都要打开,Remote Procedure Call (RPC) ,Remote Procedure Call (RPC) Locator。 


客户端:

1.找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer,修改值为设置的NtpServer的IP,后加,0x9。如:"ntp.ntsc.ac.cn,0x9"。注意,IP后面跟上逗号和0x9。
2.修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient里的 "SpecialPollInterval",这个代表时间间隔,多长时间和Ntp服务器同步一次,单位为秒,原来的值为"93a80" (十六进制的)。
3.重启Windows Time服务,或者cmd输入:net stop w32time  回车,在输入: net start w32time。
4.按开始->运行,输入"services.msc"进入服务,将Windows Time服务启动类型设置为自动。
5.如果防火墙是打开状态,记得打开防火墙端口(入站规则):123/UDP。
6.服务中的两个RPC服务都要打开,Remote Procedure Call (RPC) ,Remote Procedure Call (RPC) Locator。 


中间出现过意外,Windows Time 服务起不来了,提示:"无法启动windows time 的服务 错误2:系统找不到指定的文件"。重做系统比较麻烦,网上找了也没有详细的解决办法,可能是文件损坏。
最后是这样解决的:
1. 在命令提示符中,输入w32tm /register,提示:W32Time 成功注册。如果能重启Windows Time 服务即可。不能启动向下看。
2. 将其它好的系统中的C:\Windows\System32\w32time.dll, C:\Windows\SysWOW64\w32time.dll。拷贝到对应的目录。或者从网上下载。继续第一步,能启动即可。不能启动向下看。
3. 卸载Windows Time服务,命令提示符中cmd输入:sc delete W32Time。提示:卸载W32Time成功。再输入:C:\Windows\system32\svchost.exe -k LocalService,无提示。再注册服务:w32tm /register,提示:W32Time 成功注册。
我的是卸载了重新注册后才成功的,反正就是参考网上的做,大概的思路就是w32time.dll要正确(文件本身和存放路径),还有W32Time服务要正确(不行就重新注册)。


懒人设置ntp校时(客户端)方法:

复制以下内容,新建文本文档,粘贴,保存。改后缀为.bat。双击运行即可。其中ntp.ntsc.ac.cn是NTP服务器的地址,有不一样的自行修改。

@echo off
rem 获取管理员权限,由依梦琴瑶提供。
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
SETLOCAL ENABLEDELAYEDEXPANSION

if not exist "%~dp0懒人设置NTP客户端.bat" (
ren "%~f0" "懒人设置NTP客户端.bat"
call "%~dp0懒人设置NTP客户端.bat"
)

rem 设置NTP服务器地址
set "ntpserv=ntp.ntsc.ac.cn"

:: ------查看现有多少个NTPServer地址-----
set i=0
for /f %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers') do if %i% lss %%a set /a i=%%a
set /a i+=1
:: ------------------------------------------

echo.修改ntp为%ntpserv%
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers" /ve /d "%i%" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers" /v "%i%" /d "%ntpserv%"  /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters" /v "NtpServer" /d "%ntpserv%,0x9" /f
 
rem 修改同步间隔时间:720秒同步一次
reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient" /v "SpecialPollInterval" /t REG_DWORD  /d 720 /f
 
rem 重启服务
net stop w32time && net start w32time
 
rem 同步时间
w32tm /resync
echo.现在时间:%date% %time%
pause

懒人设置ntp校时(服务端)方法:

@echo off
rem 获取管理员权限,由依梦琴瑶提供。
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

if not exist "%~dp0懒人设置NTP服务端.bat" (
ren "%~f0" "懒人设置NTP服务端.bat"
call "%~dp0懒人设置NTP服务端.bat"
)

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters" /v "Type" /d "NTP" /f
rem 修改Enabled,默认值为0
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer" /v "Enabled"  /t REG_DWORD /d 1 /f
rem 修改AnnounceFlags,默认值为10(十进制)
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v "AnnounceFlags" /t REG_DWORD /d 5 /f
rem 添加防火墙端口:UDP 123
netsh advfirewall firewall add rule name="NTP服务端口" dir=in action=allow localport=123 protocol=udp
net stop w32time
net start w32time
pause
  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值