资讯详情

资讯详情

甲方IT的成长之路--Windows 中NTP服务器实验

这几天重启nas服务器发现时间总是对不齐找了一个windows系统作为时间源在这里简单记录一下前面原理已经明了现在来实践后面还会有linux作为时间源。下面我有一个表格来表示整个实验序号NTP服务器实践实验1编辑注册表regeditHKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ NtpServer \ Enabled鼠标双击Enabled文件 将默认值 0 改为 1 启用NTP服务。HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Parameters \ Type鼠标双击Type 文件弹出对话框在数据数值V项输入 NTP单击确定HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services\W32Time \ Config \ AnnounceFlags鼠标双击AnnounceFlags文件弹出对话框将默认的10改为5 确定。2服务services.msc在服务项中找到Windows Time,把它设置为自动后点击确定点击右键Windows Time重新启动此服务。3本地组策略计算机策略对话框打开按照如下路径计算机配置\管理模板\系统\windows时间服务\时间提供程序找到服务器设置文件。gpedit.msc双击启用 Windows NTP 服务器显示状态已启用这时主机的时间就可以被其他从机同步了4命令行重启服务管理员身份打开net stop w32timenet start w32time5测试w32tm /stripchart /computer:127.0.0.1在下面是部分实验截图按顺序出现上面的回复说明服务可用了。ntp协议在网络中处于基础地位可以说所有服务、系统都依靠他比如后期我们要聊的AD除了DNS必然需要一个ntp服务器来对时。这里我重申一下ntp协议使用udp 123端口使用命令ss -naulp可以查看他所监听的端口。最后我们要了解一下外部时间源不然不能以本机的时间作为对时标准。使用公共NTP池pool 2.pool.ntp.org iburst或指定具体服务器server ntp.aliyun.com iburstchronyc sources或chronyc sources -v这个命令会列出所有配置的时间源及其状态。你需要关注第一列带有*符号的行它表示当前被选为最优、正在同步的时间源。Stratum时间源的层级数值越小越接近原子钟。因为这是ntp的第一课所以要讲一下ntp的前世今生从老的服务器我们可以看到一条命令ntpdatentpdate 是一个传统的、用于从 NTP网络时间协议服务器**一次性**校准系统时间的 Linux 命令。它的核心特点是“即用即走”执行一次将本地时间强制设置为服务器时间然后命令就结束了。基本用法与核心特点它的典型用法非常直接指定一个 NTP 服务器即可bashsudo ntpdate ntp.aliyun.com这条命令会立即向 ntp.aliyun.com 请求时间并调整你的系统时钟。ntpdate 的工作方式决定了它的优缺点非常鲜明一次性操作它只在执行的瞬间同步时间不会在后台持续运行来保持时间准确。造成时间“跳变如果本地时间与服务器时间偏差较大超过0.5秒它会**直接“步进”**也就是瞬间跳跃到正确时间。这在某些对时间连续性敏感的应用如数据库中可能引发问题。无漂移校正它无法补偿两次同步之间系统时钟自身产生的自然漂移因此如果只运行一次时间会逐渐再次变慢或变快。现状已被淘汰不应在新系统中使用 现代替代方案应该用什么如今时间同步的任务已交由更专业的守护进程来持续完成它们会平滑地调整时间而不会造成突然的跳变。chrony这是目前 RHEL、Ubuntu 等主流发行版**默认**的时间服务。它由持续运行的 chronyd 守护进程和用于查询的 chronyc 工具组成。chrony 能快速收敛时间并在网络不稳定或系统休眠后也能很好地工作。* **systemd-timesyncd轻量级替代**对于桌面系统或不需要复杂功能的场景这是一个更轻量的选择它作为 systemd 的一部分提供基础的 NTP 客户端功能。这两个概念分别对应了 NTP 服务中“去哪里对时”和“如何快速完成第一次对时”的问题。 什么是公共 NTP 池 (NTP Pool)公共 NTP 池是一个由全球志愿者共同维护的、庞大的**时间服务器集群**。它本身并不直接运行 NTP 服务器而是像一个**智能的“电话总机”**通过 DNS 将你的对时请求智能地分配给集群中一台当前可用且相对空闲的服务器。它的核心工作原理和优势如下* **DNS 轮询与负载均衡**当你配置使用 pool.ntp.org 这类域名时DNS 服务器每次解析会返回不同的 IP 地址。这样全球海量客户端的请求就会被均匀地分散到数千台志愿者服务器上避免任何单台服务器过载。* **地理感知**这个“总机”是智能的。你可以使用区域前缀如 cn.pool.ntp.org 对应中国区来获取地理上更接近的服务器从而获得更低的网络延迟。* **高可用性**由于背后是数千台服务器目前超过 4700 台组成的庞大资源池即使其中部分服务器出现故障整个池的服务也不会中断可靠性极高。* **标准化接入**它提供了一套统一的域名接入方式取代了过去手动维护一堆静态服务器地址列表的繁琐做法使得大规模部署时间同步变得非常简单。什么是 iburst 选项iburst 是 NTP 客户端如 chrony配置中的一个加速选项。它的作用是**显著缩短设备开机或服务重启后完成第一次时间同步所需的时间**。在默认情况下NTP 客户端为了节省网络资源会以较慢的频率例如每 64 秒向服务器发送一个查询包。如果网络稍有延迟你可能需要等上几分钟才能完成首次对时。而 iburst 选项改变了这一初始行为突发请求当启用 iburst 后客户端在启动时会**立即向服务器发送一串通常是 4 到 8 个连续的请求包**而不是只发一个。* **加速同步**NTP 协议通常需要收集多个样本大约 6 个才能可靠地计算出时间偏差并完成同步。iburst 的“突发”行为能快速凑齐这些必需的样本从而将首次同步时间从**几分钟缩短到几秒钟**。触发时机它主要在**服务器初始不可达**如刚开机网络未就绪或**同步源从离线状态切换为在线状态**时被触发目的是尽快抓住可用的时间源完成首次校准。总结**公共 NTP 池**解决了“**可靠、高效地找到对时服务器**”的问题是基础设施层面的方案而 **iburst** 则解决了“**在找到服务器后如何最快完成第一次对时**”的问题是客户端配置层面的优化。在实际配置中两者通常结合使用例如在 chrony 配置文件中写入 pool cn.pool.ntp.org iburst就能同时获得高可靠性和快速启动的优势。然后画个重点下一篇短文预告linux系统中的ntp有关配置
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →