Linux搭建NTP时间服务器
1. NTP简介
NTP(Network Time Protocol 网络时间协议)是一个用于同步计算机时钟的网络协议。它可以使计算机与其他服务器或时钟源进行时间同步,进行高精度的时间校正。
简而言之,NTP就是使一台或多台服务器(客户端)与时间服务器(服务端)之间进行时间同步(即客户端与服务端的时间同步),以保证时间的统一性
2. NTP服务器架设
上面提到客户端与服务端的时间同步,现在就先来架设NTP服务端(即NTP时间服务器)
2.1 系统环境
OS: Debian 7.0 amd64
source: deb http://ftp.debian.org/debian wheezy main contrib non-free
2.2 架设NTP服务器
2.2.1 安装NTP服务软件
# aptitude install ntp
2.2.2. 编辑ntp配置文件
# nano /etc/ntp.conf
最简单的配置就是修改一条信息,具体如下:
restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap
然后保存退出即可
2.2.3 重启NTP服务
# invoke-rc.d ntp restart
这样NTP时间服务器就架设好了
2.3 客户端配置
NTP时间服务器有了,那么客户端如何与这台服务器进行时间同步呢?,我们继续
2.3.1 安装时间同步程序客户端
# aptitude install ntpdate
2.3.1 让客户端与时间服务器(192.168.61.85)进行时间同步
# ntpdate 192.168.61.85
若执行完命令出现如下提示,则表示已同步成功
ntpdate[23636]: adjust time server 192.168.61.85 offset -0.052088 sec
2.3.2 上面的命令只是客户端与时间服务器的一次同步,若想周期性的进行时间同步,那我们就要添加计划任务了
# crontab -e
在最后一行添加如下内容:
0 1 * * * /usr/sbin/ntpdate 192.168.61.85
每天凌晨1:00进行时间同步
至此,NTP时间服务器的架设和使用就算结束了。接下来是关于NTP配置文件ntp.conf的一些配置说明,仅供参考:
------------------------------------------------------------------------------------------------
在配置文件/etc/ntp.conf中主要包括以下几个参数
1. restrict <IP 地址><子网掩码>|<网段> <子网掩码> [ ignore|nomodify|noquery|notrap|notrust|nokod ]: 指定可以进行NTP通信的IP地址或网段
1.1 ignore:关闭所有NTP服务
1.2 nomodify :表示客户端不能更改NTP服务器的时间参数,但可以通过NTP服务器进行时间校对
1.3 noquery: 不提供NTP服务
1.4 notrap:不提供trap远程事件登录的功能
1.5 notrust: 聚聚没有通过认证的客户端
1.6 kod:kod技术可以组织“Kiss of Death”包(一种DOS攻击)对服务器的破坏,使用此参数将开启该功能
1.7 nopeer:不与其他同一层的NTP服务器进行时间同步
若果没有指定选项,那就表示指定的客户端在访问NTP服务器时没有任何限制
2. server [IP|FQDN] [prefer]:指定该NTP服务器上层NTP服务器,如果有多个上层NTP服务器,则参考prefer的优先级进行时间同步,prefer越小优先级越高
3. broadcast 网段 子网掩码:指定进行NTP时间广播的网段,在不指定此参数时NTP服务器会对所有能访问的网段广播
查看时间同步信息的命令:
# ntpq -p
下面对部分参数进行说明:
remote: 本地主机所连接的上层NTP服务器
st:NTP服务器优先级
when:上次与NTP服务器同步的时间(单位:s)
poll:下次与NTP服务器同步的时间(单位:s)
delay:从本地发出时间同步命令给远程时间服务器开始,到整个时间同步完成所需时间(单位:10^-6s)
offset:本地主机与时间服务器的时间差(同步后将自动纠正)
jitter:一个offset的分布统计值,该值越小,表示时间越精确