Ubuntu 26.04 LTS 搭建本地 NTP 服务器教程

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 客户端配置

  1. 打开”日期和时间设置”
  2. 点击”Internet时间”选项卡
  3. 点击”更改设置”
  4. 在”服务器”输入框中填入NTP服务器IP:192.168.1.100
  5. 点击”立即更新”
  6. 确定保存

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服务器(主备),以保证时间服务的高可用性。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容