ntpd使用

ntpd就是ntp daemon。是一个系统的后台进程(system daemon),用来同步本地系统时钟和远程NTP时间服务器的时间,或者其他参考时间源。
该程序实现了全部的NTP4协议,并对版本3,2,1,进行了兼容。
的定义该程序可以工作在client/server模式,symmetric模式,broadcast模式。
ntpd通常需要一个配置文件/etc/ntp.conf,ntpd后面的选项和命令可以写在该配置文件中。通常,ntpd启动后会读取ntp.conf文件。也可以在ntpd后面接相应指令,让ntpd不考虑该配置文件。
ntpd可以自动发现远程服务器并自动配置。
nptd通常连续工作,隔一段时间调整一次系统时间。也可以在调整完系统时间后自动退出,如果没有收到NTP服务器的回复,将会超时退出。


ntpd选项:

-4:仅使用IPv4域名
-6:仅使用IPv6域名

-t key/trustedkey key : 添加一个秘钥到信任秘钥列表,可重复添加
-a/enable auth:对广播/多播客户端需要密码认证(默认)
-A/disable auth : 不对广播/多播客户端进行密码认证(不推荐)
-b:允许客户端与广播服务器同步
-r broadcastdelay:指定广播或多播服务器到客户端的默认的传播延迟。只有在不能自动计算该延迟时才使用

-c conffile : 指定配置文件(默认配置文件在/etc/ntp.conf)
-f drift_file/driftfile drift_file : 指定时差记录文件
-k key_file/keys key_file : 指定密钥文件
-l log_file/logfile log_file : 指定日志文件
-p pid_file/pidfile pid_file : 指定记录ntpd进程ID的文件
-s stats_dir/statsdir stats_dir:指定统计文件

-q : ntpd一旦与服务器同步后即退出,该选项可以替代ntpdate程序。可与-g和-x选项组合使用。注意:该选项禁止校准内核时间。
-m:一旦系统时钟同步后,在nDNS上注册为可用服务器
-g:通常如果系统时间与服务器时间差别太大(默认是1000秒),ntpd则会自动退出,并记录到日志文件。该选项允许不理会该门限。但该命令只能有效一次,如果第一次同步后,客户端的时差依然超过门限,则ntpd会自动退出,并记录在日志文件。该命令可与-q和-x选项组合使用。
-x : 通常,如果客户端时间偏差比一个门限值小(通常为128ms),则时间会慢慢精调(slew),当比该门限大时,时间会立刻调整(step)。该指令将该门限设置成600s。这个门限有利于手动调整时间,但如果要用slew来调整该误差,则需要大概14天,因为UNIX调整时间的速度时0.5s/s。注意:该选项禁止校准内核时间。

-n : 不创建进程
-N:ntpd运行在最高优先级
-M:使用timeBeginPeriod提高调度的优先级到最高(1ms),该选项仅在windows系统有效。

-d : 不进入后台进程,工作在debug模式。允许打印调试信息,可以重复使用。类似于提高调试信息输出量的等级
-D level:指定调试信息输出量的等级

-U interface update interval : 接口列表扫描更新频率。设置成0为不动态更新,默认为5分钟
-v variable/-V variable:添加一个系统变量

-i jail_dir : chroot到jail_dir目录,这意味着ntpd启动后放弃root权限。只有当系统允许以非root权限运行ntp服务时该选项有效。需要配合-u选项使用
-u user[:group]:指定运行在特定用户或组。只有当系统允许以非root权限运行ntp服务时该选项有效。目前,该选项仅在NetBSD 系统有效(需要在配置时使用 –enable-clockctl) 和 Linux系统有效 (需要在配置时使用 –enable-linuxcaps)。

–usepcc:为QueryPerformanceCounter调整处理器周期计数(PCC——processor cycle counter)。只有当PCC频率固定时才可使用该指令。
–pccfreq frequency:使用给定的frequency(Hz)值,为QueryPerformanceCounter调整处理器周期计数(PCC——processor cycle counter)。该选项仅用于不使用PCC实现QueryPerformanceCounter且有固定PCC频率的操作系统。给定的frequency必须与真实频率相差小于0.5%。建议优先使用–usepcc指令。对于x86架构的处理器,PCC也叫做RDTSC,是一条用于获取当前PCC值的汇编指令。

