当前位置:首页 » 云服务器 » 时间服务器搭建精确毫秒

时间服务器搭建精确毫秒

发布时间: 2023-09-11 19:37:11

A. 如何搭建自己的NTP服务器

  1. NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服务器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。


  2. 网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。而另一方面,一个 NTP 服务器会将它的时间和任意公共 NTP 服务器,或者你选定的服务器同步。由 NTP 管理的所有系统时钟都会同步精确到毫秒级。

  3. 在公司环境中,如果他们不想为 NTP 传输打开防火墙,就有必要设置一个内部 NTP 服务器,然后让员工使用内部服务器而不是公共 NTP 服务器。在这个指南中,我们会介绍如何将一个 CentOS 系统配置为 NTP 服务器。在介绍详细内容之前,让我们先来简单了解一下 NTP 的概念。

  4. 为什么我们需要 NTP?

  5. 由于制造工艺多种多样,所有的(非原子)时钟并不按照完全一致的速度行走。有一些时钟走的比较快而有一些走的比较慢。因此经过很长一段时间以后,一个时钟的时间慢慢的和其它的发生偏移,这就是常说的 “时钟漂移” 或 “时间漂移”。为了将时钟漂移的影响最小化,使用 NTP 的主机应该周期性地和指定的 NTP 服务器交互以保持它们的时钟同步。

  6. 在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。

  7. NTP 的层次结构

  8. NTP 时钟以层次模型组织。层级中的每层被称为一个 stratum(阶层)。stratum 的概念说明了一台机器到授权的时间源有多少 NTP 跳。

  9. Stratum 0 由没有时间漂移的时钟组成,例如原子时钟。这种时钟不能在网络上直接使用。Stratum N (N > 1) 层服务器从 Stratum N-1 层服务器同步时间。Stratum N 时钟能通过网络和彼此互联。

  10. NTP 支持多达 15 个 stratum 的层级。Stratum 16 被认为是未同步的,不能使用的。

  11. 准备 CentOS 服务器

  12. 现在让我们来开始在 CentOS 上设置 NTP 服务器。

  13. 首先,我们需要保证正确设置了服务器的时区。在 CentOS 7 中,我们可以使用 timedatectl 命令查看和更改服务器的时区(比如,"Australia/Adelaide",LCTT 译注:中国可设置为 Asia/Shanghai )

  14. 代码如下:

  15. # timedatectl list-timezones | grep Australia

  16. # timedatectl set-timezone Australia/Adelaide

  17. # timedatectl

  18. 继续并使用 yum 安装需要的软件

  19. 代码如下:

  20. # yum install ntp

  21. 然后我们会添加全球 NTP 服务器用于同步时间。

  22. 代码如下:

  23. # vim /etc/ntp.conf

  24. server 0.oceania.pool.ntp.org

  25. server 1.oceania.pool.ntp.org

  26. server 2.oceania.pool.ntp.org

  27. server 3.oceania.pool.ntp.org

  28. 默认情况下,NTP 服务器的日志保存在 /var/log/messages。如果你希望使用自定义的日志文件,那也可以指定。

  29. 复制代码

  30. 代码如下:

  31. logfile /var/log/ntpd.log

  32. 如果你选择自定义日志文件,确保更改了它的属主和 SElinux 环境。

  33. 复制代码

  34. 代码如下:

  35. # chown ntp:ntp /var/log/ntpd.log

  36. # chcon -t ntpd_log_t /var/log/ntpd.log

  37. 现在初始化 NTP 服务并确保把它添加到了开机启动。

  38. 代码如下:

  39. # systemctl restart ntp

  40. # systemctl enable ntp

  41. 验证 NTP Server 时钟

  42. 我们可以使用 ntpq 命令来检查本地服务器的时钟如何通过 NTP 同步。

  43. 下面的表格解释了输出列。

  44. remote 源在 ntp.conf 中定义。‘*’ 表示当前使用的,也是最好的源;‘+’ 表示这些源可作为 NTP 源;‘-’ 标记的源是不可用的。

  45. refid 用于和本地时钟同步的远程服务器的 IP 地址。

  46. st Stratum(阶层)

  47. t 类型。 'u' 表示单播(unicast)。其它值包括本地(local)、多播(multicast)、广播(broadcast)。

  48. when 自从上次和服务器交互后经过的时间(以秒数计)。

  49. poll 和服务器的轮询间隔,以秒数计。

  50. reach 表示和服务器交互是否有任何错误的八进制数。值 337 表示 100% 成功(即十进制的255)。

  51. delay 服务器和远程服务器来回的时间。

  52. offset 我们服务器和远程服务器的时间差异,以毫秒数计。

  53. jitter 两次取样之间平均时差,以毫秒数计。

  54. 控制到 NTP 服务器的访问

  55. 默认情况下,NTP 服务器允许来自所有主机的查询。如果你想过滤进来的 NTP 同步连接,你可以在你的防火墙中添加规则过滤流量。

  56. # iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 123 -j ACCEPT

  57. # iptables -A INPUT -p udp --dport 123 -j DROP

  58. 该规则允许从 192.168.1.0/24 来的 NTP 流量(端口 UDP/123),任何其它网络的流量会被丢弃。你可以根据需要更改规则。

  59. 配置 NTP 客户端

  60. 1. Linux

  61. NTP 客户端主机需要 ntpupdate 软件包来和服务器同步时间。可以轻松地使用 yum 或 apt-get 安装这个软件包。安装完软件包之后,用服务器的 IP 地址运行下面的命令。

  62. 代码如下:

  63. # ntpdate

  64. 基于 RHEL 和 Debian 的系统命令都相同。

  65. 2. Windows

  66. 如果你正在使用 Windows,在日期和时间设置(Date and Time settings)下查找网络时间(Internet Time)。

  67. 3. Cisco 设备

  68. 如果你想要同步 Cisco 设备的时间,你可以在全局配置模式下使用下面的命令。

  69. 代码如下:

  70. # ntp server

  71. 来自其它厂家的支持 NTP 的设备有自己的用于网络时间的参数。如果你想将设备和 NTP服务器同步时间,请查看设备的说明文档。

  72. 结论

  73. 总而言之,NTP 是在你的所有主机上同步时钟的一个协议。我们已经介绍了如何设置 NTP 服务器并使支持 NTP 的设备和服务器同步时间。

