Ubuntu ทำเวลาให้ตรงกันอย่างไรโดยไม่ใช้ ntp


39

ด้วยการคลิก "การตั้งค่าระบบ -> เวลาและวันที่ -> โดยอัตโนมัติจากอินเทอร์เน็ต" ฉันสามารถซิงโครไนซ์เวลาจากอินเทอร์เน็ต

อย่างไรก็ตามฉันพบว่าฉันไม่มีntpddaemon (ยังไม่ได้ติดตั้ง) ดังนั้นการซิงโครไนซ์ทำงานอย่างไร


6
ขอให้สังเกตว่าส่วนต่อประสานนั้นคือ IMHO ทำให้เข้าใจผิด มันควรจะเป็นปุ่มและไม่ใช่สวิตช์เพราะมันเป็นการกระทำแบบ one-shot โดยใช้ntpdate--- คุณต้องติดตั้งด้วยตนเองเพื่อทำการntpซิงค์เวลาต่อเนื่องกับอินเทอร์เน็ต ฉันรายงานในbugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/…
Rmano

ฉันไม่แน่ใจว่ามันทำให้เข้าใจผิด ฉันอยู่ภายใต้การแสดงผลมันวิ่ง ntpdate ทุกครั้งในการบู๊ตเว้นแต่ตัวเลือกนี้จะปิดการใช้งาน มีใครยืนยันได้บ้าง
thomasrutter

บน Kubuntu 16.04 วิดเจ็ตนาฬิกาไม่แสดงAutomatically from the Internetตัวเลือกหรือสิ่งที่เกี่ยวข้อง
kmonsoor

คำตอบ:


38

สิ่งนี้ทำได้โดยการซิงโครไนซ์กับ ntpdateเครื่องมือ

man ntpdate

NAME
       ntpdate - set the date and time via NTP

ntpdate sets the local date and time by polling the Network Time Proto‐
       col (NTP) server(s) given as the server arguments to determine the cor‐
       rect time. It must be run as root on the local host (unless the  option
       -q  is used). A number of samples are obtained from each of the servers
       specified and a subset of the NTP clock filter and selection algorithms
       are  applied  to  select  the best of these. Note that the accuracy and
       reliability of ntpdate depends on the number of servers, the number  of
       polls each time it is run and the interval between runs.

       ntpdate  can  be run manually as necessary to set the host clock, or it
       can be run from the host startup script to set the clock at boot  time.
       This is useful in some cases to set the clock initially before starting
       the NTP daemon ntpd. It is also possible to run  ntpdate  from  a  cron
       script.  However,  it  is important to note that ntpdate with contrived
       cron scripts is no substitute for the NTP daemon, which uses  sophisti‐
       cated  algorithms to maximize accuracy and reliability while minimizing
       resource use. Finally, since ntpdate does not discipline the host clock
       frequency as does ntpd, the accuracy using ntpdate is limited.

คุณสามารถทำได้ด้วย

sudo ntpdate TIME-SERVER

สามารถสร้างรายการ TIME-SERVER ได้ที่นี่


6
แต่คำถามคือไม่ได้ติดตั้ง ntpdate ตามค่าเริ่มต้นบน Ubuntu ดังนั้น Ubuntu จะซิงค์เวลาอย่างไร
John Allard

2
หมายเหตุ: คำตอบที่ยอมรับนี้ล้าสมัยมาก สำหรับ Ubuntu รุ่นล่าสุด (16.04+) จะใช้ timedatectl แทน ntpdate timedatectl ควบคุมบริการ timesyncd ของ systemd
Corey Goldberg

ใช่คำตอบนี้อยู่นอกหัวข้อ ไม่ใช่ "วิธีซิงค์เวลาโดยไม่มี ntpd + ntpq" แต่ "วิธีที่ UBUNTU ทำโดยไม่มีข้อใดข้อหนึ่งข้างต้น (ntpdate / ntpq) ฉันพบคำถามนี้หลังจากสังเกตว่านาฬิกาของฉันถูกซิงโครไนซ์และฉันคาดว่ามันจะปิด อย่างน้อยไม่กี่วินาที (Ubuntu 18.04) ฉันยังจำนรกที่ NTPd ที่ถูกลมพัดปลิวเต็มเมื่อมันปฏิเสธที่จะซิงค์เวลา "ไกลเกินไป" เป็นต้นและตอนนี้ - นาฬิกาถูกซิงค์! Magic
Tomasz Gandor

