Skip to main content

2.3 配置 NTP 客户端

在 Ubuntu 系统中,NTP 客户端服务 [systemd-timesyncd.service] 默认处于启用状态,该服务作为 systemd 套件的一部分,提供轻量级的时间同步机制,能够在系统启动和运行期间自动与预设的公共 NTP 服务器进行时间校准。由于无需额外安装软件包即可实现基本的时间同步功能,因此对于大多数桌面或非高精度需求的服务器环境而言,配置过程简便高效,开箱即用。

此外,您也可选择使用 NTPsec 或 Chrony 作为替代的 NTP 客户端软件。NTPsec 是从原始 NTP 软件派生的安全强化版本,经过代码清理和安全加固,适用于对安全性要求较高的部署场景;而 Chrony 则专为间歇性网络连接、虚拟化环境或移动设备设计,具备更快的收敛速度和更高的同步精度,尤其适合云服务器或动态网络条件下的时间管理。

若采用这两种方案,建议仅配置其从指定的可信 NTP 服务器(如组织内部的时间源或国家授时中心提供的公共服务)获取时间同步信息,并通过配置文件严格限定服务器列表,确保时间源的可靠性与一致性。同时,不应启用接收来自其他主机时间同步请求的功能(例如关闭本地的 NTP 服务器模式或广播响应),以避免暴露不必要的网络服务端口,防止潜在的 DDoS 放大攻击、时间污染或未经授权的客户端接入,从而降低安全风险和服务误用的可能性。

综上所述,在实际运维中应根据具体应用场景权衡选择合适的时间同步工具:对于一般用途系统可依赖默认启用的 systemd-timesyncd;而对于需要更高精度、更强健网络适应能力或更严格安全控制的环境,则推荐部署 Chrony 或 NTPsec,并结合最小权限原则进行精细化配置,以保障系统时间的一致性、准确性和安全性。

  • NTP 客户端服务
root@sheer-client:~# systemctl status systemd-timesyncd
*  systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled>
     Active: active (running) since Fri 2025-08-26 10:25:30 UTC; 55s ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 591 (systemd-timesyn)
     Status: "Idle."
      Tasks: 2 (limit: 4612)
     Memory: 1.4M (peak: 2.0M)
        CPU: 27ms
     CGroup: /system.slice/systemd-timesyncd.service
             +-- 591 /usr/lib/systemd/systemd-timesyncd

root@sheer-client:~# vi /etc/systemd/timesyncd.conf
# 在最后一行添加:设置您所在时区的 NTP 服务器。
NTP=ntp1.sheerchina.com
root@sheer-client~# systemctl restart systemd-timesyncd
root@sheer-client:~# timedatectl timesync-status
       Server: 172.18.100.10 (ntp1.sheerchina.com)
Poll interval: 4min 16s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 2
    Reference: 3DCD7882
    Precision: 1us (-24)
Root distance: 11.184ms (max: 5s)
       Offset: -296us
        Delay: 192us
       Jitter: 343us
 Packet count: 4
    Frequency: +1.372ppm