NTP 时间服务器实战
2015-12-26 20:05
489 查看
关于 NTP 服务器的基本概念: 时间服务器:NTP服务器
关于 NTP 服务器的基本安装搭建:NTP 服务器的安装与设定
一 主机规划
二 前期准备
1 设置好时区
2 检查 NTP 是否安装
3 设置同步更新本地 hwclock
4 查看能提供服务的外部时间服务器
5 先使用 ntpdate 手动同步下时间
三 修改 NTP 的配置文件
1 配置内网NTP-Server106343
2 配置内网 NTP-Client
四 Server 端启动 NTP 服务与外网时间服务器同步
1 启动 Server 端的 NTP 服务器
2 查看服务连接和监听
五 Client 端启动 NTP 服务与内网时间服务器同步
1 手动更新 Client 时间
2 启动 Client 端的 NTP 服务器
3 查看服务连接和监听
4 常见错误处理
1. NTP时间同步方式选择
ntpdate 命令直接同步
使用 NTPD 服务平滑同步
现有一台设备,系统时间是 13:00 , 真实的当前时间(在空中,也许卫星上,这里假设是在准备同步的上级目标NTP服务器)是: 12:30 。如果我们使用ntpdate同步(ntpdate -u 目标NTP服务器IP),操作系统的时间立即更新为12:30,假如,我们的系统有一个定时应用,是在每天12:40运行,那么实际今天这个的任务已经运行过了(当前时间是13:00嘛),现在被ntpdate修改为12:30,那么意味作10分钟后,又会执行一次任务,这就糟糕了,这个任务只能执行一次的嘛!这就暴露了 ntpdate 时间同步的隐患,当然这个例子有些极端,但的确是有风险的,生产环境我不打算这么干,还是稳妥点好。所以解决该问题的办法就是时间平滑更改,不会让一个时间点在一天内经历两次,这就是NTPD服务方式平滑同步时间,它每次同步时间的偏移量不会太陡,是慢慢来的(完全同步好需要较长时间,所以一般开启 NTPD 服务同步前先用 ntpdate 先手动同步一次)。
2. 关系如下:
20:00 CST
12:00 UTC
因为中国处在 UTC+8 时区,依次类推,在 UTC 标准时间,就是 12:00了。不管通过任何渠道我们想要同步系统的时间,通常提供方只会给出 UTC+0 的时间值而不会提供时区(因为它不知道你在哪里).所以当我们设置系统时间的时候,设置好时区是首先要做的工作。
1. 查看当前时区
重点在于这个 “EDT“,并非之前所说应该是 “CST”
2. 修改 /etc/sysconfig/clock
将原来的时区改为
3.覆盖 /etc/localtime
4. 查看修改后的时区
如果没有安装,我们按照下
添加以下即可:
也就是说有三个可以提供该服务的 IP,其中 202.118.29.82 的时延最小。如果上层服务器不可用,一般类似如下显示
Note:IP地址: 202.112.10.36 中国 教育网,提供时间校准服务
然后再将该时间先写入硬件时间
1. 指定上层对时服务器
加 # 号注释掉 centos 默认的对时服务器,如果主机可以访问外网,这一步最好做一下。添加国家对时服务器。
为了防止出现上层对时服务器故障,无法正确提供时间同步,一般建议配置两个或以上时间同步服务器
prefer 表示优先使用
2. 修改上层时间服务器对本机的权限
3. 外部时间服务器不可用时,设置以本地时间作为时间服务
4. 设置对内网主机提供NTP服务
因为笔者的实验环境中,内网使用 10.6.3.0/24 网段,所以设置如下
为了简单,这里只列出了配置项,注释全部清理了。
启动后,一般需要 5-10 分钟左右的时候才能与外部时间服务器开始同步时间。可以通过命令查询NTPD服务情况。
表示连接和监听已正确,采用UDP方式
2. ntpq -p 查看网络中的NTP服务器,同时显示客户端和每个服务器的关系
笔者不定时地进行查看,过程如下:
很明显,作为等级才 10 的 LOCAL 在等级为 2 的时间服务器面前,不敢嚣张了…
3. ntpstat 查看连接并同步后信息
然后写入硬件时间
过了一阵子后,改为 master5(10.6.3.43) 为 NTP 时间服务器
判断:在 ntp 客户端用
原因:NTP server 还没有和其自身或者它的 server 同步上。在 ntp server 上重新启动 ntp 服务后,ntp server 自身或者与其 server 的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行 ntpdate 命令时会产生
处理:等待几分钟后,重试一般解决,或重新配置 /etc/ntp.conf。
参考资料:
ntp服务及时间同步问题 :/article/9774411.html
CentOS6.5系统搭建NTP服务器:http://www.iyunv.com/thread-64847-1-1.html
关于 NTP 服务器的基本安装搭建:NTP 服务器的安装与设定
一 主机规划
二 前期准备
1 设置好时区
2 检查 NTP 是否安装
3 设置同步更新本地 hwclock
4 查看能提供服务的外部时间服务器
5 先使用 ntpdate 手动同步下时间
三 修改 NTP 的配置文件
1 配置内网NTP-Server106343
2 配置内网 NTP-Client
四 Server 端启动 NTP 服务与外网时间服务器同步
1 启动 Server 端的 NTP 服务器
2 查看服务连接和监听
五 Client 端启动 NTP 服务与内网时间服务器同步
1 手动更新 Client 时间
2 启动 Client 端的 NTP 服务器
3 查看服务连接和监听
4 常见错误处理
一. 主机规划
目标环境,5台 Linux centos 6.5, 一台作为 NTPD 服务与外部公共 NTP 服务同步时间,同时作为内网的 NTPD 服务器,其他机器与这台服务做时间同步。其中也只有一台作为 NTPD 服务的机子可以上外网,其他的主机只能在局域网中通信。1. NTP时间同步方式选择
ntpdate 命令直接同步
使用 NTPD 服务平滑同步
现有一台设备,系统时间是 13:00 , 真实的当前时间(在空中,也许卫星上,这里假设是在准备同步的上级目标NTP服务器)是: 12:30 。如果我们使用ntpdate同步(ntpdate -u 目标NTP服务器IP),操作系统的时间立即更新为12:30,假如,我们的系统有一个定时应用,是在每天12:40运行,那么实际今天这个的任务已经运行过了(当前时间是13:00嘛),现在被ntpdate修改为12:30,那么意味作10分钟后,又会执行一次任务,这就糟糕了,这个任务只能执行一次的嘛!这就暴露了 ntpdate 时间同步的隐患,当然这个例子有些极端,但的确是有风险的,生产环境我不打算这么干,还是稳妥点好。所以解决该问题的办法就是时间平滑更改,不会让一个时间点在一天内经历两次,这就是NTPD服务方式平滑同步时间,它每次同步时间的偏移量不会太陡,是慢慢来的(完全同步好需要较长时间,所以一般开启 NTPD 服务同步前先用 ntpdate 先手动同步一次)。
2. 关系如下:
IP 地址 | NTP 角色 | 说明 | 是否开启 ntpd | 同步方式 |
---|---|---|---|---|
10.6.3.43 | NTPD服务 | 1、负责与外部公共NTPD服务同步标准时间 2、作为内外网络的NTPD服务 | 是 | NTPD服务平滑同步 |
10.6.3.32 | 内外NTP客户端 | 内网设备与 10.6.3.43 同步时间 | 是 | NTPD服务平滑同步 |
10.6.3.33 | 内外NTP客户端 | 内网设备与 10.6.3.43 同步时间 | 是 | NTPD服务平滑同步 |
10.6.3.36 | 内外NTP客户端 | 内网设备与 10.6.3.43 同步时间 | 是 | NTPD服务平滑同步 |
10.6.3.48 | 内外NTP客户端 | 内网设备与 10.6.3.43 同步时间 | 是 | NTPD服务平滑同步 |
二. 前期准备
2.1 设置好时区
在中国,正确的时区应为 CST(Chinese Standard Time),也就是我们通常所说的北京时间。那么中国当地的时间晚上8点的话,我们可以有下面两种表示方式20:00 CST
12:00 UTC
因为中国处在 UTC+8 时区,依次类推,在 UTC 标准时间,就是 12:00了。不管通过任何渠道我们想要同步系统的时间,通常提供方只会给出 UTC+0 的时间值而不会提供时区(因为它不知道你在哪里).所以当我们设置系统时间的时候,设置好时区是首先要做的工作。
1. 查看当前时区
date >> Sat Dec 26 14:11:45 EDT 2015
重点在于这个 “EDT“,并非之前所说应该是 “CST”
2. 修改 /etc/sysconfig/clock
将原来的时区改为
vim /etc/sysconfig/clock ZONE="America/New_York" #改为 ZONE="Asia/Shanghai"
3.覆盖 /etc/localtime
cp -a /usr/share/zoneinfo/Asia/Shanghai /etc/localtime cp: overwrite `/etc/localtime'? y
4. 查看修改后的时区
date >> Sat Dec 26 14:11:45 CST 2015
2.2 检查 NTP 是否安装
rpm -qa |grep ntp >> ntp-4.2.6p5-1.el6.centos.x86_64 >> ntpdate-4.2.6p5-1.el6.centos.x86_64
如果没有安装,我们按照下
yum install ntp
2.3 设置同步更新本地 hwclock
在 Linux 下系统时间在开机的时候会和硬件时间同步(synchronization),之后也就各自独立运行了那么既然两个时钟独自运行,那么时间久了必然就会产生误差了,而 NTP 默认又只更新系统时间,因此我们需要设置硬件时钟进行同步调整vim /etc/sysconfig/ntpd
添加以下即可:
SYNC_HWCLOCK="yes"
2.4 查看能提供服务的外部时间服务器
在能够上网的一台主机中(比如 10.6.3.43)上执行以下命令,查看可以正常提供时间服务的外部主机。ntpdate -q 1.cn.pool.ntp.org
也就是说有三个可以提供该服务的 IP,其中 202.118.29.82 的时延最小。如果上层服务器不可用,一般类似如下显示
1.server 202.118.1.81, stratum 0, offset 0.000000, delay 0.00000 26 Dec 17:25:18 ntpdate[23338]: no server suitable for synchronization found
Note:IP地址: 202.112.10.36 中国 教育网,提供时间校准服务
2.5 先使用 ntpdate 手动同步下时间
配置前,先使用ntpdate手动同步下内网中作为 NTPD 服务器的时间,免得本机与外部时间服务器时间差距太大,让ntpd不能正常同步。即在 10.6.3.43 上执行 (root 权限下操作):ntpdate -u 1.cn.pool.ntp.org >> 26 Dec 14:48:37 ntpdate[32758]: adjust time server 202.112.10.36 offset -0.006147 sec
然后再将该时间先写入硬件时间
date;hwclock -w
三. 修改 NTP 的配置文件
3.1 配置内网NTP-Server(10.6.3.43)
下面主要是配置内网的NPTD服务器(10.6.3.43), NTPD服务配置核心就在/etc/ntp.conf文件,配置好了就 OK。
vim /etc/ntp.conf
1. 指定上层对时服务器
加 # 号注释掉 centos 默认的对时服务器,如果主机可以访问外网,这一步最好做一下。添加国家对时服务器。
# 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn server 202.112.29.82 perfer # 1.cn.pool.ntp.org server 202.118.1.81 # stratum 2 server 202.118.1.130 # stratum 2 server 202.112.10.36 # stratum 3
为了防止出现上层对时服务器故障,无法正确提供时间同步,一般建议配置两个或以上时间同步服务器
prefer 表示优先使用
2. 修改上层时间服务器对本机的权限
# allow update time by the upper server # 允许上层时间服务器主动修改本机时间 restrict 202.112.29.82 nomodify notrap noquery restrict 202.118.1.81 nomodify notrap noquery restrict 202.118.1.130 nomodify notrap noquery restrict 202.112.10.36 nomodify notrap noquery
3. 外部时间服务器不可用时,设置以本地时间作为时间服务
# 外部时间服务器不可用时,以本地时间作为时间服务 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10
4. 设置对内网主机提供NTP服务
因为笔者的实验环境中,内网使用 10.6.3.0/24 网段,所以设置如下
restrict 10.6.3.0 mask 255.255.255.0 nomodify notrap
3.2 配置内网 NTP-Client
内网其他设备作为NTP的客户端配置,相对就比较简单,而且所有设备的配置都相同。找其中一台配置/etc/ntp.conf文件,配置完成验证通过后,拷贝到其他客户端机器,直接使用即可。 Client 配置在笔者的集群中,是在 10.6.3.32、10.6.3.33、10.6.3.36、10.6.3.48 上完成。
driftfile /var/lib/ntp/drift restrict 127.0.0.1 restrict -6 ::1 # 配置时间服务器为本地的时间服务器 server 10.6.3.43 restrict 10.6.3.43 nomodify notrap noquery server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys
为了简单,这里只列出了配置项,注释全部清理了。
四. Server 端启动 NTP 服务与外网时间服务器同步
4.1 启动 Server 端的 NTP 服务器
因为在 “2.4 先使用 ntpdate 手动同步下时间” 中我们已经和外部时间服务器进行过一次时间校准了。所以在集群中作为 NTPD服务 的 10.6.3.3.43 主机上直接先启动 NTP 服务(root 权限下完成)service ntpd start chkconfig ntpd on
启动后,一般需要 5-10 分钟左右的时候才能与外部时间服务器开始同步时间。可以通过命令查询NTPD服务情况。
4.2 查看服务连接和监听
1. netstat -tlunp 查看端口以及监听情况netstat -tlunp | grep ntp
表示连接和监听已正确,采用UDP方式
2. ntpq -p 查看网络中的NTP服务器,同时显示客户端和每个服务器的关系
ntpq -p
笔者不定时地进行查看,过程如下:
很明显,作为等级才 10 的 LOCAL 在等级为 2 的时间服务器面前,不敢嚣张了…
符号 | 含义 |
---|---|
* | 响应的NTP服务器和最精确的服务器 代表目前正在作用当中的上层 NTP |
+ | 响应这个查询请求的NTP服务器 代表也有连上线,而且可作为下一个提供时间更新的候选者 |
blank (空格) | 没有响应的NTP服务器 |
remote | 响应这个请求的NTP服务器的名称 |
refid | NTP服务器使用的更高一级服务器的名称 |
st | 正在响应请求的NTP服务器的级别 |
when | 上一次成功请求之后到现在的秒数 |
poll | 本地和远程服务器多少时间进行一次同步,单位秒,在一开始运行NTP的时候这个poll值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小 |
reach | 用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加 |
delay | 从本地机发送同步要求到ntp服务器的往返时间 |
offset | 主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于0,主机和ntp服务器的时间越接近 |
jitter | 统计了在特定个连续的连接数里offset的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确 |
ntpstat
五. Client 端启动 NTP 服务与内网时间服务器同步
之前在 “3.2 配置内网 NTP-Client ” 部分已经配置好 Client 。5.1 手动更新 Client 时间
ntpdate -u 10.6.3.43 >> 26 Dec 18:23:32 ntpdate[20408]: step time server 10.6.3.43 offset 58.586935 sec
然后写入硬件时间
date;hwclock -w
5.2 启动 Client 端的 NTP 服务器
service ntpd start chkconfig ntpd on
5.3 查看服务连接和监听
ntpq -p
过了一阵子后,改为 master5(10.6.3.43) 为 NTP 时间服务器
5.4 常见错误处理
ntpdate -u ip -> no server suitable for synchronization found判断:在 ntp 客户端用
ntpdate –d serverIP查看,发现有 “Server dropped: strata too high” 的错误,并且显示”stratum 16”。而正常情况下 stratum 这个值得范围是“0~15”,或者是配置文件没有配置好。
原因:NTP server 还没有和其自身或者它的 server 同步上。在 ntp server 上重新启动 ntp 服务后,ntp server 自身或者与其 server 的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行 ntpdate 命令时会产生
no server suitable for synchronization found的错误。或配置文件 (/etc/ntp.conf)配置有误或压根没配置。
处理:等待几分钟后,重试一般解决,或重新配置 /etc/ntp.conf。
参考资料:
ntp服务及时间同步问题 :/article/9774411.html
CentOS6.5系统搭建NTP服务器:http://www.iyunv.com/thread-64847-1-1.html
相关文章推荐
- NTP 服务器的安装与设定
- 时间服务器:NTP服务器
- 他山之石-PHP多线程的实现方法详解
- PHP定时完成数据库的备份
- PHP学习练手(六)
- PHP Ajax 跨域问题最佳解决方案
- FragmentPagerAdapter使用
- thinkphp中ajaxReturn方法实现ajax效果
- [知其然不知其所以然-14] cpu hotplug引出的cgroup故障
- OUTPUT 在insnert delete update 的神奇功效
- PHP表单详解
- yii用户注册表单验证实例
- php 解析ini配置文件
- php打印HTML
- php干货
- Php提交包含特殊字符的参数的方法
- 一段PHP SPL标准库的用法(遍历目录,查找固定条件的文件
- 什么是PHP
- <php+mysql>PHP脚本对数据库的基本操作,查找,删除,循环输出
- Weiphp随笔,百度天气API接口