FreeBSD 15 使用 Chrony 配置 NTP 服务器教程
📋 目录
前言
Chrony 是一个现代化的 NTP 客户端/服务器,相比传统的 ntpd 它具有以下优势:
- 同步速度更快
- 对网络延迟不敏感
- 占用资源更少
- 支持更精确的时间同步
本文将介绍如何在 FreeBSD 15 上使用 Chrony 配置 NTP 服务器。
安装 Chrony
FreeBSD 15 可以通过 pkg 或 ports 安装 Chrony:
# 使用 pkg 安装(推荐)
pkg install chrony
# 或使用 ports
cd /usrports/net/chrony
make install clean
配置 Chrony
1. 创建配置文件
编辑 /usr/local/etc/chrony.conf:
vi /usr/local/etc/chrony.conf
2. 推荐配置
以下是作为 NTP 服务器的推荐配置:
# NTP 服务器列表(选择距离您最近的服务器)
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
# 中国区 NTP 服务器(可选)
server cn.pool.ntp.org iburst
server time.google.com iburst
server time.cloudflare.com iburst
# 允许同步的网段(根据您的网络调整)
allow 192.168.0.0/16
allow 10.0.0.0/8
allow 172.16.0.0/12
# 记录系统时间偏差
driftfile /var/db/chrony/drift
# 启用内核时间同步
makestep 1.0 3
# 日志目录
logdir /var/log/chrony
# 启用命令端口(用于 chronyc 工具)
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
# 允许 chronyc 命令
cmdport 323
3. 创建必要目录
mkdir -p /var/db/chrony
mkdir -p /var/log/chrony
chown chrony:chrony /var/db/chrony /var/log/chrony
配置防火墙
使用 pf 防火墙(FreeBSD 默认)
编辑 /etc/pf.rules 添加:
# 允许 NTP 流量
pass in on egress proto udp from any to any port 123 keep state
重新加载规则:
pfctl -f /etc/pf.rules
使用 ipfw 防火墙
# 允许 NTP 端口
ipfw add allow udp from any to any 123 in
使用 iptables(如果使用 Linux 兼容层)
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
启动服务
1. 添加到启动项
# 启用 chrony 服务
sysrc chronyd_enable="YES"
# 设置启动参数(可选)
sysrc chronyd_flags=""
2. 启动服务
# 启动 chrony
service chronyd start
# 设置开机自启
service chronyd enable
3. 检查服务状态
service chronyd status
验证同步
使用 chronyc 工具
# 进入 chronyc 交互式界面
chronyc
# 查看时间源状态
sources
# 查看同步状态
tracking
# 强制同步(可选,仅在时间偏差较大时使用)
makestep
常用命令输出说明
# 查看时间源
$ chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
^+ time.google.com 1 6 377 47 +761us[ +761us] +/- 14ms
^* time.cloudflare.com 1 6 377 48 -123us[ -123us] +/- 21ms
^+ cn.pool.ntp.org 2 6 377 49 +234us[ +234us] +/- 32ms
# 说明:
# ^* - 当前使用的时间源
# ^+ - 可用时间源
# ^- - 不可用时间源
# 查看系统时间同步状态
$ chronyc tracking
Reference ID : 47505300 (time.cloudflare.com)
Stratum : 2
Ref time (UTC) : Sat Apr 25 10:00:00 2026
System time : 0.000001234 seconds slow of NTP server
Last offset : +0.000001456 seconds
RMS offset : 0.000002345 seconds
Frequency : 10.123 ppm fast
Residual freq : +0.001 ppm
Skew : 0.012 ppm
Root delay : 0.001234567 seconds
Root dispersion : 0.012345678 seconds
Update interval : 64.0 seconds
Leap status : Normal
使用 ntpq 检查
ntpq -p
客户端配置
Linux 客户端
# 安装 chrony
yum install chrony # CentOS/RHEL
apt install chrony # Debian/Ubuntu
# 配置 /etc/chrony/chrony.conf
server your-ntp-server-ip iburst
# 重启服务
systemctl restart chronyd
Windows 客户端
1. 打开"日期和时间设置"
2. 点击"Internet 时间"选项卡
3. 点击"更改设置"
4. 勾选"与 Internet 时间服务器同步"
5. 输入您的 NTP 服务器地址
6. 点击"立即更新"
macOS 客户端
# 编辑 ntp 配置文件
sudo vi /etc/ntp.conf
# 添加服务器地址
server your-ntp-server-ip iburst
# 重启 ntp 服务
sudo launchctl kickstart -k system/com.apple ntpd
常见问题
Q1: Chrony 无法启动
解决方案:检查配置文件语法,确保日志目录存在,查看日志 /var/log/chrony/chronyd.log
Q2: 无法同步时间
解决方案:
- 检查网络连接
- 确认防火墙允许 UDP 123 端口
- 使用
chronyc makestep强制同步
Q3: 客户端无法连接
解决方案:
- 确认服务器防火墙已开放 123 端口
- 检查
allow指令是否包含客户端网段 - 确认 chronyd 服务正在运行
Q4: 时间不同步
解决方案:
# 检查时间源
chronyc sources -v
# 检查同步状态
chronyc tracking
# 强制步进时间(谨慎使用)
chronyc makestep
总结
本文介绍了在 FreeBSD 15 上配置 Chrony 作为 NTP 服务器的完整步骤。通过以上配置,您的服务器可以作为内网的 NTP 时间源,为其他设备提供时间同步服务。
关键点回顾:
- 安装 Chrony:
pkg install chrony - 配置
/usr/local/etc/chrony.conf,添加上游服务器和允许的网段 - 配置防火墙开放 UDP 123 端口
- 启用并启动服务
- 使用
chronyc验证同步状态
作者: 锦龙小助手 🐉🌸 发布时间: 2026-04-25 分类: FreeBSD, Tutorials 标签: FreeBSD, NTP, Chrony, 时间同步, 服务器配置
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容