B. 网络校时服务器的详细参数

低抖动、高性能网络同步器时钟解决方案

京准电子科技HR-901GB型GPS时间同步服务器是一款支持NTP和SNTP网络时间同步协议,高精度、大容量、高品质的高科技时钟产品。

GPS时间同步服务器设备采用冗余架构设计,高精度时钟直接来源于北斗、GPS系统中各个卫星的原子钟,通过信号解析驯服本地时钟源,实现卫星信号丢失后本地时钟精准保持功能。独特的嵌入式硬件设计、高效Linux操作系统,可灵活扩展多种时钟信号输出。

GPS时间同步服务器全面支持最新NTP对时协议、MD5安全加密协议及证书加密协议,时间精度优于2毫秒。同时支持TOD、10MHz、 1PPS、日志记录、USB端口升级下载和干接点告警功能,配合全网时间统一监控软件,轻松实现网络时间同步及有效监控。

京准电子科技HR-901GB型GPS时间同步服务器可以广泛应用于医疗、安防、金融保险、移动通信、 云计算、电子商务、能源电力、石油石化、工业自动化、智能交通、智慧城市、物联网等领域。

C. 如何正确的建立windows的时间服务器

一、选择服务器基准时钟,可选择内部硬件时钟和外部NTP授时服务器。 (首先要保证自己的时间准确)
A.配置 Windows 时间服务以使用服务器内部硬件时钟
(1). 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
(2). 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
(3). 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
(4). 在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。
B.配置 Windows 时间服务以使用外部时间源
(1). 指定时间源。为此,请按照下列步骤操作:
a. 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
b. 在右窗格中,右键单击“NtpServer”,然后单击“修改”。
c. 在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。
注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在下面步骤中所做的更改将不会生效。
(2). 选择轮询间隔。为此,请按照下列步骤操作:
a. 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
\SpecialPollInterval
b. 在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。
(3). 配置时间校准设置。为此,请按照下列步骤操作:
a. 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
\MaxPosPhaseCorrection
b. 在右窗格中,右键单击“MaxPosPhaseCorrection”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
d. 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
e. 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
MaxNegPhaseCorrection
f. 在右窗格中,右键单击“MaxNegPhaseCorrection”,然后单击“修改”。
g. 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。
h. 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。
注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。
二、配置NTP授时服务器
(1). 将服务器类型更改为 NTP。为此,请按照下列步骤操作:
a. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
b. 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
c. 在右窗格中,右键单击“Type”,然后单击“修改”。
d. 在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。
(2). 将 AnnounceFlags 设置为 5。为此,请按照下列步骤操作:
a. 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
b. 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。
(3). 启用 NTPServer。为此,请按照下列步骤操作:
a. 找到并单击下面的注册表子项:
程序代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
b. 在右窗格中,右键单击“Enabled”,然后单击“修改”。
c. 在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。
三、使配置即时生效
1. 退出注册表编辑器。
2. 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
程序代码
net stop w32time && net start w32time
四、配置防火墙允许NTP访问
如果你需要在服务器所在区域外访问该服务器的NTP服务,需要在防火墙上添加允许:
程序代码
名称 端口 协议 方向
SNTP时间基准 123 UDP 入
五、相关注册表说明
注册表项 MaxPosPhaseCorrection
路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 该项指定服务可进行的最大正时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将记录一个事件。(0xFFFFFFFF 是一种特殊情况,它表示总是校准时间。)域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000,即 15 小时。
注册表项 MaxNegPhaseCorrection
路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 该项指定服务可进行的最大负时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将转而记录一个事件。(-1 是一种特殊情况,它表示总是校准时间。)域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000,即 15 小时。
注册表项 MaxPollInterval
路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 该项指定系统轮询间隔所允许的最大间隔(单位是对数表示的秒)。尽管系统必须根据预定的间隔进行轮询,但是提供程序可以根据请求拒绝生成示例。域成员的默认值是 10。独立客户端和服务器的默认值是 15。
注册表项 SpecialPollInterval
路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
注意: 该项指定手动对等端的特殊轮询间隔(以秒为单位)。当启用 SpecialInterval 0x1 标志时,W32Time 将使用此轮询间隔而非操作系统确定的轮询间隔。域成员的默认值是 3,600。独立客户端和服务器的默认值是 604,800。
注册表项 MaxAllowedPhaseOffset
路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
注意: 该项指定 W32Time 尝试使用时钟速率调整计算机时钟的最大偏移量(以秒为单位)。当偏移量大于该速率时,W32Time 将直接设置计算机时钟。域成员的默认值是 300。独立客户端和服务器的默认值是 1。
备注说明:
1、一般操作:
1)将时间服务器改成,授时中心地址(210。72。145。44)
net time /setsntp:210.72.145.44
2)启动时间同步服务
sc start w32time
3)同步时间
w32tm /resync (实际上,大多数情况下,光作第三步即可。) 2、启动前提:
DOS启动Window Time服务: net stop w32time 、 net start w32time
要启动 Window Time 服务,必须先启动 Remote Access Connection Manager 服务。

