ntp时间服务器本机的时间如何校准

pyruby 发布于 2014/01/17 11:42
阅读 5K+
收藏 1
NTP

一般我们的服务器都需要通过网络与网络上的时间服务器进行时间同步,但是当服务器的量变大了以后。我们不可能每台服务器都通过外网去同步时间,这时候我觉得线上也需要一台自己的时间服务器。现在我线上配置了一台时间服务器供其他服务器同步时间,但是当这台服务器时间不准确了,他就不会自动校准时间了,导致内网其他服务器时间都错误。我已经在/etc/ntp.conf做了如下配置:

server ntp.sjtu.edu.cn prefer



这个配置段就是指定你的时间服务器的上游时间服务器,按道理来说我本地的时间服务器也会不间断的和上游时间服务器同步?问题出在哪里了。时间出错是个很可怕的问题。。

加载中
0
pyruby
pyruby
执行ntpstat能够看到当前ntp伺服务器的状态,如下
[root@localhost]# ntpstat 
synchronised to NTP server (202.120.2.100) at stratum 4 
   time correct to within 64 ms
   polling server every 128 s

说明当前ntp伺服务器与上游的伺服器相差在64ms内,每隔128会去校验时间。

但是比方说我们的NTP服务器哪天一不小心重新启动,这个时候伺服务器的时间可能会因为某种问题,时间变的比当前时间快很多或者快很慢,而你的服务器又是开机自动开启ntpd的话,这个时候如果你的/etc/ntpd.conf如果没有注释掉下面2行的话,他刚开始可能由于种种问题会同步本地的时间,而不是直接同步上游的ntp服务器,这样的话就会导致其他客户端时间出错

#server 127.127.1.0     # local clock
#fudge  127.127.1.0 stratum 10




pyruby
pyruby
回复 @eechen : 不会的。。
eechen
eechen
按你这样配置,如果系统无法同步上游NTP时间服务器,是否会造成系统无法启动或启动出错?
0
Castle.liu
Castle.liu

1 对你的服务器来说 ntp.sjtu.edu.cn是否网络可达?

2 网络可达的话手工用ntpdate试试能不能同步~

0
pyruby
pyruby

引用来自“Castle.liu”的答案

1 对你的服务器来说 ntp.sjtu.edu.cn是否网络可达?

2 网络可达的话手工用ntpdate试试能不能同步~

你说这2个都可行,难道必须要手动去执行ntpdate吗?它本身没有自检机制吗?
0
pyruby
pyruby

引用来自“Castle.liu”的答案

1 对你的服务器来说 ntp.sjtu.edu.cn是否网络可达?

2 网络可达的话手工用ntpdate试试能不能同步~

当你的时间服务器正在运行的时候如果你执行ntpdate 更新时间的话 那么你的服务器会报如下错误,必须先service ntpd stop,然后才能ntpdate

the NTP socket is in use, exiting



0
Castle.liu
Castle.liu

引用来自“宝仔love”的答案

引用来自“Castle.liu”的答案

1 对你的服务器来说 ntp.sjtu.edu.cn是否网络可达?

2 网络可达的话手工用ntpdate试试能不能同步~

当你的时间服务器正在运行的时候如果你执行ntpdate 更新时间的话 那么你的服务器会报如下错误,必须先service ntpd stop,然后才能ntpdate

the NTP socket is in use, exiting



看看ntpd打印的日志,ntp默认是打印到系统日志/var/log/messages下的,重启下看报什么~

0
eechen
eechen
以Ubuntu为例,Ubuntu在开机时会调用/etc/network/if-up.d/ntpdate连接Ubuntu NTP服务器进行时间同步.

手动时间同步:
sudo service ntp stop
sudo ntpdate ntp.ubuntu.com
sudo service ntp start

Ubuntu在运行过程中由守护进程ntpd不断调整,连接配置/etc/ntp.conf里的时间服务器进行时间同步: sudo service ntp status
The ntp daemon ntpd calculates the drift of your system clock and continuously adjusts it, so there are no large corrections that could lead to inconsistent logs for instance. The cost is a little processing power and memory, but for a modern server this is negligible.
https://help.ubuntu.com/12.04/serverguide/NTP.html
0
pyruby
pyruby

引用来自“eechen”的答案

以Ubuntu为例,Ubuntu在开机时会调用/etc/network/if-up.d/ntpdate连接Ubuntu NTP服务器进行时间同步.

手动时间同步:
sudo service ntp stop
sudo ntpdate ntp.ubuntu.com
sudo service ntp start

Ubuntu在运行过程中由守护进程ntpd不断调整,连接配置/etc/ntp.conf里的时间服务器进行时间同步: sudo service ntp status
The ntp daemon ntpd calculates the drift of your system clock and continuously adjusts it, so there are no large corrections that could lead to inconsistent logs for instance. The cost is a little processing power and memory, but for a modern server this is negligible.
https://help.ubuntu.com/12.04/serverguide/NTP.html
你说对了一半
0
月影又无痕
月影又无痕
将ntpdate添加到cron任务中吧
0
pyruby
pyruby

引用来自“月影又无痕”的答案

将ntpdate添加到cron任务中吧
看清问题。。
0
casinozyz
casinozyz
NTP时统默认用UDP协议的123端口通信,问题可能出在这一默认端口上。这样试试看,你内网那台时间服务器仍旧采用123端口与外网的上游时间服务器对时,在内网中的其它设备采用另一端口与内网时间服务器对时,看能否成功。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部