ubuntu20.04部署ntp服务器ntpd
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 的包与服务名,命令与参数为当前稳定实践。