NTP时间服务器:
NTP(Network Time Protocol 网络时间协议)是一个用于同步计算机时钟的网络协议;它可以使计算机与其他服务器或时钟源进行时间同步,进行高精度的时间校正;NTP服务器是基于C/S架构的;NTP就是使一台或多台服务器(客户端)与时间服务器(服务端)之间进行时间同步(即客户端与服务端的时间同步),以保证时间的统一性;NTP服务器与客户端之间是基于UDP协议进行传输,使用的是UDP的123端口;
实验环境:
OS: rhel6
NTP服务器:192.168.10.111
NTP客户端:192.168.10.113
1.首先在192.168.10.111 上安装NTP服务器
#tar xf ntp-4.2.8p3.tar.gz
#cd ntp-4.2.8p3
#./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
#make && make install
2.修改主配置文件
#vim /etc/ntp.conf
####1. 先处理权限方面的问题,包括放行上层服务器以及开放区网用户来源;
restrict default kod nomodify nopeer noquery <==拒绝 IPv4 的用户
restrict -6 default kod nomodify nopeer noquery <==拒绝 IPv6 的用户
restrict 127.0.0.1 <==底下两个是默认值,放行本机来源
restrict -6 ::1
restrict 0.0.0.0 mask 0.0.0.0 nomodify noquery <==拒绝没有认证的用户端
restrict 192.168.10.0 mask 255.255.255.0 nomodify <==放行区网来源
####2. 设定主机来源,请先将原本的 [0|1|2].centos.pool.ntp.org 的设定批注掉;
server 0.cn.pool.ntp.org prefer <==prefer 该服务器优先
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
####3.预设时间差异分析文件与暂不用到的 keys 等,不需要更动它;
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
3.输出ntpd的man手册至man命令的查找路径
编辑/etc/man.config,添加如下行即可
MANPATH /usr/local/ntp/share/man
4.输出ntpd的库文件给系统库查找路径
# echo '/usr/local/ntp/share/ntp/lib' > /etc/ld.so.conf.d/ntpd.conf
5.而后让系统重新载入系统库
# ldconfig
6.修改PATH环境变量,让系统可以直接使用ntpd的相关命令
# vim /etc/profile.d/ntpd.sh
export PATH=$PATH:/usr/local/ntp/sbin
7.重启ntpd服务并让其开机自动启动
#chkconfig --add ntpd
#chkconfig ntpd on
#service ntpd restart
8.客户端端使用ntpdate 程序来执行同步
#ntpdate ntpd-server-ip
9.在客户端添加计划任务
#crontab -e
*/5 * * * * /usr/sbin/ntpdate 192.168.10.111 &> /dev/null
#service crond restart
#crontab -l
PS:
1.restrict指令指定可以进行NTP通信的IP地址或网段:
restrict <IP 地址><子网掩码>|<网段> <子网掩码> [ ignore|nomodify|noquery|notrap|notrust|nokod ]
ignore:关闭所有NTP服务;
nomodify :表示客户端不能更改NTP服务器的时间参数,但可以通过NTP服务器进行时间校对;
noquery: 不提供NTP服务;
notrap:不提供trap远程事件登录的功能;
notrust: 聚聚没有通过认证的客户端;
kod:kod技术可以组织“Kiss of Death”包(一种DOS攻击)对服务器的破坏,使用此参数将开启该功能 ;
nopeer:不与其他同一层的NTP服务器进行时间同步;
若果没有指定选项,那就表示指定的客户端在访问NTP服务器时没有任何限制;
2.server指令指定该NTP服务器上层NTP服务器,如果有多个上层NTP服务器,则参考prefer的优先级进行时间同步,prefer越小优先级越高:
server [IP|FQDN] [prefer]
3.broadcast指令指定进行NTP时间广播的网段,在不指定此参数时NTP服务器会对所有能访问的网段广播;
4.ntpq -p 命令查看列出目前我们的 NTP 与相关的上层 NTP 的状态:
下面对部分参数进行说明:
remote:可以是 NTP 主机的 IP 或主机名��~注意最左边的符号;
如果有『 * 』代表目前正在作用当中的上层 NTP;
如果是『 + 』代表也有连上线,而且可作为下一个提供时间更新的候选者;
refid:参考的上一层 NTP 主机的地址;
st:就是 stratum 阶层��!;
when:几秒钟前曾经做过时间同步化更新的动作;
poll:下一次更新在几秒钟之后;
reach:已经向上层 NTP 服务器要求更新的次数;
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒;
offset:时间补偿的结果,单位与 10^(-3) 秒;
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒;