Ntpd

NTPd 是否必須偵聽介面或地址才能更新伺服器時間?

  • February 17, 2011

預設情況下,NTPd 偵聽 UDP 埠 123(所有 IP 地址)。僅更新伺服器時間是否有必要?

如果需要監聽一個地址,應該使用哪個單一地址?它可以監聽的可能地址是:

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

為什麼它甚至必須監聽 localhost(127.0.0.1 和 ::1)?沒有人可以訪問該地址上的伺服器。


要將 NTPd 綁定到單個地址,-I可以使用該選項。對於我的 Debian 盒子,我必須編輯/etc/default/ntp並替換-g為:

-g -I 1.2.3.4 -I 127.0.0.1

這會導致 NTPd 監聽公共地址 1.2.3.4(由您自己替換)和 127.0.0.1。

如果您想在本地機器上執行查詢,那麼在 localhost 上偵聽是有意義的。例如,ntpq -p localhost將查詢本地機器上執行的 ntp 服務。

一般來說,您可能希望 ntpd 監聽它需要發送或接收更新的所有真實地址。如果您正在執行 ipv6,則還需要列出 ipv6 地址,否則只需列出真實伺服器 ip 地址和 ipv4 localhost。

如果您只想更新本地時間,您可能應該限制對伺服器的訪問,因為 ntpd 不支持配置監聽地址。

首先要配置的是預設策略。您可以阻止所有未啟用的通信,但請記住限制對客戶端和伺服器都有效。

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

或者您可以預設允許時間交換,並​​只允許向 localhost 查詢伺服器:

restrict -4 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1

ntpd 還允許通過 -I 開關選擇它執行的介面。如果您正在執行 Debian,您可以簡單地將 -I 切換到 /etc/defaults/ntpd 中的 NTPD_OPTS 變數。

ntpd -I eth0

引用自:https://serverfault.com/questions/236883