生活随笔 2014-05-28
linuxntp时间同步
【ntp】
NetworkTimeProtocol(NTP)此处省略一万字。
【安装】
详解参考
【配置】
NTP服务的配置文件:
/etc/ntp.conf:这个是NTP服务的主要配置文件,不同的Linux版本文件所在的目录可能会不同!
与NTP服务有关的Linux系统文件及目录:
/usr/share/zoneinfo:这是个目录,在这个目录下是规定了各主要时区的时间设定文件,例如中国大陆地区的时区设置文件是/usr/share/zoneinfo/Asia/Shanghai。
/etc/sysconfig/clock:这个文件是Linux的主要时区设定文件。每次启动后,Linux会自动读取这个文件来设定系统预设要显示的时间!
比如这个文件内容为“ZONE=Asia/Shanghai”,这表示我们的时间设定使用/usr/share/zoneinfo/Asia/Shanghai这个文件!
/etc/localtime:这个文件是本地系统的时间设定文件!
假设clock文件里面规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Shanghai,Linux系统就会将Shanghai那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Shanghai那个时间设定文件为准。假设这台主机到了美国纽约,您只要将/etc/sysconfig/clock里面的ZONE设定成为ZONE="America/New_York"并且将/usr/share/zoneinfo/America/New_York复制成为/etc/localtime,其它什么设置都不需要改动,系统的显示时间就是美国纽约当地的时间了!
与NTP及系统时间有关的执行文件:
/bin/date:Linux系统上面的日期与时间修改及输出命令。
/sbin/hwclock:因为主机的BIOS时间与Linux系统时间是分开的,所以使用date这个指令调整了时间之后,只是调整了linux的系统时间,还需要使用hwclock才能将修改过后的时间写入BIOS。这个命令必须root用户才能执行。
/usr/sbin/ntpd:NTP服务的守护进程文件,需要启动它才能提供NTP服务。
/usr/sbin/ntpdate:NTP客户端用来连接NTP服务器命令文件。
1.配置服务器端
vi/etc/ntp.conf
①、第一种配置:允许任何IP的客户机都可以进行时间同步
将“restrictdefaultnomodifynotrapnoquery”这行修改成:
restrictdefaultnomodifynotrap
配置文件示例:/etc/ntp.conf
②、第二种配置:只允许192.168.211.***网段的客户机进行时间同步
在restrictdefaultnomodifynotrapnoquery(表示默认拒绝所有IP的时间同步)之后增加一行:
restrict192.168.211.0mask255.255.255.0nomodifynotrap
2.配置客户端
1.硬同步(如果有大量业务的时候会造成影响)
ntpdatentpserver
2.软同步(研究中)
不要忘了使用hwclock命令,把时间写入bios
hwclock-w
【ntp.conf】
restrictdefaultignore #关闭所有的NTP要求封包
restrict127.0.0.1 #开启内部递归网络接口lo
restrict192.168.0.0mask255.255.255.0nomodify#在内部子网里面的客户端可以进行网络校时,但不能修改NTP服务器的时间参数。
server133.100.9.2prefer#用133.100.9.2做上级时间服务器
server198.123.30.132#198.123.30.132作为上级时间服务器参考
restrict133.100.9.2#开放server访问我们ntp服务的权限
restrict198.123.30.132
driftfile/var/lib/ntp/drift在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
几个主要参数:
ignore :关闭所有的NTP联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery:不提供客户端的时间查询
【FAQ】
theNTPsocketisinuse,exiting:需要把ntp服务器停止后才能跟新时间
【参考】
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sect-Date_and_Time_Configuration-Command_Line_Configuration-Network_Time_Protocol.html
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sect-Date_and_Time_Configuration-Command_Line_Configuration.html#sect-Date_and_Time_Configuration-Command_Line_Configuration-Date_and_Time
http://www.cnblogs.com/liuyou/archive/2012/07/29/2614341.html
http://bbs.konotes.org/thread-4370-1-1.html
http://www.eecis.udel.edu/~mills/ntp/html/accopt.html