补充说明
rdate 使用古老的 RFC 868 time 协议(TCP 37 端口)向远程主机查询时间,可选择直接把本机系统时间设置为返回值。它常见于 busybox 和精简系统,完整版多来自 openrdate 包;在 Debian/Ubuntu 上包名为 rdate。
该协议只传输秒级时间且没有认证,精度和安全性都不如 NTP。现代系统应优先使用 chrony、systemd-timesyncd 或 ntpd。只有在没有 NTP 客户端、或者需要从特定旧设备取时的嵌入式环境里,rdate 才有存在价值。
-p 仅打印远程时间,普通用户即可执行;-s 设置系统时间,需要 root。设置前应确认时区配置正确(timedatectl),否则会出现整小时偏差。远程主机必须运行 time 服务,很多防火墙默认封禁 37 端口。
语法
rdate [-p] [-s] [-t 超时] 主机...
选项
-p:打印远程主机返回的时间,不修改本机-s:把本机系统时间设置为远程时间(需 root)-t <秒>:连接超时时间-v:输出详细信息
实例
# 只查询远程时间,不改动本机
rdate -p time.example.com
# 以 root 身份同步系统时间
sudo rdate -s time.example.com
# 查看设置后的时间与时区
date
timedatectl
# 现代替代:一次性校时
sudo chronyc makestep
# 或启用 systemd 的网络时间同步
sudo timedatectl set-ntp true