【问题标题】:Instantaneous synchronization using NTP使用 NTP 瞬时同步
【发布时间】:2014-05-30 09:04:50
【问题描述】:

我正在使用两台 PC:PC1(服务器)和 PC2(客户端),我正在尝试将它们的时间与 NTP 同步。 PC1 未配置为与任何外部时间源同步。我只想PC1上的任何时间,PC2都应该按照那个同步。我已经完成了以下更改-:

在PC1(服务器)-:

#vi /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 1
restrict 127.0.0.1
restrict 192.168.50.0 mask 255.255.255.0 nomodify notrap
driftfile /var/lib/ntp/drift
:wq!

#vi /etc/ntp/step-tickers
# List of servers used for initial synchronization.
127.127.1.0
:wq!

#vi /etc/init/rc.conf
ntpd_enable=\"YES\"
:wq!

在PC2(客户端)-:

#vi /etc/ntp.conf
server 192.168.50.201
fudge 127.127.1.0 stratum 2
restrict 127.0.0.1
driftfile /var/lib/ntp/drift
restrict 192.168.50.201 mask 255.255.255.255 notrap nomodify
:wq!

#vi /etc/ntp/step-tickers
192.168.50.201
:wq!

#crontab -e
1 * * * * ntpdate -s -b -u 192.168.50.201
:wq!

#vi /etc/init/rc.conf
ntpd_enable=\"YES\"
:wq!

我还通过添加这些行更改了双方的防火墙设置-:

#vi /etc/sysconfig/iptables
-I INPUT -p udp --dport 123 -j ACCEPT
-I OUTPUT -p udp --sport 123 -j ACCEPT
:wq!

但是,我无法将 PC2 日期与 PC1 日期同步,即当我在 PC1 中更改日期时,更改不会立即反映在 PC2 中。我正在使用 RHEL 6.2。

谁能告诉我哪里出错了??

【问题讨论】:

  • “更改不会立即反映在 PC2 中。”。但是它们会在一段时间后反映吗?
  • 是的,在我输入日期命令后,我可以看到变化。但这大约需要 8-10 分钟。有什么方法可以在 PC2 上立即看到变化?那也太自动化了?
  • 请不要将系统设置为第 1 层。如果您将层设置为 6,PC2 不会拒绝 pc1。如果机器曾经连接到互联网,请假冒第 1 层是不好的做法.此外,您不需要手动设置 pc2 上的层。它将是 n+1,其中 n 是 pc1 的层。将 pc1 上的层设置为 6 或更高是一个不错的选择,不会对时间性能产生影响。

标签: linux rhel ntpd


【解决方案1】:

NTP 的核心算法旨在同步时钟并使其长时间保持同步;当一个时钟相对于另一个发生变化时,不要让两个时钟保持同步。

它设计用于互联网规模,而不是本地网络规模。

为了做到这一点,它从它所连接的 NTP 服务器获取初始时间,并使用它来确定本地时间和服务器时间之间的差异。然后将其转换为曲线的斜率,用于调整本地时钟以匹配服务器时钟并保持它们彼此同步。

通过持续轮询远程服务器来调整此斜率。使用minpollmaxpoll 间隔配置远程服务器轮询之间的间隔。这些间隔被定义为轮询之间秒数的二次幂(请记住,这些轮询间隔不是严格的时间,它添加了随机性以防止在发生大量服务器同时启动)。默认轮询间隔为minpoll = 6(== 64 秒)、maxpoll = 10(== 1024 秒)。

发生的情况是第一次轮询发生,然后第二次是 64 秒后,随着从服务器获得更多样本,这个间隔移出,假设本地时钟和远程时钟的模型保持相对稳定,即时间越长,轮询率会随着模型的确定而降低。

如果您调整服务器上的时钟,则需要重新计算模型。这将需要一些时间,因为算法会在确定当前预期差异时考虑之前的时间差异。

如果你将服务器的minpollmaxpoll设置为4,那么它会大约每16秒轮询一次服务器,这将加速时钟模型的调整,但仍然需要时间时钟彼此同步。在轮询相对较近的服务器的 LAN 环境中运行时,这是一个有用的设置。

运行ntpd 表示您的时钟长期稳定,运行ntpdate 表示您的时钟与远程服务器同步,在所有其他时间您的时钟都会超时- 与远程时间同步,因为它没有一个模型可以用来调整本地时间以使其与远程服务器保持同步。

ntpd 正在运行时,您不能运行ntpdate,除非您使用-u 标志,这会导致它不使用123 的默认ntp 端口。否则你会收到the NTP socket is in use, exiting 消息。

【讨论】:

  • 保持两个系统时钟彼此同步非常困难,而且大多数算法都假设您没有主动调整其中一个时钟。一旦您消除了问题的根源,NTP 和它的新表亲 PTP 将帮助您以合理的准确度保持时钟同步。
【解决方案2】:

您的问题暗示您期望 pc2 快速确定 pc1 上的时间已更改,并相应更新,这是您正在寻找的行为吗?如果是这样,我认为 ntp 本身不会真正做到这一点,因为 ntp 并不真正期望服务器会改变它的时间

您也可以尝试使用 ntpdate -s 立即设置时间。

【讨论】:

  • 我认为您需要进一步解释您的最终目标。如果没有上下文,很难提出一个好的解决方案。
猜你喜欢
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 2012-08-04
  • 2013-09-21
  • 1970-01-01
相关资源
最近更新 更多