D. 如何让Windows自动校准时间

1。设置时间服务器
net time /SETSNTP:time.windows.com
这里的time.windows.com 是因特网世衡校准时间服务器,可利用的服务器如下
time.nist.gov
time-nw.nist.gov
time-a.nist.gov
time-b.nist.gov
中国国内可以下面这几个
ntp.fudan.e.cn
210.72.145.44 中国科学院国家授时中心
2。查询时间服务器
net time /QUERYSNTP
3.同步时间
Win2000操作系统: w32tm /once
WinXP 操作系统: w32tm /resync

知道了上面的原理,我们就可以用批处理文件或者其他相关的编程语言来做一个简单的同步时间的小程序了(不过前提是你的电脑能搜橡做上网哦)

1。新建一个文本文件
在里面输入以下内容
net time /SETSNTP:210.72.145.44
w32tm /once 'Win2000下
w32tm /resync 'WinXP 下
保存后,将文件名改为 ResyncTime.bat
2。在[开如隐始]---[运行]中输入“gpedit.msc"(不包括引号)
在出来的组策略选择[Windows设置]——[脚本(启动关机)]在启动添加刚才建立的批处理文件,保存后即可
以后你的计算机在开机时每次都会与Internet授时服务器同步了

不过为了这个小程序能长时间的使用,你最好把这个批处理文件的属性改为系统和隐藏。

