Ubuntu 26.04 LTS 搭建本地 NTP 服务器教程
前言
在企业内部网络中,搭建一台本地NTP服务器具有以下优势:
– 降低延迟:内网时间同步延迟更低
– 节省带宽:减少对外网时间服务器的带宽占用
– 高可用性:即使外网不可达,内网时间服务仍可用
– 安全可控:不受公网NTP服务器影响
本文将详细介绍如何使用Chrony在Ubuntu 26.04 LTS上搭建本地NTP服务器。
环境说明
- 操作系统:Ubuntu 26.04 LTS
- NTP服务:Chrony 4.x
- 服务器IP:假设为 192.168.1.100(请根据实际情况修改)
一、安装 Chrony
1.1 更新软件包并安装
sudo apt update
sudo apt install -y chrony
1.2 验证安装
chronyc --version
二、配置 Chrony 作为 NTP 服务器
2.1 编辑配置文件
sudo vim /etc/chrony/chrony.conf
2.2 配置上游时间源
首先配置上游时间源(同步到公网NTP服务器):
# 阿里云NTP服务器作为上游
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
# 备选:NTP Pool
pool pool.ntp.org iburst
2.3 允许内网客户端访问
在配置文件中添加以下内容,允许内网客户端查询时间:
# 允许内网网段访问(根据实际网段修改)
# 允许整个192.168.1.0/24网段
allow 192.168.0.0/16
# 或者仅允许特定IP
# allow 192.168.1.0/24
2.4 其他重要配置
# 记录时间偏差
driftfile /var/lib/chrony/chrony.drift
# 如果时间偏差大于0.5秒,则强制修正
makestep 0.5 -1
# 启用内核时间同步
rtcsync
# 日志目录
logdir /var/log/chrony
2.5 重启服务
sudo systemctl restart chrony
sudo systemctl enable chrony
三、验证配置
3.1 检查服务状态
sudo systemctl status chrony
3.2 检查时间同步状态
chronyc tracking
确认输出中显示 * 表示已成功同步到上游时间服务器。
3.3 检查时间源
chronyc sources -v
3.4 检查监听端口
sudo ss -tulpn | grep :123
应该看到chronyd在UDP 123端口监听。
四、配置防火墙
4.1 UFW 防火墙
如果使用UFW防火墙,需要允许NTP端口:
sudo ufw allow 123/udp
sudo ufw reload
4.2 iptables 防火墙
如果使用iptables:
sudo iptables -A INPUT -p udp --dport 123 -j ACCEPT
五、客户端配置
5.1 Linux 客户端配置
在客户端机器上编辑 /etc/chrony/chrony.conf:
# 指向本地NTP服务器
server 192.168.1.100 iburst
# 备选公网服务器
server ntp1.aliyun.com iburst
重启chrony服务:
sudo systemctl restart chrony
验证同步:
chronyc sources
5.2 Windows 客户端配置
- 打开”日期和时间设置”
- 点击”Internet时间”选项卡
- 点击”更改设置”
- 在”服务器”输入框中填入NTP服务器IP:192.168.1.100
- 点击”立即更新”
- 确定保存
5.3 Cisco 网络设备配置
ntp server 192.168.1.100
5.4 VMware ESXi 配置
通过ESXi主机配置NTP:
vim-cmd hostsvc/advanced_option | grep ntp
esxcli system time set -N 192.168.1.100
或通过vSphere Client:
1. 主机 → 配置 → 时间和日期
2. 点击”属性”
3. 配置NTP服务器地址
4. 启动NTP客户端
六、安全配置
6.1 限制访问范围
只允许内网访问,不要暴露到公网:
# 仅允许内网
bindaddress 192.168.1.100
# 或者绑定到所有地址但限制来源
# 通过iptables限制
sudo iptables -A INPUT -s 192.168.0.0/16 -p udp --dport 123 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 123 -j DROP
6.2 启用NTS(可选)
Chrony 4.0+ 支持NTS(Network Time Security),可以提供加密认证:
# 启用NTS(需要上游服务器支持)
nts server ntp1.aliyun.com:443
七、监控与维护
7.1 查看连接客户端
Chrony不直接显示连接的客户端,但可以通过系统日志查看:
sudo journalctl -u chrony | grep NTP
7.2 性能监控
使用Prometheus node_exporter收集chrony指标:
curl 127.0.0.1:323/metrics | grep chrony
7.3 手动强制同步
如果需要手动同步:
sudo chronyc makestep
八、常见问题排查
8.1 客户端无法同步
检查步骤:
1. 确认NTP服务器防火墙放行了123/UDP端口
2. 确认NTP服务正常运行:sudo systemctl status chrony
3. 测试连通性:ntpdate -q 192.168.1.100
4. 检查客户端配置是否正确
8.2 时间不同步
# 查看详细状态
chronyc tracking
# 查看时间源
chronyc sources
# 强制同步
sudo chronyc makestep
8.3 同步精度差
- 确保服务器网络延迟低
- 建议使用有线网络
- 避免通过VPN或高延迟链路同步
九、进阶配置:层级架构
大型网络可以部署多层级NTP服务器:
公网NTP
↓
NTP Server 1 (核心层)
↓
NTP Server 2-3 (汇聚层)
↓
客户端设备
配置示例:
# 核心层NTP服务器配置
server ntp1.aliyun.com iburst
# 汇聚层NTP服务器配置(指向核心层)
server 192.168.1.100 iburst
总结
通过本文教程,您应该能够:
1. 在Ubuntu 26.04 LTS上安装和配置Chrony
2. 将服务器配置为内网NTP服务器
3. 配置Linux、Windows、网络设备等客户端
4. 做好安全防护和防火墙配置
5. 了解常见问题的排查方法
建议生产环境至少配置两台NTP服务器(主备),以保证时间服务的高可用性。












暂无评论内容