NTP简介
由RFC1305定义的时间同步协议
在分布式时间服务器和客户端之间进行时间同步
基于UDP报文传输 端口号为123
采用分层的方法来定义时钟的准确度
支持访问控制和MD5加密验证
可以采用单播、组播或广播方式发送协议报文
时钟层的概念
层数决定了时钟的准确度 其取值范围为0-15 准确度从0-15依次递减 一般层数为0的 时钟处于子网特殊位置 参考原子钟
NTP工作原理
NTP主要通过交换时间服务器和客户端的时间戳 计算出客户端相对于服务器的时延和 偏差 从而实现时间的同步
NTP工作模式
服务器/客户端模式
对等体模式 并没有明确的表明谁是服务器谁是客户端
广播模式 大范围的
组播模式 一个小范围的
NTP应用建议
尽量在本地局域网部署SNTP服务器 Internet上公用的SNTP服务器时延有不确定性 会 对授时精度产生影响
客户端授权时请求要大于1min 以免SNTP服务器负担过重 无法及时响应
高可靠性系统中 最好配置多台SNTP服务器 利用DNS实现负载均衡
客户端应能够识别服务器故障 一旦发现故障 应丢弃时间戳 转向其他服务器请求授时
查询Internet NTP服务器 https://www.ntppool.org
/etc/ntp.conf配置文件
driftfile参数 解决NTP服务器校准时间时的传送延迟
driftfile /var/lib/ntp/drift
restrict参数 权限的控制(局域网ntp服务器需修改 ntp客户端可不用修改)
restrict IP mask 掩码 参数
IP规定了允许或不允许访问的地址(此处若为default 即0.0.0.0为所有IP)配合 掩码可以对某一网段进行限制
restrict参数包括
ignore 关闭所有NTP服务
nomodify 客户端不能修改服务器的时间 但可以作为客户端的校正服务器
noquery 不提供时间查询 即用户不能使用ntpq ntpc等命令来查询ntp服务器
nopeer 不与同一层的其他服务器进行时间同步
kod kod技术可以阻止“kiss of death”包(一种DOS攻击)对服务器的破坏
notrap 不提供trap远端事件登陆的功能(远程事件日志记录程序)
restrict 127.0.0.1 允许本机地址的一切操作
restrict -6 限制IPv6
server参数 设定上级时间服务器(区域网ntp服务器和客户端都需要配置)
server IP地址或域名 [prefer]
用途:为该NTP服务器指定的上级NTP服务器
当指定多个NTP服务器时 使用prefer参数的服务器优先级最高
如果未使用prefer参数 优先级按从上到下的顺序依次从高到低
常用命令
ntpstat 查看ntp服务器有无和上层ntp连通
ntpd -p命令 该命令可以列出目前我们的NTP与相关的上层NTP的状态
remote 即NTP主机的IP或主机名称 注意最左边的符号 如果“+”则代表目前正在作 用钟的上层NTP 如果是“*”则表示也有连上线 不过是作为次要联机的NTP 主机
refid 参考的上一层NTP主机的地址
st 即stratum阶层(0-15)
when 几秒前曾做过时间同步更新的操作
poll 下次更新在几秒之后
jitter Linux系统时间与BIOS硬件时间的差异时间
reach 已经向上层NTP服务器要求更新的次数
delay 网络传输过程钟延迟的时间
offset 时间补偿的结果
watch “ntpq -p”命令 结果如上
服务器查询是否安装ntp软件包
设置时区 由于在之前设置时选的时区是上海 所以报错
修改系统时间 与Internet时间同步
将硬件时间修改到与系统时间相同
修改/etc/ntp.conf主配置文件
让ntp服务修改硬件时间
修改/etc/ntp/step-tickers
当ntpd服务启动或重启时 自动和该文件中记录的上层NTP服务进行时间校对
将ntp服务加入开机自启动
启动服务
关闭防火墙
查看状态
客户端检查是否安装ntp
同步系统时间 并修改硬件时间
修改/etc/ntp.conf主配置文件
修改/etc/ntp/step-tickers 添加server
修改/etc/sysconfig/ntpd 使其自动修改硬件时间
设置成开机自启动
启动服务并查看状态