NTPd是否必须侦听接口或地址以更新服务器时间?

NTPd侦听UDP端口123(所有IP地址),默认情况下。 这是只需要更新服务器的时间?

如果有必要听一个地址,应该使用什么单一的地址? 它可以听的地址是:

  • 127.0.0.1
  • 服务器IP
  • :: 1(IPv6)
  • 服务器IP(IPv6)

为什么它甚至必须监听本地主机(127.0.0.1和:: 1)? 没有人可以到达该地址的服务器。


要将NTPd绑定到单个地址,可以使用-I选项。 对于我的Debian框,我不得不编辑/etc/default/ntp ,并将-greplace为:

 -g -I 1.2.3.4 -I 127.0.0.1 

这会导致NTPd监听公共地址1.2.3.4(由您自己replace)和127.0.0.1。

如果要在本地框上运行查询,则在本地主机上监听是有意义的。 例如, ntpq -p localhost将查询本地机器上运行的ntp服务。

一般来说,您可能希望ntpd监听所有需要发送或接收更新的实际地址。 如果您正在运行ipv6,则需要列出ipv6地址,否则只需列出真实的服务器ip地址和ipv4 localhost。

如果您只想更新本地时间,则应该限制对服务器的访问,因为ntpd不支持configurationlisten地址。

首先要configuration的是默认策略。 您可以阻止之后未启用的所有通信,但请记住限制对于客户端和服务器都是有效的。

 restrict default ignore # Allow access to localhost restrict 127.0.0.1 restrict IP.OF.UPSTREAM.SERVER 

或者,您可以默认允许交换时间,并允许只将服务器查询到本地主机:

 restrict -4 default kod notrap nomodify nopeer noquery restrict 127.0.0.1 

另外ntpd允许select通过-I开关运行的接口。 如果您正在运行Debian,则可以简单地将-I开关添加到/ etc / defaults / ntpd中的NTPD_OPTSvariables中。

 ntpd -I eth0