大家好,又见面了,我是你们的朋友全栈君。
[2021.07.02] 更新。服务端的批处理。
[2021.06.25] 更新。结尾处有彩蛋。
目标: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。如:”ntp1.aliyun.com,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.aliyun.com是NTP服务器的地址,有不一样的自行修改。
@echo off
rem 获取管理员权限,由依梦琴瑶提供。
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
rem 设置NTP服务器地址
set "ntpserv=ntp.ntsc.ac.cn"
echo.修改ntp为%ntpserv%
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers" /ve /d "6" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers" /v "6" /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
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
netsh advfirewall firewall add rule name="NTP服务端口" dir=in action=allow localport=123 protocol=udp
net stop w32time
net start w32time
pause
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159706.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...