21

Ubuntu ประสานกับntpdateยูทิลิตี้ทุกครั้งที่มีการเชื่อมต่อเครือข่าย (ซึ่งมักเกิดขึ้นเมื่อคุณบู๊ต)

ยูทิลิตี้นี้ถูกติดตั้งตามค่าเริ่มต้น แต่จะทำงานเฉพาะเมื่อ Ubuntu เรียกใช้และจะไม่ทำงานในพื้นหลังเป็น daemon

การติดตั้งntpแพ็กเกจจะติดตั้ง NTP daemon ntp daemon อนุญาตให้ซิงค์เวลาอย่างต่อเนื่องขณะที่ระบบกำลังทำงาน


อัปเดต : ใน Ubuntu รุ่นล่าสุด (เช่น 16.04) ntpdateจะถูกแทนที่ด้วยtimedatectlซึ่งจะทำการซิงค์ครั้งเดียวในการบู๊ตและเมื่อเครือข่ายปรากฏขึ้น แต่ไม่ได้ทำงานต่อเนื่องในเวลาอื่น ดูhttps://help.ubuntu.com/lts/serverguide/NTP.htmlสำหรับข้อมูลเพิ่มเติม


4
มันไม่ได้อยู่ที่การบู๊ตแต่ละครั้ง ทำตามไปdpkg-query --listfiles ntpdate /etc/network/if-up.d/ntpdate
ændrük

1
อ่าขอบคุณดังนั้นฉันเดาว่าทุกครั้งที่อินเทอร์เฟซเครือข่ายเกิดขึ้นซึ่งไม่จำเป็นต้องเป็นการบู๊ตสำหรับทุกคน
thomasrutter

อ่าคุณแน่ใจหรือว่ามีการติดตั้งเป็นค่าเริ่มต้น? ฉันกำลังนั่งอยู่ที่นี่บนอินสแตนซ์เซิร์ฟเวอร์ Ubuntu 16.04 ที่เพิ่งตีใหม่และไม่มีการติดตั้ง ntpdate
John Allard

ntpdate ถูกติดตั้งตามค่าเริ่มต้นใน 14.04 แต่ไม่ได้อยู่ใน 16.04 อีกต่อไปตอนนี้ก็ถือว่าเลิกใช้แล้วtimedatectlซึ่งทำงานคล้ายกัน - มันถูกติดตั้งโดยค่าเริ่มต้นและซิงโครไนซ์ครั้งเดียวเมื่อบู๊ต
thomasrutter

12

สำหรับผู้ที่มีการซิงค์เวลา LTS 16.04 ดูเหมือนว่าจัดการโดย sytemd โดยเฉพาะ "timedatectl"

timedatectl status
Local time: Wed 2016-11-30 17:45:18 CST
Universal time: Wed 2016-11-30 23:45:18 UTC
RTC time: Sun 2016-12-04 06:50:39
Time zone: America/Chicago (CST, -0600)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

การกำหนดค่าคือ

/etc/systemd/timesyncd.conf

ข้อมูลเพิ่มเติมที่นี่: การซิงโครไนซ์เวลาด้วย NTP และtimedatectl


1
นี่คือคำตอบที่ดีที่สุด ณ ตอนนี้ ส่วนที่เหลืออยู่นอกหัวข้อ (ยกเว้นรายการที่แก้ไขซึ่งพูดถึง systemd-timedatectl)
Tomasz Gandor

2

โปรดทราบว่าอาจเป็นไปได้ที่จะมีส่วนต่อประสานกับส่วนหน้าสำหรับบริการที่ไม่ได้ติดตั้ง

คุณสามารถเปลี่ยนการตั้งค่าในอินเทอร์เฟซ Front-end (GUI) ได้ทุกอย่างที่คุณต้องการ แต่ถ้าไม่ได้ติดตั้งบริการที่ทำงานจริง ๆ จะไม่มีอะไรเกิดขึ้น

อย่างไรก็ตามโปรดทราบว่าฉันคิดว่า "สวิตช์" นั้นถูกต้องเพราะมันบอกให้ทำการอัพเดตเพียงครั้งเดียวที่บูต EACH (หรือไม่ทำ)

