本来以为挺简单的一个活,足足折腾了一整天。
有三台虚机(Ubuntu 16.04),分别是9.5,3.77,8.182,要做成9.5连接公共ntp,其余两台以9.5作为ntp服务器,也就是这样:
在这里插入图片描述
方案确定之后就可以开始干活了。

安装NTP服务

Debian/Ubuntu环境下用apt install ntp安装,没什么可说的,顺带要把防火墙关掉,ntp主要使用udp的123端口。

修改配置文件

ntp服务的主要配置文件位于/etc/ntp.conf下面,参数比较多,只挑一些需要用到的地方进行说明。
首先配置主节点9.5的机器。

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

server jp.pool.ntp.org prefer

# Use Ubuntu's ntp server as a fallback.
#pool ntp.ubuntu.com

server cn.pool.ntp.org

ntp服务会默认添加四条服务器,这个地址前面的0/1/2/3是什么意思暂时不懂,欢迎高人指点一下。具体的配置格式是这样的:

server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:

  • key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。
  • version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。
  • prefer: 如果有多个server选项,具有该参数的服务器优先使用
  • mode: 指定数据报文mode字段的值。
  • minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。
  • maxpoll: 指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。
  • iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。

默认的全都注释掉,根据自己的网络情况选一个延迟相对较低的公共ntp服务,我这里选择 jp.pool.ntp.org,加上prefer表示优先选择此地址,万一失效使用备份的cn.pool.ntp.org。
关于公共ntp服务地址可以去这里查询:NTP Pool Project。提供了分布全球各大洲的3800多台服务器,其中也包括中国结点。我为什么没有选cn的?这台在北京的机器访问cn有200+的延迟反而访问jp的只有100不到,很是神奇。
剩下还有很多参数,包括访问权限控制什么的,非常多,可以参考这篇文章
同理,其余两台机器使用9.5作为主节点的话就把server地址改为这台机器,备份server改为公共ntp服务,像这样:
在这里插入图片描述
修改完成wq保存退出,然后service ntp restart重启服务。千万不要忘了这一步!要不然是不生效的。

验证

接下来验证一下状态。使用ntpq -pn命令查看一下运行状态。

ntpq是ntp服务的程序名,-p表示打印连接信息,-n表示展示ip而不是域名

在这里插入图片描述
解释一下各个字段的含义:

  • remote:表示NTP主机的IP或者是主机名,其中:
    *表示目前正在使用的NTP服务器;
    +表示已经连接成功,并且可以作为下一个提供时间更新的候选者;
    #表示服务正常但是不在使用节点之内
    x表示无法连接
  • refid:表示上一层NTP主机的地址(和DNS服务器的结构类似,一层一层递归),当remote已经是根NTP服务器的时候就不会显示ip或域名了。可能有以下值(太多了没法全部列举,有需要可自行搜索相关文档):
    .LOCL.:本机,当没有配置远程ntp服务时;
    .IRIG.:Inter-Range Instrumentation Group 时间码;
    .PPS.:时间标准中的“Pulse Per Second”(秒脉冲);
    .NICT.:日本情报通信研究机构(NICT),也就是此ntp服务提供者;
    .DENY.:服务拒绝访问;
    .AUTH.:认证错误(适用于配置了访问权限的NTP服务器);
    .TIME.:连接超时;
    .INIT.:初始化,常出现在服务刚刚启动后不久;
  • st:远程服务器的级别。当此值为1是表示为根NTP服务器
  • t:类型,有以下值:
    u:unicast,单播;
    b:broadcast,广播;
    l:local,本地;
    s:对称节点,用于备份;
    A:选播服务器;
    B:广播服务器;
    M:多播服务器;
  • when:距上次同步的时间,单位是秒
  • poll:同步频率,单位为秒,默认每128秒同步一次
  • reach:已同步次数
  • delay:延迟,单位毫秒
  • offset:时间偏移量,显示-为负偏移,单位是毫秒
  • jitter:与远程ntp服务的平均偏差,单位毫秒

回头看一下9.5服务器上的结果,正在使用133.243.238.243作为主服务(动态分配地址,ip随时会变),他已经是根服务器了(st = 1)所以上层服务为NICT。备用地址为119.28.183.184,是个二级节点。
再来看一3.77的运行状态:
在这里插入图片描述
主节点是配置的9.5服务,上层是243的根服务器,与9.5上显示的地址完全相同,没问题。
8.182的:
在这里插入图片描述
也没有问题。最后netstat -ntulp查看一下端口状态:
在这里插入图片描述
ntpd使用udp协议的123端口,没问题。
至此配置完成,参考了这些博主的文章,表示感谢:鸟哥的Linux私房菜NTP时间服务器配置以及错误的总结网络时间的那些事及 ntpq 详解

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