Linux 上搭建公共时间服务器解决方案

最重要的公共服务之一就是报时timekeeping,但是很多人并没有意识到这一点。大多数公共时间服务器都是由志愿者管理,以满足不断增长的需求。这里学习一下如何运行你自己的时间服务器,为基础公共利益做贡献。

层级为 0、1、2 的时间服务器

NTP 有超过 30 年的历史了,它是至今还在使用的最老的因特网协议之一。它的用途是保持计算机与世界标准时间(UTC)的同步。NTP 网络是分层组织的,并且同层的设备是对等的。层次Stratum 0 包含主报时设备,比如,原子钟。层级 1 的时间服务器与层级 0 的设备同步。层级 2 的设备与层级 1 的设备同步,层级 3 的设备与层级 2 的设备同步。NTP 协议支持 16 个层级,现实中并没有使用那么多的层级。同一个层级的服务器是相互对等的。

过去很长一段时间内,我们都为客户端选择配置单一的 NTP 服务器,而现在更好的做法是使用 NTP 服务器地址池,它使用轮询的 DNS 信息去共享负载。池地址只是为客户端服务的,比如单一的 PC 和你的本地局域网 NTP 服务器。当你运行一台自己的公共服务器时,你不用使用这些池地址。

公共 NTP 服务器配置

运行一台公共 NTP 服务器只有两步:设置你的服务器,然后申请加入到 NTP 服务器池。运行一台公共的 NTP 服务器是一种很高尚的行为,但是你得先知道这意味着什么。加入 NTP 服务器池是一种长期责任,因为即使你加入服务器池后,运行了很短的时间马上退出,然后接下来的很多年你仍然会接收到请求。

你需要一个静态的公共 IP 地址,一个至少 512Kb/s 带宽的、可靠的、持久的因特网连接。NTP 使用的是 UDP 的 123 端口。它对机器本身要求并不高,很多管理员在其它的面向公共的服务器(比如,Web 服务器)上顺带架设了 NTP 服务。

配置一台公共的 NTP 服务器与配置一台用于局域网的 NTP 服务器是一样的,只需要几个配置。我们从阅读 协议规则 开始。遵守规则并注意你的行为;几乎每个时间服务器的维护者都是像你这样的志愿者。然后,从 StratumTwoTimeServers 中选择 4 到 7 个层级 2 的上游服务器。选择的时候,选取地理位置上靠近(小于 300 英里的)你的因特网服务提供商的上游服务器,阅读他们的访问规则,然后,使用 ping 和 mtr 去找到延迟和跳数最小的服务器。

以下的 /etc/ntp.conf 配置示例文件,包括了 IPv4 和 IPv6,以及基本的安全防护:

# stratum 2 server list

server servername_1 iburst

server servername_2 iburst

server servername_3 iburst

server servername_4 iburst

server servername_5 iburst

# access restrictions

restrict -4default kod noquery nomodify notrap nopeer limited

restrict -6default kod noquery nomodify notrap nopeer limited

#Allow ntpq and ntpdc queries only from localhost

restrict 127.0.0.1

restrict ::1

启动你的 NTP 服务器,让它运行几分钟,然后测试它对远程服务器的查询:

$ ntpq -p

remote refid st t when poll reach delay offset jitter

=================================================================

+tock.no-such-ag 200.98.196.2122 u 3664798.65488.43965.123

+PBX.cytranet.ne 45.33.84.2083 u 3764772.419113.535129.313

*eterna.binary.n 199.102.46.702 u 3964792.93398.47556.778

+time.mclarkdev.132.236.56.2503 u 37645111.05988.02974.919

目前表现很好。现在从另一台 PC 上使用你的 NTP 服务器名字进行测试。以下的示例是一个正确的输出。如果有不正确的地方,你将看到一些错误信息。

$ ntpdate -q yourservername

server 66.96.99.10, stratum 2, offset 0.017690, delay 0.12794

server 98.191.213.2, stratum 1, offset 0.014798, delay 0.22887

server 173.49.198.27, stratum 2, offset 0.020665, delay 0.15012

server 129.6.15.28, stratum 1, offset -0.018846, delay 0.20966

26Jan11:13:54 ntpdate[17293]: adjust time server 98.191.213.2 offset 0.014798 sec

目前西安同步电子科技有限公司为大家免费提供授时服务,其中时间服务器采用我公司专用的时间同步服务器,授时精度比一般的服务器高很多,可靠性也要好很多,建议一般使用专用服务器保证时间的可靠性。

-THE END-

“西安同步”为您实时推送最新最全最有趣的时间频率方面的新闻、科普、技术及其它等相关信息。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180330G0BA1400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券