Arch-Linux

如何在 Arch Linux 中修復時間

  • January 11, 2017

我目前在桌面上使用 Arch Linux 作為我的作業系統。當我查看我的時間時,現在是 22:38,而時間顯然是 17:08 左右。當我呼叫命令timedatectl時,我得到:

Local time: Wed 2017-01-11 22:37:43 IST
Universal time: Wed 2017-01-11 17:07:43 UTC
   RTC time: Wed 2017-01-11 17:07:41
   Time zone: Asia/Kolkata (IST, +0530)
Network time on: yes
NTP synchronized: no
RTC in local TZ: no

更新

當我執行時sudo systemctl status systemd-timesyncd,我得到:

● systemd-timesyncd.service - Network Time Synchronization
  Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
  Active: active (running) since Wed 2017-01-11 00:49:36 IST; 1 day 1h ago
    Docs: man:systemd-timesyncd.service(8)
Main PID: 31123 (systemd-timesyn)
  Status: "Idle."
   Tasks: 2 (limit: 4915)
  CGroup: /system.slice/systemd-timesyncd.service
          └─31123 /usr/lib/systemd/systemd-timesyncd

Jan 12 01:39:42 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 5.9.78.71:123 (1.arch.pool.ntp.org).
Jan 12 01:39:53 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 192.53.103.108:123 (1.arch.pool.ntp.org).
Jan 12 01:40:03 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 139.59.19.184:123 (2.arch.pool.ntp.org).
Jan 12 01:40:13 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 139.59.45.40:123 (2.arch.pool.ntp.org).
Jan 12 01:40:24 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 123.108.200.124:123 (2.arch.pool.ntp.org).
Jan 12 01:40:34 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 125.62.193.121:123 (2.arch.pool.ntp.org).
Jan 12 01:40:44 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 139.59.45.40:123 (3.arch.pool.ntp.org).
Jan 12 01:40:55 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 123.108.200.124:123 (3.arch.pool.ntp.org).
Jan 12 01:41:05 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 139.59.19.184:123 (3.arch.pool.ntp.org).
Jan 12 01:41:15 sharan-pc systemd-timesyncd[31123]: Timed out waiting for reply from 125.62.193.121:123 (3.arch.pool.ntp.org).

跟踪路由

我也嘗試了 command traceroute -U -p ntp pool.ntp.org,我得到:

traceroute to pool.ntp.org (139.59.19.184), 30 hops max, 60 byte packets
1  10.114.1.1 (10.114.1.1)  1.713 ms  2.020 ms  2.343 ms
2  10.10.2.41 (10.10.2.41)  1.123 ms  2.580 ms  2.836 ms
3  cyberoam.iisc.ac.in (10.10.1.98)  0.553 ms  0.806 ms  0.813 ms
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

我該如何解決?我什至試過了timedatectl set-ntp true。我應該重新啟動以使其生效嗎?

systemd-timesyncd 不需要您重新啟動。我已經在我的系統上測試了 timedatectl。可能需要等待一分鐘才能建立連接。

人時間datectl

地位

顯示系統時鐘和 RTC 的目前設置,包括網路時間同步是否開啟。*注意網路時間同步是否開啟只是反映systemd-timesyncd.service單元是否開啟。*即使此命令顯示狀態為關閉,其他服務仍可能將時鐘與網路同步。

$ timedatectl status
     Local time: Wed 2017-01-11 13:45:07 GMT
 Universal time: Wed 2017-01-11 13:45:07 UTC
       RTC time: Wed 2017-01-11 13:45:07
      Time zone: Europe/London (GMT, +0000)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: yes

timedatectl 聯機幫助頁位於我的系統上。可能是 Fedora 對實現進行了修補,而沒有修補手冊頁。我不知道如何查詢使用了哪個服務;我的系統碰巧使用了chronyd。我想也可以使用 ntp/ntpd。

但是,在您的情況下,我非常有信心 Arch 使用 timesyncd 的上游預設值。

$ systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
  Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; disabled; 
  Active: inactive (dead)
    Docs: man:systemd-timesyncd.service(8)

$ systemctl status chronyd
● chronyd.service - NTP client/server
  Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor pres
  Active: active (running) since Mon 2017-01-09 19:09:39 GMT; 1 day 18h ago
Main PID: 928 (chronyd)
   Tasks: 1 (limit: 4915)
  CGroup: /system.slice/chronyd.service
          └─928 /usr/sbin/chronyd

您可能在狀態下記錄了錯誤。確保以有權systemctl訪問系統日誌的使用者身份執行,例如使用sudo.

與帶有 chronyd 的 chronyd 不同,除了“NTP 同步:否”之外chronyc,沒有記錄的方法可以額外查詢systemd-timesyncd……任何真正的東西。希望它有有用的日誌!

我建議瞄準

  1. pool.ntp.org確定您的系統正在嘗試使用哪個眾所周知的別名。
  2. 測試別名,例如ntpdate -q arch.pool.ntp.org.
  3. traceroute到別名以查看附近是否有阻止訪問的防火牆,即防火牆。與往常一樣,我會ping首先使用它,因為它可以更快地獲得結果(並且不太容易被誤解),或者使用mtrtraceroute 的版本(這也預設為 ICMP traceroute,它避免了多路徑網路的大量輸出)。最終你想要類似的東西traceroute -U -p ntp pool.ntp.org,即使用與 NTP 相同的 UDP 埠。

編輯:此答案的先前版本對 systemd-timesyncd 的預設 NTP 伺服器感到困惑。儘管它們在 中已被註釋掉(禁用)timesyncd.conf,但只有在需要更改伺服器時才需要取消註釋該行。預設值在編譯時內置到 timesyncd 中。這在所有文件中都有提及。

https://www.cyberciti.biz/faq/linux-unix-bsd-is-ntp-client-working/

https://wiki.archlinux.org/index.php/Systemd-timesyncd

引用自:https://unix.stackexchange.com/questions/336566