注意事项

  1. NTP 使用 UDP 123 端口。

  2. ntpd 既可以作为服务端程序,也可以作为客户端程序。所以当设备仅使用 NTP 客户端功能时,要在 /etc/ntp.conf 中增加以下内容:

1
2
3
4
5
6
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery #针对ipv6设置

# 允许本地所有操作
restrict 127.0.0.1
restrict ::1

配置文件

/etc/ntp.conf

  • NTP 服务(如 ntpd)的主配置文件,核心作用是定义 NTP 服务器的运行规则,包括时间同步的来源、客户端的访问权限、安全认证方式等,直接决定 NTP 服务如何工作

/etc/ntp/keys

  • NTP 服务用于身份认证的密钥文件

  • 文件中每行定义一个密钥,格式为:[密钥ID] [密钥类型] [密钥内容]

1
2
$ cat /etc/ntp/keys
10 M 123
  • 密钥 ID:1-65535 之间的整数,用于在 NTP 配置中引用该密钥(如 trustedkey 1 表示信任 ID 为 1 的密钥)。
  • 密钥类型:通常为 M(MD5 加密,最常用),也支持 S(SHA-1)等,指定密钥的加密算法。
  • 密钥内容:由字母、数字或特殊字符组成的字符串(建议长度 8-32 位,复杂度越高越安全)。

常用命令

网络抓包

1
tcpdump udp port 123 -w ntp.pcap

ntpdate 使用的是系统随机分配的空闲端口。

ntpq

1
ntpq -np
1
ntpq -crv
  • 查看认证状态
1
ntpq -c as

ntpdate

1
2
# x.x.x.x是 NTP 服务器的 IP 地址
ntpdate -u x.x.x.x
  • 认证相关
1
ntpdate -a 10 -k /etc/ntp/keys x.x.x.x

在对时间有严格要求的生产环境下,使用 ntpdate 可能会产生严重的后果。

ntpd 是步进式的逐渐调整时间,而 ntpdate 是断点更新,比如现在服务器时间是9.18分,而标准时间是9.28分,ntpd 会在一段时间内逐渐的把时间校准到与标准时间相同,而 ntpdate 会立刻把时间调整到 9.28分。