当我查询 NTP 守护进程的状态时,ntpdc -c sysinfo
我得到以下输出:
system peer: 0.0.0.0
system peer mode: unspec
leap indicator: 11
stratum: 16
precision: -20
root distance: 0.00000 s
root dispersion: 12.77106 s
reference ID: [73.78.73.84]
reference time: 00000000.00000000 Thu, Feb 7 2036 7:28:16.000
system flags: auth monitor ntp kernel stats
jitter: 0.000000 s
stability: 0.000 ppm
broadcastdelay: 0.000000 s
authdelay: 0.000000 s
Run Code Online (Sandbox Code Playgroud)
这表示 NTP 同步失败。但是系统时间精确到 1 秒精度。当我在没有网络连接的情况下运行我的系统时,系统时间会偏离大约 10 秒。
这种行为表明系统有另一种同步时间的方式。我意识到还有systemd-timesyncd.service
(配置文件位于/etc/systemd/timesyncd.conf
)并timedatectl status
给了我正确的时间:
Local time: Thu 2016-08-25 10:55:23 CEST …
Run Code Online (Sandbox Code Playgroud) 不知何故,但不是完全建立在旧问题“ntpd vs. systemd-timesyncd - 如何实现可靠的 NTP 同步?”的基础上。,我想问一下 chrony 和 systemd-timesyncd 在 NTP客户端方面的区别。
我知道 systemd-timesyncd 是一个或多或少的最小 ntp 客户端实现,而 chrony 是一个完整的 NTP 守护进程解决方案,恰好包含一个 NTP 客户端。
ubuntu Bionic Beaver 发行说明声明如下:
对于简单的时间同步需求,基本系统已经带有 systemd-timesyncd。Chrony 仅需要充当时间服务器,或者如果您希望宣传的更准确和更高效的同步。
我喜欢使用最小的预装工具来完成这项工作的想法,我很确定 systemd-timesyncd 可以为我的用例完成这项工作,但我仍然很好奇:
有很多教程解释了如何设置dhcpd
服务器,关于向 dhcp 客户端提供 ntp 建议,我一直认为ntp
配置是自动执行的。最近我开始在我的本地网络中看到时钟漂移,所以我认为这是一个错误的假设。所以我开始研究如何最小化 ntp 客户端配置,前提是已经ntp-server
通过dhcpd
.
除了这个 Ubuntu 特定的帮助教程https://help.ubuntu.com/community/UbuntuTime之外,我找不到太多东西。即使在这里(请参阅“故障排除 -> 它使用哪个配置文件?”下的段落),信息也很少,但它表示如果/etc/ntp.conf.dhcp
找到一个文件,它将被使用。首先,作者在这里所指的实际位置与在 中/var/lib/ntp/ntp.conf.dhcp
观察到的一样/etc/init.d/ntp
,但无论如何该文件的存在并不能保证 ntp 会从dhclient
. 因此,我必须为我的本地 ntp 服务器显式添加该server
子句ntp.conf.dhcp
。但在这种情况下,我为什么还要在dhcpd
服务器上设置 ntp 设置?
这似乎违反直觉,即设置一次 ntp 设置(即在服务器上)并让dhcpd
服务器将信息委托给客户端。如何最小化(如果不能完全避免)ntp 的客户端配置。或者,我如何ntp
通过dhclient
.
是否有适合所有 linux 发行版的 cli 解决方案?
我假设每个客户都应该有 的可执行文件ntpd
,但我不知道如何从那里开始。
谢谢
编辑:手动运行时 ubuntu 客户端详细输出dhclient
:
sudo dhclient -1 -d -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
Internet Systems …
Run Code Online (Sandbox Code Playgroud) 这个问题以本地化的方式出现了很多次,这个问题旨在提供使用 NTP 同步系统时钟的首选/最佳方法。
该解决方案应正确处理多个问题,例如:
在时钟有较大偏差的情况下快速校正启动时间。
提供一种配置,以保护和/或纠正时钟有时会随着时间的推移出现较大偏差的情况。
一个强大的解决方案,可以在出现某些问题时快速处理和同步时间,例如:“启动期间无法访问时间服务器”或“启动期间无法访问互联网”。
理想的解决方案是能够处理所有这些的单个NTP 配置文件。
许多将提供“终极”解决方案的部分散布在 U&L 网站上,涉及以下问题:
肯定会有其他的,但这些是我所看到的,这些是我认为相关的。
我有一台运行最新 Debian 7.5 (wheezy) 安装的家庭服务器。
我刚刚发现服务器将其内部时钟设置为未来± 3 分钟。
我知道我可以使用 NTP 将 Debian(和主板内部时钟)与 NTP 同步,所以我按照法语Debian Wiki(英文页面不太详细)中描述的步骤安装了 NTP 。
我使用以下命令来同步内部时钟:
ntpdate -B -q 192.168.0.254
Run Code Online (Sandbox Code Playgroud)
时钟调整成功。但这是一个临时解决方案,所以我安装了NTP守护进程并在/etc/ntp.conf
文件中添加了一个本地服务器:
# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
# pick a different set every time it starts up. Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
# added
server 192.168.0.254
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst
Run Code Online (Sandbox Code Playgroud)
这是正确的解决方案吗?事实上,我很惊讶地发现ntp
守护程序尚未安装。我想知道 Debian …
在我新安装的 Ubuntu 12.04 机器上,安装ntp
和slapd
安装后,以下消息会/var/log/syslog
定期出现:
Feb 23 18:54:07 my-host kernel: [ 24.610703] type=1400 audit(1393181647.872:15): apparmor="DENIED" operation="open" parent=1 profile="/usr/sbin/ntpd" name="/etc/ldap/ldap.conf" pid=1526 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
Run Code Online (Sandbox Code Playgroud)
我已经搜索过,但找不到关于可能导致这些消息的原因以及如何解决问题的任何信息。任何人都可以阐明导致这种情况的原因以及如何处理吗?
所以大学 IT 安全团队和我一直在不停地讨论这个问题……任何人对此都有任何想法:
我最近为我的实验室在一台专用计算机(英特尔 Avoton C2550 处理器——如果需要,很乐意提供更多硬件信息,但我认为没有必要)上运行 Debian 8.6 设置了一个小型文件服务器。Debian 安装没有任何问题,当时我还安装了 Samba、NTP、ZFS 和 python。事情似乎运行良好,所以我让它在实验室的角落里坐了几个星期。
大约两周前,我收到了来自 IT 团队的一封电子邮件,说我的服务器已被“入侵”并且容易被用于 NTP 放大/DDoS 攻击(使用 CVE-2013-5211 的 NTP 放大攻击,如https 所述: //www.us-cert.gov/ncas/alerts/TA14-013A)。他们指出的标志是端口 123 上的大量 NTPv2 流量。奇怪的是,他们确定来自 ( *.*.*.233
) 的 IP 地址与我的服务器配置并通过 ifconfig ( *.*.*.77
)报告的 IP 地址不同。尽管如此,一些基本的故障排除表明我的计算机确实在端口 123 上生成了此流量(如 tcpdump 所揭示的)。
这就是奇怪的开始。我首先浏览了针对 CVE-2013-5211 推荐的“修复”(更新 NTP 过去版本 4.2.7 以及禁用 monlist 功能)。两者都没有阻止交通流量。然后我尝试通过 IP 表阻止 UDP 123 端口:
$ /sbin/iptables -A INPUT -o eth0 -p udp --destination-port 123 -j DROP
$ /sbin/iptables -A OUTPUT -o eth0 …
Run Code Online (Sandbox Code Playgroud) 我有一个没有运行 ntpd 的系统,我正在尝试使用 ntpdate 更新时钟。该系统是一个看起来基于 CentOS 6 的设备。
当我运行时ntpdate 0.pool.ntp.org
,我得到:
8 Sep 17:52:05 ntpdate[7445]: no server suitable for synchronization found
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时ntpdate -d 0.pool.ntp.org
,我得到:
8 Sep 17:55:14 ntpdate[9499]: ntpdate 4.2.2p1@1.1570-o Fri Nov 18 13:21:21 UTC 2011 (1)
Looking for host 0.pool.ntp.org and service ntp
host found : 4.53.160.75
transmit(4.53.160.75)
receive(4.53.160.75)
transmit(4.53.160.75)
receive(4.53.160.75)
transmit(4.53.160.75)
receive(4.53.160.75)
transmit(4.53.160.75)
receive(4.53.160.75)
transmit(4.53.160.75)
transmit(64.16.214.60)
receive(64.16.214.60)
transmit(64.16.214.60)
receive(64.16.214.60)
transmit(64.16.214.60)
receive(64.16.214.60)
transmit(64.16.214.60)
receive(64.16.214.60)
transmit(64.16.214.60)
transmit(54.236.224.171)
receive(54.236.224.171)
transmit(54.236.224.171)
receive(54.236.224.171)
transmit(54.236.224.171)
receive(54.236.224.171)
transmit(54.236.224.171)
receive(54.236.224.171)
transmit(54.236.224.171)
transmit(50.22.155.163)
receive(50.22.155.163) …
Run Code Online (Sandbox Code Playgroud) 我最近设置了一个运行 NTPD 的 CentOS 6.x 系统,当我运行时遇到此错误ntpq -pn
:
$ ntpq -pn
ntpq: read: Connection refused
Run Code Online (Sandbox Code Playgroud)
我知道ntpd
通过以下ntpstat
命令启动并运行:
$ ntpstat
synchronised to NTP server (204.11.201.12) at stratum 3
time correct to within 71 ms
polling server every 256 s
Run Code Online (Sandbox Code Playgroud)
为什么ntpq -pn
不工作?
chronyd
和 和有ntpd
什么区别?
我知道ntpd
可以逐渐调整时间,使其逐渐收敛到参考时钟。这可以做到chrony
吗?