AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 741678
Accepted
Daniel
Daniel
Asked: 2023-04-02 01:15:29 +0800 CST2023-04-02 01:15:29 +0800 CST 2023-04-02 01:15:29 +0800 CST

为什么我的ntp没有更新?

  • 772

我有一个只有 Debain 控制台的系统。

我刚刚意识到它没有更新它的时钟:

$ date
Mon 10 Aug 20:33:23 BST 2020

$ ntpdate
10 Aug 20:27:45 ntpdate[8029]: no servers can be used, exiting

$ ntpdate-debian
10 Aug 20:28:20 ntpdate[8038]: the NTP socket is in use, exiting

$ sudo ntpdate
10 Aug 20:33:53 ntpdate[8371]: no servers can be used, exiting

$ sudo ntpdate-debian
10 Aug 20:28:20 ntpdate[8038]: the NTP socket is in use, exiting

事实:

  • 由于配置错误,ntpdate 无法工作(请稍后查看我的配置)
  • ntpdate-debin 由于正在使用套接字而无法工作(ntp 服务正在运行)

在我停止“ntp 服务”之后:

$ sudo service ntp stop
$ sudo ntpdate
10 Aug 20:33:53 ntpdate[8371]: no servers can be used, exiting
$ sudo ntpdate-debian
1 Apr 17:25:24 ntpdate[8383]: step time server a.b.c.d offset 83278265.128578 sec
$ sudo service ntp start

可以看到,停止ntp服务后,ntpdate仍然无法运行,但ntpdate-debian终于可以设置正确的日期了。

我怎样才能改变下面的配置让“ntp服务”在后台自动完成它的工作?

driftfile /var/tmp/ntp/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
pool 0.europe.pool.ntp.org iburst
pool 1.europe.pool.ntp.org iburst
pool 2.europe.pool.ntp.org iburst
pool 3.europe.pool.ntp.org iburst
server 0.debian.pool.ntp.org
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery

我的配置有什么问题?它甚至包含“0.debian.pool.ntp.org”,如果我手动运行它:

ntpdate -q 0.debian.pool.ntp.org
debian
  • 2 2 个回答
  • 50 Views

2 个回答

  • Voted
  1. Best Answer
    telcoM
    2023-04-02T07:24:25+08:002023-04-02T07:24:25+08:00

    您没有提到您的 Debian 版本,但它似乎是 Debian 10(buster目前为“oldstable”)或更早版本。自从 NTP 套件的主要开发者(David L. Mills,84 岁)退休后,NTP 代码的地位就停滞不前了。

    到 Debian 11 发布时,两者的最新上游版本都ntpdate相当ntpd陈旧,并且有几个已知的安全漏洞,因此 Debian 11 最终推荐了更新的 NTP 实现chrony。然而,经典的ntpdate和ntpdDebian 11 中仍然可用。

    唯一使用的配置文件/usr/sbin/ntpdate是/etc/ntp.keys. 其他所有内容都必须在命令行或调用/usr/sbin/ntpdate.

    ntpdate-debian是一个读取/etc/default/ntpdate和使用在那里配置的时间服务器的脚本。

    仅适用/etc/ntp/ntp.conf于 NTP 服务(进程ntpd)。

    您的失败ntpdate和sudo ntpdate没有任何其他参数的失败似乎是正常的和预期的,因为ntpdate在这样调用时不知道要使用哪个服务器。

    由于ntpdate和ntpd(= ntp 服务)都尝试使用本地 UDP 端口 123,因此您不能同时运行两者:它必须是其中之一。这就解释了为什么您sudo ntpdate只在停止 NTP 服务后才工作。由于 UDP 端口号小于 1024,因此没有 root 权限就无法使用该端口。

    你没有显示你的内容/etc/default/ntpdate,所以我无法猜测它使用了哪个服务器,但它似乎在你停止 NTP 服务后起作用了。在没有参数的情况下运行ntpdate不会指定使用哪个 NTP 服务器进行同步,即使使用sudo.

    NTP 服务无法同步您的时钟,因为您的系统时间与真实时间不符(几年!)。默认情况下,NTP 服务(= 进程ntpd)有一个安全限制,我认为大约是 +/- 1000 秒:如果系统时间超过该时间,ntpd甚至不会尝试修复它,因为时间很长跳跃可能会导致数据库和其他关心时间的软件出现问题。系统管理员有责任将系统时钟设置为与当前时间大致相似的时间,然后ntpd才能同步它。

    如果ntpd使用-g选项启动,则第一次调整(仅!)可以大于 1000 秒安全限制。如果您的系统使用 Debian 10 的默认设置,/etc/default/ntp应该有NTPD_OPTS='-g',它告诉您ntpd在作为服务启动时使用此选项。如果您有该配置,那么只需停止并重新启动 NTP 服务 ( sudo service ntp stop; sudo service ntp start) 就足以修复您的时间……除非有一些最终的健全性检查ntpd使其拒绝进行超过一年左右的调整。

    ntpdate(如果您运行的是对时间敏感的应用程序,此默认设置实际上会使 Debian 10 的 NTP 服务在重启时有点危险。其他发行版通过提供两个单独的服务来解决此问题:一个在启动早期运行的一次性服务,并且可以使如果需要进行大的调整,然后再ntpd开始,并且仅限于逐步调整;这使得ntpd服务可以随时重新启动更安全。)

    假设您的系统正在使用类似 PC 的 x86 硬件和功能正常的电池供电实时时钟(RTC,也称为“BIOS 时钟”),您也许应该在 after 后执行,以使 RTC 达到正确的sudo hwclock --systohc --utc时间sudo ntpdate-debian。如果 RTC 即使精度很差也能工作,它应该ntpd在系统关闭时将系统时间保持在安全范围内,这样ntpd才能完全同步。

    • 2
  2. ArnabCI
    2023-04-02T07:04:16+08:002023-04-02T07:04:16+08:00

    交叉检查要将服务器添加到的配置文件。

    ntpdate 不使用'ntp.conf'。

    另外,交叉检查您是否已经运行了“ntpd”服务。这可能会造成冲突。

    • 0

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve