文档首页> Linux命令> ubuntu20.04部署ntp服务器ntpd

ubuntu20.04部署ntp服务器ntpd

发布时间:2025-10-30 00:06       

Ubuntu 20.04 部署 NTP 服务器(ntpd)

定位:在 20.04 上使用传统 ntpd(包名 ntp)提供局域网授时,替代仅客户端用途的 systemd-timesyncd。面向企业内网:稳定、可控、可审计。⚙️


0. 前置判断(务实结论)

  • 默认组件:Ubuntu 20.04 自带 systemd-timesyncd(更像轻量客户端);要做NTP 服务器,应安装 ntpd 或 chrony。你指定 ntpd,可行。
  • 建议:物理机优先;虚拟化环境请确保宿主启用稳定时钟源(如 KVM 的 kvm-clock)。

1. 安装与基础切换

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
sudo apt update && sudo apt install -y ntp
sudo systemctl enable ntp --now
​

解释:

  • 关闭 timesyncd 避免与 ntpd 端口/角色冲突。
  • 安装 ntp(提供 ntpd 守护进程);设置为开机自启并立即启动。

2. 安全与上游:编辑 /etc/ntp.conf

# 1) 记录频偏
driftfile /var/lib/ntp/ntp.drift
leapfile  /usr/share/zoneinfo/leap-seconds.list

# 2) 上游时间源:至少 3~4 个,分布不同机构/地域
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
pool 3.pool.ntp.org iburst
# 如需更稳,可替换为企业可信源或本地区权威源

# 3) 访问控制(默认收紧)
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# 允许本机与本地网段查询/同步(示例:10.0.0.0/24)
restrict 127.0.0.1
restrict ::1
restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap

# 4) 接口控制(可选:仅监听内网口)
# interface ignore wildcard
# interface listen eth0

# 5) 异常容错(可选):上游全不可达时有序参考
# tos orphan 10
​

解释:

  • iburst:初次建联快速收敛。
  • restrict:默认拒绝,仅放行可信网段,防反射与信息泄露。
  • tos orphan:上游全挂时提供“有序孤儿模式”,维持局域网相对一致性(谨慎启用)。
  • 建议把 pool 改成你企业的固定上游(如运营商/权威组织/NTP 硬件时钟)。

应用配置:

sudo systemctl restart ntp
​

解释:重载配置并生效。


3. 防火墙放行(仅服务器入站 UDP/123)

sudo ufw allow 123/udp
sudo ufw reload
​

解释:NTP 使用 UDP/123;仅对内网放行更稳妥(可用 ufw allow from 10.0.0.0/24 to any port 123 proto udp)。


4. 运行状态与对时质量验证

# 进程/端口
sudo systemctl status ntp
sudo ss -lunp | grep :123

# 同步状态与上游列表
ntpq -p -n

# 粗粒度健康度
ntpstat
​

解释:

  • ntpq -p -n:查看上游延迟/抖动/偏移,* 表示当前选用的主同步源。
  • ntpstat:返回同步是否稳定(如 “synchronised to NTP server”)。
  • 初次启动需等待数分钟收敛(取决于网络时延、上游质量)。

5. 客户端指向(示例)

Linux(ntpd 客户端):

# /etc/ntp.conf
server 10.0.0.10 prefer iburst   # 你的NTP服务器IP
​

解释:prefer 提示优选该源;客户端重启 ntp 即可。

Linux(chrony 客户端):

# /etc/chrony/chrony.conf
server 10.0.0.10 iburst
​

解释:异构客户端同样可用你的 ntpd 服务器。

Windows 客户端(管理员 Powershell/CMD):

w32tm /config /manualpeerlist:"10.0.0.10" /syncfromflags:manual /update
w32tm /resync
​

解释:设定企业 NTP 为手动源并立即重同步。


6. 稳定性与合规清单 ✅

  • 上游 ≥3 个且分散,避免单点与系统性偏差。
  • 仅开放内网 UDP/123;外网请勿暴露(防 DDoS 反射)。
  • 监控偏移:将 ntpq -p 中 offset、jitter 纳入巡检阈值。
  • 虚拟机:确保宿主启用稳定 TSC/时钟源;避免频繁暂停/快照引发漂移。
  • 日志审计:/var/log/syslog 中的 ntpd 事件应纳入集中日志。

7. 常见问题速解 🧩

  • “没有同步到星标源”:确认上游可达、DNS 正常、restrict 未误拦、等待 2–10 分钟收敛。
  • “客户端不能对时”:检查服务器 ufw、交换机 ACL、是否仅监听特定网卡、子网 restrict 是否放行。
  • “时间跳变大”:生产上避免 local clock;上游替换为更稳定的权威源,或引入 GPS/北斗 PPS 作为置信源(需要专用硬件/驱动)。

8. 一页小结(给决策者)

  • 选型:你要的是授时服务器,在 20.04 用 ntpd 完全可行。
  • 重点:多上游、最小暴露面、严格 restrict、监控偏移。
  • 投入产出:一次配置,长期稳定支撑内网所有节点对时,降低分布式系统时序故障与审计风险。⏱️✨

以上流程在 2025 年依然适配 Ubuntu 20.04 的包与服务名,命令与参数为当前稳定实践。