NTP 与 123 端口
UDP 123 是网络时间协议(NTP)的端口,客户端与服务器通过它交换时间信息完成校时。时间看似小事,但域认证依赖时间偏差在允许范围内,证书有效期校验、日志排序与分布式事务同样以时间为基准;时间漂移会以各种互不相关的故障形式出现。NTP 服务端还会被用作反射放大的攻击源,因此对外提供服务时要关闭查询类功能并限制来源。
基本信息
| 服务 | NTP(ntpd、chrony)、SNTP 客户端 |
|---|---|
| 协议 | UDP(面向无连接,报文小) |
| 配置文件 | /etc/chrony.conf 或 /etc/ntp.conf |
| 权限要求 | 调整系统时钟需 root 或对应能力 |
| 常见工具 | chronyc、ntpq、timedatectl |
| 关联影响 | 域认证、证书校验、日志取证、集群一致性 |
典型使用场景
- 域控与成员机同步,维持域认证的时间偏差在允许范围内
- 日志取证:多台主机时间一致才能还原事件先后顺序
- 数据库与集群:节点间时间偏差影响复制与事务判断
- 证书链校验:客户端时间错误会导致证书被判定为未生效或已过期
- 容器与虚拟化环境:宿主机同步后由平台下发时间,避免虚机集体漂移
同步状态检查
同步状态检查
chronyc sources -v # 查看时间源与选中状态
timedatectl status # 查看系统时间、时区与同步开关
chronyc tracking # 当前偏移量与同步精度
ntpq -p # 使用 ntpd 时查看对端与偏移量
ss -lunp | grep ':123' # 确认本机是否在监听 123 端口输出逐列读法
| 输出项 | 含义 | 正常/异常 |
|---|---|---|
| M 状态符 | 时间源状态 | 星号选中、加号为候选、问号表示不可达 |
| Reach | 最近若干次采样的可达情况 | 八进制全零说明对方长期无响应 |
| Offset | 与本地时间的偏差 | 持续偏大说明未真正参与同步 |
| Stratum | 层级 | 层级过低且持续下降要核查上游 |
| Leap status | 闰秒状态 | 显示异常时校时行为会受影响 |
对外提供 NTP 服务时不要开放查询类功能:早期 NTP 实现的监控查询可被用于反射放大攻击,务必关闭该功能并限制允许访问的来源网段。
内网统一时间源的做法:选两到三台主机从上游同步,其余主机只向这几台同步;既减少外网依赖,也让排查范围可控,避免每台机器各连一个外部源。
时间不对引发的典型故障:域账号突然无法登录、证书报未生效、Kafka 或数据库出现异常时间戳,这些现象看起来互不相关,实际根因都是主机时间漂移,排查时先确认时间是否一致。