-I [address | interface name]:该命令已废弃
-L:该命令已经废弃


用到的文件及其对应命令

FileDefaultOptionOption
configuration file/etc/ntp.conf-cconffile
frequency filenone-fdriftfile
leapseconds filenoneleapfile
process ID filenone-ppidfile
log filesystem log-llogfile
include filenonenoneincludefile
statistics path/var/NTP-sstatsdir
keys path/usr/local/etcnonekeysdir
<think> 我们参考了提供的引用内容,特别是引用[1]和[2]中关于ntpdntpdate的区别以及ntpd使用注意事项。用户现在想了解如何使用ntpd进行时间校准,因此我们需要详细解释ntpd的配置和使用方法。 根据引用[1]和[2]:ntpd是一个守护进程,它通过平滑调整系统时间来同步时间,适合长期运行;而ntpdate是一个一次性同步工具,会立即调整时间,但可能造成时间跳变,且不能与ntpd同时运行。 因此,我们将介绍如何配置和使用ntpd进行时间校准,包括安装、配置、启动服务和检查状态等步骤。 注意:在配置ntpd之前,需要确保没有其他NTP服务(如ntpdate、chronyd等)在运行,以免造成端口冲突(如之前用户遇到的问题)。 </think> ### 使用 ntpd 进行时间校准的方法 #### 🔧 1. 安装 ntpd 服务 ```bash # Ubuntu/Debian 系统 sudo apt-get update sudo apt-get install ntp # CentOS/RHEL 系统 sudo yum install ntp ``` #### ⚙️ 2. 配置 NTP 服务器 编辑配置文件 `/etc/ntp.conf`: ```bash sudo nano /etc/ntp.conf ``` 添加可靠的 NTP 服务器(示例): ```conf server ntp.aliyun.com iburst server cn.pool.ntp.org iburst server time.google.com iburst ``` `iburst` 参数表示在初始同步时发送多个数据包加速同步[^1] #### 🚀 3. 启动并启用 ntpd ```bash # 启动服务 sudo systemctl start ntpd # 设置开机自启 sudo systemctl enable ntpd # 检查服务状态 sudo systemctl status ntpd ``` #### ⏱ 4. 强制立即同步(可选) ```bash # 手动触发同步(无需停止服务) sudo ntpdate -u cn.pool.ntp.org # 或使用 ntpd 内置命令 sudo ntpd -gq ``` `-g` 允许大时间差调整,`-q` 表示单次执行后退出[^2] #### 🔍 5. 验证同步状态 ```bash # 查看同步状态 ntpq -pn # 监控同步过程 watch ntpq -p ``` 输出示例: ``` remote refid st t when poll reach delay offset jitter ============================================================================== *203.107.6.88 100.107.25.114 2 u 256 1024 377 35.927 -0.985 2.134 +85.199.214.101 193.79.237.14 2 u 264 1024 377 48.872 +1.234 3.456 ``` `*` 表示当前使用的时间源,`offset` 显示时间偏差(毫秒)[^4] #### ⚠️ 注意事项 1. 初始时间差不应超过 1000 秒(约17分钟),否则需先手动调整大致时间[^3] 2. ntpd 采用平滑调整策略,完全同步可能需要几分钟到几小时 $$ \Delta t = \frac{\text{offset}}{0.5 \text{ppm}} \quad (\text{ppm: 时钟漂移率}) $$ 3. 防火墙需开放 UDP 123 端口: ```bash sudo ufw allow 123/udp ``` #### 💡 最佳实践 - 生产环境优先使用 ntpd 而非 ntpdate,避免时间跳变[^2] - 配置多个时间源提高可靠性 - 定期检查 `/var/log/syslog` 中的 ntpd 日志 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值