NTP(Network Time Protocol)服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,应用于对时间实时性要求高的、必须统一时间事件。
服务端安装
一、安装ntp服务
yum install ntp ntpdate -y
二、修改ntp.conf配置文件
cp /etc/ntp.conf /etc/ntp.conf.bak #对ntp.conf文件进行备份
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
#记录时间差异的文件存放位置
driftfile /var/lib/ntp/drift
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery #我们对于默认的客户端拒绝所有的操作
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
#开启内部递归网络接口lo 即允许本机地址一切的操作
restrict 127.0.0.1
restrict -6 ::1
#我们允许局域网内所有客户端连接到这台服务器同步时间.
#但是拒绝让他们修改服务器上的时间
# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
service 192.168.75.132
# 这句也是手动增加的,指明局域网中作为NTP服务器的IP
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 互联网上的三个ntp服务器。server用来指定要同步的时间服务器的ip地址
# 如果局域网环境***释掉下面默认的网络服务器地址,改成自己的局域网时间服务器IP地址
# 其中后面perfer表示优先,常用的有iburst,burst)
server 0.rhel.pool.ntp.org
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org
#sebroadcast 192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 autokey # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
#如果server指定的服务器无法使用,就使用本机时钟作为ntp服务时间来源
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# Enable public key cryptography.
#crypto
#设定包含的配置文件子文件
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
# 当进行秘钥方式进行认证的时候需要的文件
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
下面详细对restrict进行介绍,这是一个权限控制的语句。语法如下:
ask [netmask_IP] [parameter]
如果后面不加任何参数 则表示允许对面ip或ip段的任何操作。
如:restrict 127.0.0.1
常用的参数有:
ignore: 拒绝所有类型的 NTP 联机;
nomodify: 客户端不能使用 ntpc 与 ntpq 这两支程序来修改服务器的时间参数, 但客户端仍可透过这部主机来进行网络校时的;
noquery: 客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网络校时;
notrap: 不提供 trap 这个远程事件登录的功能。
notrust: 拒绝没有认证的客户端。
三、启动NTP服务
service ntpd start
service ntpd start chkconfig ntpd on
客户端配置
一、客户端安装ntp服务
yum install ntp ntpdate -y
二、配置ntp.conf文件 。主要是添加时间服务器的IP地址
配置文件未做特别指出则与服务器端配置一致
tinker panic 0
(这行意思是设置客户端与服务器端时间差距,默认最大为1000,为0为不限制。)
server 192.168.245.128 prefer minpoll 3 maxpoll 3
(minpoll表示客户端向服务器端同步的最少时间,单位为2的次幂最小为3,秒)
server 192.168.245.130 iburst minpoll 3 maxpoll 3
(maxpoll表示客户端向服务器端同步的最长时间,单位为2的次幂最大为10,秒)
三、手动同步时间
ntpdate 服务器IP或域名
检查连接是否成功
一、ntpq -p命令参数:此命令可以查看客户端和服务器端连接情况
remote:NTP 主机的 IP 或主机名,左边的符号含义:
如果有『 * 』代表目前正在作用当中的上层 NTP
如果是『 + 』代表也有连上线,而且可作为下一个提供时间更新的候选者。
如果是『 - 』 表示为不合格的ntp服务器
refid:上一层 NTP 主机的地址
st:远程服务器的层级别,0-16,0为最高层,
when:几秒钟前曾经做过时间同步更新的动作;
poll:下一次更新在几秒钟之后;
reach:已经向上层 NTP 服务器要求更新的次数
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
offset:时间补偿的结果,单位与 10^(-3) 秒
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。
二、date修改系统时间,然后重启ntpd服务
date命令是显示或设置系统时间与日期。
语法
date(选项)(参数)
选项
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
参数
<+时间日期格式>:指定显示时使用的日期时间格式。
日期格式字符串列表
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
实例
格式化输出:
date +"%Y-%m-%d"
2009-12-07
连接失败解决办法
一、有防火墙阻断了与server之间的通讯,即123端口是否正常开放;
检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。可以用如下命令来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。
service iptables stop
在vi /etc/sysconfig/iptables添加如下规则:
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT