首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两台未连接到因特网的Ubuntu机器的同步时间和日期

两台未连接到因特网的Ubuntu机器的同步时间和日期
EN

Ask Ubuntu用户
提问于 2023-04-25 12:55:36
回答 4查看 64关注 0票数 0

我有两台机器

  1. 带有ip 192.168.0.2的A机
  2. 指定IP 192.168.0.3的机器B

它们都连接到一个本地网络,我想将机器A的日期和时间设置为与机器B的日期和时间相匹配。

对于类似的问题,我将使用答案中提供的解决方案。

代码语言:javascript
复制
sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

然而,这只有在我有互联网连接的情况下才能起作用。

在不使用互联网的情况下,同步两个Ubuntu操作系统的时间和日期的命令是什么?

候选人1感谢“Joe”的输入。如何在机器B上设置一个get服务器,从机器A查询它,并从响应中获取时间和日期?它看起来很清晰..。有更简单的解决办法吗?

候选人2,这要感谢@马提戈。在本地网络上设置NTP服务器。检查NTP文档以实现此解决方案

EN

回答 4

Ask Ubuntu用户

回答已采纳

发布于 2023-04-26 20:33:00

好吧,谢谢你们提供的宝贵信息。经过一些研究和测试,这里是我正在使用的解决方案。

如规范所述,这里

自从Ubuntu16.04以来,timedatectl/timesyncd (它们是systemd的一部分)取代了大部分ntpdate/ntp。... ntpdate现在被认为是过时的,支持timedatectl (或chrony),并且在默认情况下不再安装。timesyncd通常会做正确的事情,保持时间同步,而时间同步将有助于处理更复杂的情况。

所以我试了一下。我还检查了:

  1. 此链接这里
  2. 堆栈问题
  3. 红帽页面
  4. 这个教程

长话短说..。

机器A-配置为NTP服务器

代码语言:javascript
复制
sudo apt update && sudo apt upgrade
sudo apt install chrony
sudo vim /etc/chrony/chrony.conf

配置NTP服务器,确保添加local stratum 10并允许192.168.0.0/24强制服务器正常工作,即使该服务器与internet断开连接,并且允许此网络上的客户端连接到我们的时间同步服务器。

代码语言:javascript
复制
confdir /etc/chrony/conf.d
pool ntp.ubuntu.com        iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
allow 192.168.0.0/24
sourcedir /run/chrony-dhcp
sourcedir /etc/chrony/sources.d
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
ntsdumpdir /var/lib/chrony
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
leapsectz right/UTC

重新启动时间同步服务,检查正在运行的服务并启用它在启动时启动。

代码语言:javascript
复制
sudo systemctl restart chrony
sudo systemctl status chrony
CTRL+C
sudo systemctl enable chrony

机器B-配置为同步客户端

将日期和时间与服务器池同步,并设置192.168.0.1或以任何IP作为首选服务器。

代码语言:javascript
复制
sudo apt update && sudo apt upgrade
sudo apt install chrony
sudo vim /etc/chrony/chrony.conf

将本地NTP服务器添加到池中。

代码语言:javascript
复制
pool 192.168.0.1 iburst prefer
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
log measurements statistics tracking
maxupdateskew 100.0
rtcsync
makestep 1.0 3

重新启动,检查服务并在启动时启用它

代码语言:javascript
复制
sudo systemctl restart chrony
sudo systemctl status chrony
CTRL+C
sudo systemctl enable chrony

最后,检查它是否从正确的源获取更新。

代码语言:javascript
复制
chronyc tracking
chronyc sources

结论

摇滚乐,继续推!

我将进行一个简短的测试,并将更新这篇文章与任何我遇到的问题。

票数 0
EN

Ask Ubuntu用户

发布于 2023-04-25 13:28:17

如果有internet连接,则可以输入在wget命令中给定的date命令,并确保它生成如下所示的时间字符串:

代码语言:javascript
复制
25 Apr 2023 13:20:23Z

这样做的方法是从HTTP头中获取日期,去掉单词" date :",并在末尾加一个Z。因此,您可以使用以下格式手动设置时间:

代码语言:javascript
复制
sudo date -s "25 Apr 2023 13:20:23Z" 

您可能需要在您的地区中将"Apr“翻译成一个缩写的月份名称。

票数 2
EN

Ask Ubuntu用户

发布于 2023-04-25 19:39:10

在一台机器上设置一个NTP服务器(据我所知,当前的Ubuntu版本使用chronyd作为NTP服务器),而在另一台机器上使用NTP客户机(chronyc )来同步到服务器机器似乎是最好的方法。

另一种选择是使用“好老”日间议定书。您需要在服务器机器上安装xinetd (您将同步到的机器),并在其配置中启用日间服务(这里是关于如何启用它的一些信息)。日间服务以字符串的形式返回当前日期和时间,因此您可能需要在客户端机器上编写一些脚本(您想要同步到客户端机器)来检索该信息并根据它设置时钟(我不知道有任何现成的客户机用于日间协议)。但使用NTP似乎更好..。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1465204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档