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