ntp时间服务器
Posted huxl1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ntp时间服务器相关的知识,希望对你有一定的参考价值。
Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用ntpdate进行时间同步。
一、修改时区:
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改为中国的东八区
# vi /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=false
ARC=false
二、配置新的时间
日期设定:
# date -s 2017/03/06
时间设定:
# date -s 18:40:00
查看硬件时间(Bios的):
hwclock [-rw]
-r:查看现有BIOS时间,默认为-r参数
-w:将现在的linux系统时间写入BIOS中
注:当我们进行完 Linux 时间的校时后,还需要以 hwclock -w 来更新 BIOS 的时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据
[[email protected] ~]# hwclock -r
Wed 02 Nov 2016 02:53:35 AM CST -0.632895 seconds
同步BIOS时钟,强制把系统时间写入CMOS:
# clock -w
三、实现Internet时间同步(这里可以忽略上面两步)
方法1. 开机的时候自动网络校时:
vi /etc/rc.d/rc.local
/usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3 192.168.0.4; /sbin/hwclock -w
方法2. 设定计划任务
crontab格式如下:
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
设定crontab计划任务自动校时:
使用命令crontab -e
crontab -e
10 5 * * * root /usr/sbin/ntpdate -u 210.72.145.44;hwclock -w
这样每天5:10自动进行网络校时,并同时更新BIOS的时间
第一步,安装NTP服务:
yum install -y ntp ntpdate
第二步,配置NTP服务:
编辑配置文件/etc/ntp.conf ,配置之前记得先备份文件。
restrict default kod nomodify notrap nopeer noquery restrict、default定义默认访问规则,nomodify禁止远程主机修改本地服务器
restrict -6 default kod nomodify notrap nopeer noquery ===== 》》》》》》》 配置,notrap拒绝特殊的ntpdq捕获消息,noquery拒绝btodq/ntpdc查询
restrict 127.0.0.1 (这里的查询是服务器本身状态的查询)。
restrict -6 ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap ===== 》》》》》》 这句是手动增加的,意思是指定的192.168.1.0--192.168.1.254的服务器都
erver 192.168.1.117 ===== 》》》》》》 这句也是手动添加的,可以将局域网中的指定ip作为局域网内的ntp服务器。
server 1.centos.pool.ntp.org ===== 》》》》》》 这3个域名都是互联网上的ntp服务器,也还有许多其他可用的ntp服务器,能连上
server 2.centos.pool.ntp.org 外网时,本地会跟这几个ntp服务器上的时间保持同步。
server 127.127.1.0 # local clock ===== 》》》》》》 当服务器与公用的时间服务器失去联系时,就是连不上互联网时,以局域网内的时
fudge 127.127.1.0 stratum 10 间服务器为客户端提供时间同步服务。
第三步,启动NTP服务:
/etc/init.d/ntpd start 当前启动ntpd服务
chkconfig ntpd on 下次开机自启ntpd服务
在服务端执行 ntpq -p 下面是我在自己的服务器上面的测试的结果,仅供参考:
当所有远程服务器(不是本地服务器)的jitter值都为4000,并且reach和dalay的值是0时,就表示时间同步有问题。可能原因有2个:
1)服务器端的防火墙设置,阻断了123端口(可以用 iptables -t filter -A INPUT -p udp --destination-port 123 -j ACCEPT 解决)
2)每次重启ntp服务器之后,大约3-5分钟客户端才能与服务端建立连接,建立连接之后才能进行时间同步,否则客户端同步时间时会显示
no server suitable for synchronization found的报错信息,不用担心,等会就可以了
客户端的配置:
第一步,客户端安装NTP服务:
yum install -y ntp
第二步,同步时间:
ntpdate 服务器IP或者域名
Nov 19:02:27 ntpdate[28566]: no server suitable for synchronization found
出现以上情况的原因是由于NTP Server还没有和自身或其他NTP Server保持同步,因此需在ntp的配置文件ntp.conf中加入以下语句以保证NTP Server与自身同步:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
以上是关于ntp时间服务器的主要内容,如果未能解决你的问题,请参考以下文章