E. linux下,记录响应时间的脚本,精确到毫秒ms

gettimeofday(取得目前的时间)
相关函数
time,ctime,ftime,settimeofday
表头文件
#include <sys/time.h>
#include <unistd.h>
定义函数
int gettimeofday ( struct timeval * tv , struct timezone * tz )
函数说明
gettimeofday()会把目前的时间有tv所指的结构返回,当地时区的信息则放到tz所指的结构中。
timeval结构定义为:
struct timeval{
long tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
timezone 结构定义为:
struct timezone{
int tz_minuteswest; /*和Greenwich 时间差了多少分钟*/
int tz_dsttime; /*日光节约时间的状态*/
};
上述两个结构都定义在/usr/include/sys/time.h。tz_dsttime 所代表的状态如下
DST_NONE /*不使用*/
DST_USA /*美国*/
DST_AUST /*澳洲*/
DST_WET /*西欧*/
DST_MET /*中欧*/
DST_EET /*东欧*/
DST_CAN /*加拿大*/
DST_GB /*大不列颠*/
DST_RUM /*罗马尼亚*/
DST_TUR /*土耳其*/
DST_AUSTALT /*澳洲(1986年以后)*/
返回值
成功则返回0,失败返回-1,错误代码存于errno。附加说明EFAULT指针tv和tz所指的内存空间超出存取权限。
范例
#include<sys/time.h>
#include<unistd.h>
main(){
struct timeval tv;
struct timezone tz;
gettimeofday (&tv , &tz);
printf(“tv_sec; %d\n”, tv,.tv_sec) ;
printf(“tv_usec; %d\n”,tv.tv_usec);
printf(“tz_minuteswest; %d\n”, tz.tz_minuteswest);
printf(“tz_dsttime, %d\n”,tz.tz_dsttime);
}
执行
tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0

F. 请问关于如何在xp系统下搭建ntp时间同步服务器

WindowsXP时间服务器配置

1.在注册表中将服务NTPServer的Enabled属性设置为1.Type改为NTP。

2.如果外部时间源获取时间将Config/AnnounceFlags设置为5.

3.将parameters\NtpServer地址改为外部时间源的IP地址或者DNS,在使用DNS是后面要加上”,0x1”.多个地址之间用空格隔开。

4.其他参数是可选的参数,可根据需要配置。

5.重启w32time服务.在命令行中,net stop w32time && net start
w32time.就配置完成了。

6.此外,要保证windows
防火墙是关闭的。或者启动防火墙时,在例外中添加C:\WINDOWS\system32\w32time.dll端口号:123类型UDP。

经过以上六步服务器端就设置完成了。

WindowsXP客户端的配置

1.将NtpServer地址设置为服务器的地址。

2.服务类型改为NTP。

3.SpecialPolInterval自动同步时间间隔根据需要配置比如15分钟轮询一次(设置为900,因为单位为秒)。

4.将默认的时间服务器设置为服务器的地址, XP默认是微软的时间服务器time.windows.com。在注册表中

HKEY_LOCAL_MACHINE\SOFTWARE\WINDOWS\CurrentVersion\DateTime\Servers

新建一个字符串值(名字3),输入服务器的IP地址。

并将默认值改为3.这样在时期时间属性\Internet时间默认的时间同步服务器就成为我们设置的了。

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:427
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:552
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:738
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:531
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:141
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:227
java驼峰 发布:2025-02-02 09:13:26 浏览:646
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:527
linuxadobe 发布:2025-02-02 09:09:43 浏览:207
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:721