หากนี่ไม่ใช่ระบบที่เชื่อมต่อกับเครือข่ายหรือมีเหตุผลอื่นที่ไม่ได้กำหนดเวลาให้ตรงกับเวลา "มาตรฐาน" ฉันขอแนะนำให้คุณติดตั้ง ntpd และกำหนดค่าและเรียกใช้อย่างถูกต้อง


1

อ้างถึง: https://help.ubuntu.com/community/UbuntuTime

Ubuntu มาพร้อมกับ ntpdate เป็นมาตรฐานและจะรันครั้งเดียวในเวลาบูตเพื่อตั้งค่าเวลาของคุณตามเซิร์ฟเวอร์ NTP ของ Ubuntu อย่างไรก็ตามนาฬิกาของระบบมีแนวโน้มที่จะล่องลอยไปมาระหว่างการรีบูตหากเวลาระหว่างการรีบูตยาว ในกรณีเช่นนี้การแก้ไขเวลาให้เหมาะสมเป็นครั้งคราว วิธีที่ง่ายที่สุดในการทำเช่นนี้คือให้ cron ทำงานทุกวัน

ntpdate ntp.ubuntu.com

หรือคุณสามารถใช้ntpd( help.ubuntu.com/lts/serverguide/NTP.html#ntpd ) เพื่อรักษาการซิงโครไนซ์
Gaurav

FYI หน้าเว็บที่คุณอ้างอิงไม่ได้รับการอัปเดตเป็น 16.04 ณ ตอนนี้จึงไม่เป็นประโยชน์มากนัก
kmonsoor

1

ด้วยเหตุผลบางอย่างในวันที่ 16.04 คำตอบของ Maythuxไม่ทำงานทันที

แต่การเป็นผู้นำจากที่นั่นสิ่งนี้ได้ผลสำหรับฉัน

$ sudo ntpdate-debian

โปรดทราบว่ามันต้องมีsudoสิทธิ์แน่นอน

ภายใต้ประทุนจะใช้ntpdateเครื่องมือซึ่งแตกต่างกันเฉพาะไฟล์ปรับแต่ง

ntpdate-debian เหมือนกัน ntpdate(8) ยกเว้นว่าจะใช้การกำหนดค่าใน/etc/default/ntpdateโดยค่าเริ่มต้น ntpdate ตั้งค่าวันที่และเวลาท้องถิ่นโดยเซิร์ฟเวอร์ polling Network Time Protocol (NTP)


16.04 ใช้ systemd ดังนั้นฉันคาดว่ามันจะมีคำสั่งใหม่เทียบเท่าที่จะใช้
Rinzwind

@Rinzwind ที่ยอดเยี่ยมแน่นอน น่าเสียดายที่หน้าหลักที่คาดคะเนบน Ubuntuนั้นไม่ได้รับการอัพเดตสำหรับ 16.04 มันแสดงข้อความบอกว่า "บทความนี้ต้องการการปรับปรุงเพื่อรวม Ubuntu รุ่นล่าสุด"
kmonsoor

อย่างน้อยก็ใน 14.04 ไม่เหมือนกันเป็นsudo ntpdate-debian sudo ntpdate ntp.ubuntu.comแปลกคือทำไมพวกเขาเลือกและปรับแต่งแพคเกจนี้จากเดเบียนเมื่อเราอ่านมันis identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by defaultและจัดการไฟล์นี้ที่เราอ่านNTPDATE_USE_NTP_CONF=yes # List of NTP servers to use (Separate multiple servers with spaces.) # Not used if NTPDATE_USE_NTP_CONF is yes. NTPSERVERS="ntp.ubuntu.com"???
มีประโยชน์

1

Ubuntu รุ่นต่อ ๆ มามักจะใช้ chrony ซึ่งเป็นทางเลือกในการนำ ntp ไปใช้กับความแตกต่าง: -

  1. คุณสมบัติ ntp ที่ใช้บ่อยบางอย่างไม่ได้นำมาใช้
  2. มันพยายามที่จะรับมือกับสถานการณ์ที่คุณมีการเข้าถึงเครือข่ายเป็นระยะ ๆ - เมื่อเชื่อมต่อแล้วมันจะซิงค์นาฬิกาในพื้นที่และติดตามว่ามันลอยเร็วแค่ไหน เมื่อตัดการเชื่อมต่อจะใช้นาฬิกาในเครื่อง แต่ปรับเวลาเพื่อให้สามารถลอยได้ตามปกติ

ดูhttps://chrony.tuxfamily.org/สำหรับข้อมูลเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.