我有一台运行最新 Debian 7.5(喘息)安装的家庭服务器。我刚刚发现服务器的内部时钟设置为 ± 3 分钟将来。
我知道我可以使用 NTP 将 Debian(以及主板内部时钟)与 NTP 同步,因此我按照 french 中描述的步骤安装了 NTPDebian 维基(这英文页面不太详细)。
我使用以下命令来同步内部时钟:
ntpdate -B -q 192.168.0.254
时钟已成功调整。但这是一个临时解决方案,因此我安装了 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
这是正确的解决方案吗?事实上,我惊讶地发现ntp
守护进程尚未安装。我想知道 Debian 的默认安装是否安装了一个守护进程来保持内部时钟同步。所有 Debian 安装都会时移到管理员安装为止吗ntpd
?
请告诉我ntp
守护进程不会毫无用处,因为 Debian 有内置的同步机制。
答案1
如果您希望时钟同步,Debian 希望您自己安装 ntp。几乎您所要做的就是apt-get install ntp
。默认安装(没有任何任务)相当少。
我相信 GNOME 桌面任务至少会默认安装它(以及许多其他软件包)。不确定其他桌面是否也会如此。
默认情况下没有安装和运行任何其他时间同步方法。
答案2
对于 Debian GNU/Linux 10 (Buster) 和下一个主要版本:
(systemd-timesyncd
又名timesyncd
:SystemD-TimeSyncD)是ntpd
.
在 Debian 中查看 TimeSyncD NTP 守护进程的运行状态信息:
cmd:systemctl status systemd-timesyncd
你可能会注意到/看到,Status
信息中的行显示为“闲置的“。
如果Active
信息中的行未显示”积极的(跑步)”,然后启动它:
cmd:systemctl start systemd-timesyncd
如果您尚未启用“SYSTEMD-TIMESYNCD”,请启用并启动它:
cmd: systemctl enable systemd-timesyncd.service
cmd:systemctl start systemd-timesyncd.service
如果 SystemD-TimeSyncD 未启用,则您可能必须删除 NTPD(如果之前已安装):
cmd:apt purge ntp
这个新的systemd-timesyncd
守护进程还可以执行 SNTP 客户端功能。
问题:
在 Debian 计算机中查看本地时间时,本地时间不正确:
cmd: date
View status of系统时钟同步(SCS),运行:
任一,cmd:timedatectl
或,cmd:timedatectl status
您可能会注意到/看到上面的以下输出时间日期控件命令:SCS 不工作或时间不同步,即:Debian 计算机未获取、更新和显示正确的时间信息:
系统时钟同步:不
NTP服务:积极的
查找靠近您计算机位置的 NTP 服务器:
时间信息提供服务在 NTP 服务器中运行。
如果您的 Debian 计算机位于美国,或者您想在美国使用 NTP 服务器,请访问此站点:
https://tf.nist.gov/tf-cgi/servers.cgi
选择至少两个地理上更接近您的 Debian 计算机物理地理位置的 NTP 服务器。
选择 IP 地址的 IPv4 类型。如果您的 Debian 计算机仅使用 IPv6 或也使用 IPv6,则选择 IP 地址的 IPv6 类型。
更新“TIMESYNCD.CONF”:
命令:nano /etc/systemd/timesyncd.conf
然后添加以下3行,如果不存在时间同步配置文件:
[时间]
NTP=132.163.96.1
FallbackNTP=132.163.96.2,132.163.96.3,132.163.96.4,132.163.96.6
在“NTP=”行中仅指定一台服务器。
在“FallbackNTP=”行中指定多个服务器。
在上面我显示的是来自“美国科罗拉多州”的 NTP 服务器,因为我的 Debian 计算机的位置位于美国加利福尼亚州,靠近美国科罗拉多州。
如果您的计算机/设备的 DNS 客户端(或 DNS 服务器/守护程序)启动后TimeSyncD NTP 客户端(或 NTP 服务器/守护进程),然后在“NTP=”或“FallbackNTP=”行中您应该使用 NTP 服务器的 IP 地址。
但是,如果您的计算机/设备的 DNS 客户端(或 DNS 服务器/守护进程)启动前TimeSyncD NTP 客户端(或 NTP 服务器/守护进程),然后在“NTP=”或“FallbackNTP=”行中,您可以使用 NTP 服务器的主机名(又名:服务器名称),例如:time-a-b.nist.gov
而不是它的 IP 地址132.163.96.1
。
另请注意,即使您的计算机/设备的 DNS 客户端(或 DNS 服务器/守护进程)启动后TimeSyncD NTP 客户端(或 NTP 服务器/守护进程)您仍然可以在“NTP=”或“FallbackNTP=”行中使用 NTP 服务器的主机名,因为 TimeSyncD NTP 客户端和本地 NTP 服务器/守护进程将再次尝试获取/同步时间,所以第二次或下一次就会成功。
如果您的 Debian 计算机/设备有/没有任何 DNS 客户端(或 DNS 服务器/守护进程),那么您必须使用 NTP 服务器的 IP 地址。
您必须更改上面显示的 NTP 服务器,基于您的 Debian 计算机的实际位置。
例如:如果您的 Debian 计算机位于欧洲,
则转到此处:
https://www.pool.ntp.org/zone/europe
上述网站还列出了其他位置的其他 NTP 服务器。
由于全球许多服务器、常规台式机/笔记本电脑等客户端计算机、网络设备、智能手机等都在使用 NTP 服务器,
因此 NTP 服务器经常过载,
因此 NTP 服务器可能会延迟或需要时间才能完成对您的计算机/的响应设备的查询。
请向 NTP 服务器运营商捐赠/贡献,以便他们能够负担得起更快/更好的服务器。
激活新设置:
创建或更新timesyncd.conf
文件后,运行以下命令:
cmd:(timedatectl show-timesync --all
验证新的 NTP 配置)
cmd:(systemctl restart systemd-timesyncd
重新启动本地 TimeSyncD NTP 守护程序)
cmd:(timedatectl set-ntp true
启用并启动 NTP 使用)
现在您可以查看系统时钟同步的状态,运行以下任一命令:
cmd:timedatectl
或者timedatectl status
您应该看到以下行:
系统时钟同步:是的
NTP服务:积极的
cmd:(timedatectl timesync-status
查看TimeSyncD NTP服务连接信息)
如果运行该命令systemctl status systemd-timesyncd
,它应该显示“...首次同步到时间服务器...”。
运行date
命令,它应该显示正确的时间,这次:
cmd:date
显示的时间应该与正确的时间匹配,并且它将基于您预先选择的时区。
(有时时间服务器可能会延迟发送正确的时间响应,因此请耐心等待)。
完毕。
其他设置/信息:
cmd: timedatectl list-timezones
(查看时区)
cmd: timedatectl set-timezone America/Los_Angeles
(当您想要将时区设置为 时PST
,即 UTC-08:00,请执行此操作)
cmd: timedatectl set-timezone UTC
(当您要将时区设置为 时,请执行此操作UTC
。此UTC
时间在所有时间中始终相同所有时间的位置,从此时开始,通过添加或减去特定数字来计算每个其他时区UTC
)。
我如何查看或获取 NTP 服务器(又名:主机名)或 NTP 池服务器使用的实际 IP 地址?
命令:nslookup 1.europe.pool.ntp.org
如果您启用了防火墙(又名:nftables、iptables 等),那么您应该在 NTP 相关的 UDP 规则中指定 NTP 服务器的(多个)IP 地址,以减少通过 NTP 的滥用。
答案3
显然,使用 SystemD,涉及的不同基础设施timedatectl
已经就位(尽管旧方法仍然有效)。
看看 Arch 的人是怎么写的:https://wiki.archlinux.org/index.php?title=Systemd-timesyncd&oldid=797636#:~:text=systemd-timesyncd%20is,clock%20to%20it