Đây là một hướng dẫn tốt từ các diễn đàn Ubuntu: http://ubuntuforums.org/showthread.php?t=862620
Sao chép-pasta:
HOWTO: Thiết lập Máy chủ NTP
Hướng dẫn này mô tả cách thiết lập máy của bạn làm máy chủ Giao thức thời gian mạng (NTP) cục bộ và / hoặc cách sử dụng trình nền NTP để thường xuyên duy trì thời gian hệ thống chính xác.
NTP là gì?
Giao thức thời gian mạng (NTP) là một giao thức được thiết kế để đồng bộ hóa chính xác đồng hồ thời gian cục bộ với các máy chủ thời gian được nối mạng. Mạng NTP của các máy chủ thời gian được thiết lập theo cách phân cấp, sao cho bất kỳ người dùng nào cũng có thể vào hệ thống dưới dạng máy chủ ở một mức nào đó (xem trang Wikipedia để biết thêm chi tiết).
Hệ thống phân cấp NTP được phân tách thành các cấp khác nhau, được gọi là tầng đồng hồ. Cấp chính xác nhất, Stratum 0, được dành riêng cho đồng hồ nguyên tử, v.v ... Cấp tiếp theo, Stratum 1, thường được sử dụng bởi các máy nối mạng được kết nối cục bộ với đồng hồ Stratum 0. Stratum 2 ... 15 là các máy NTP được kết nối lần lượt với các đồng hồ cấp thấp hơn và nhau.
Hướng dẫn này mô tả cách đồng bộ hóa chính xác với máy Stratum 1 và 2 và duy trì chính xác đồng hồ hệ thống nhất có thể trong suốt cả ngày. Các phần cũng được bao gồm về cách cho phép máy của bạn hoạt động như một máy chủ Stratum 2/3 cho các máy khác trên mạng cục bộ của bạn.
Tôi có phải tạo một máy chủ NTP không?
Không ... hoàn toàn không! Nếu bạn hài lòng với các đồng hồ trên mạng của mình có một số khác biệt không xác định so với thời gian tiêu chuẩn (và nhau), thì bạn không phải thiết lập máy chủ NTP. Tôi đã thiết lập một máy tính xách tay của mình để đồng bộ hóa nhiều máy trên mạng cục bộ trong vòng <1 ms cho một thử nghiệm sinh học. Ngoài ra, có nhiều lợi thế khác, được mô tả dưới đây.
Động lực:
Thông thường, các hộp Ubuntu chưa sửa đổi sử dụng ntpdate ( /usr/sbin/ntpdate
) để đồng bộ hóa đồng hồ định kỳ với một số máy chủ thời gian bên ngoài. Cách tiếp cận này đồng bộ hóa đồng hồ với độ phân giải khóa học (thường là một lần một ngày).
Đồng hồ máy tính không hoàn hảo và sẽ trôi dạt từ máy chủ thời gian (chính xác) trong ngày. Hơn nữa, tốc độ trôi trong đồng hồ của các máy tính khác nhau khác nhau, như vậy vào cuối ngày, có thể tồn tại sự khác biệt đáng kể giữa các máy được kết nối mạng cục bộ khác nhau, điều này có thể gây trở ngại cho một số hoạt động nhất định (ví dụ, có một khiếu nại nào đó khi di chuyển mã nguồn giữa máy khác nhau?).
Có thể chạy daemon NTP cục bộ trên một máy trên mạng của bạn. Điều này có nhiều ưu điểm: đầu tiên, trình nền NTP dần dần "học" tốc độ trôi của máy cục bộ của bạn và có thể sửa cho nó trong suốt cả ngày. Đồng bộ hóa với các máy chủ thời gian cấp cao hơn diễn ra nhiều lần trong ngày và nhiều máy chủ thời gian khác nhau có thể được sử dụng đồng thời để đồng bộ hóa chính xác hơn. Theo cách này, trình nền NTP hoạt động như một máy khách thời gian chính xác, giữ cho đồng hồ hệ thống của bạn càng gần thời gian tiêu chuẩn càng tốt.
Ngoài việc duy trì đồng hồ hệ thống chính xác, trình nền NTP cho phép một máy trên mạng của bạn (nếu bạn muốn) hoạt động như một máy chủ thời gian NTP. Làm như vậy sẽ cho phép các máy khác trên mạng cục bộ của bạn đồng bộ hóa với máy chủ thời gian LAN của bạn một cách rất nhanh chóng và chính xác, vì độ trễ của mạng được giảm thiểu. Theo cách này, sự khác biệt về đồng hồ giữa các máy trên mạng của bạn được giữ ở mức tối thiểu nhất có thể. Mac và thậm chí các hộp Windows cũng có thể đồng bộ hóa với máy chủ NTP, nếu bạn thiết lập một máy chủ.
Có những động lực khác, ít cá nhân hơn, để thiết lập một máy như một máy chủ NTP. Đầu tiên, làm như vậy có thể làm giảm căng thẳng cho các máy chủ NTP cấp cao hơn, vì các máy khác trong mạng LAN của bạn có thể đồng bộ hóa với máy chủ thời gian được thiết lập cục bộ. Ngoài ra, ntpdate đã không được ủng hộ khi sử dụng cờ -q cho ntpd (bắt chước chức năng của nó). Do đó, ngay cả khi bạn không muốn chạy ntpd liên tục trong nền, ntpdate cuối cùng sẽ được thay thế bằng ntpd, vì vậy bạn có thể muốn làm quen với nó ngay bây giờ
Cách duy trì đồng hồ hệ thống chính xác với ntpd
- Cài đặt trình nền NTP
Đầu tiên, cài đặt trình nền NTP (ntpd):
sudo aptitude install ntpd
Như đã đề cập trước đây, ntpd có thể hoạt động như một máy khách (đồng bộ hóa thời gian hệ thống của bạn) và như một máy chủ (cung cấp thời gian chính xác cho các máy khác).
Tùy chọn, bạn cũng có thể muốn xóa chương trình đồng bộ hóa thời gian (không dùng nữa) trước đó, ntpdate. Có lẽ sẽ khôn ngoan hơn khi làm như vậy sau khi bạn có ntpd làm việc
sudo aptitude remove ntpdate
- Cấu hình daemon đúng cách
Tệp cấu hình cho ntpd được đặt tại /etc/ntp.conf
. Tệp Ubuntu mặc định có thể yêu cầu một số sửa đổi để có hiệu suất tối ưu.
Phần đầu tiên bạn có thể muốn sửa đổi là danh sách các máy chủ để đồng bộ hóa. Phần mặc định có thể trông như sau:
# You do need to talk to an NTP server or two (or three).
server ntp.ubuntu.com
Để có được thời gian chính xác nhất có thể, tốt nhất là liên lạc với nhiều máy chủ NTP khác nhau và giữ chúng càng gần vị trí thực của bạn càng tốt. Có nhiều danh sách máy chủ khác nhau trực tuyến, có lẽ là tốt nhất nằm ở đây. Có một số tranh luận về số lượng máy chủ thích hợp để sử dụng. Một là tốt hơn hai, và ba hoặc nhiều hơn có lẽ là một ý tưởng tốt, miễn là bạn không quá nhiệt tình. Một ví dụ về một vài máy chủ thời gian mà tôi đã sử dụng như sau:
server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
Khi một vài máy chủ tốt đã được tìm thấy, hãy thêm chúng vào danh sách, đặt 'iburst'
sau máy chủ hứa hẹn nhất. Ví dụ:
server nist1-dc.WiTime.net iburst
Điều này sẽ khiến ntpd đồng bộ hóa rất nhanh với máy chủ này sau khi khởi động. Mặt khác, ntpd sẽ dần dần có xu hướng trôi theo thỏa thuận với danh sách máy chủ (như bản chất của nó) và có thể mất 15-20 phút để đồng bộ hóa đủ tốt để hoạt động như một máy chủ thời gian cho phần còn lại của mạng.
Ngoài ra, hãy thêm một vài dòng vào cuối danh sách máy chủ của bạn để cung cấp giờ địa phương hiện tại của bạn làm mặc định nếu bạn tạm thời mất kết nối Internet:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Điều này sẽ ngăn chặn mọi sự khó chịu nếu bạn đang chạy ntpd trên máy tính xách tay hoặc máy khác với thời gian ngắt kết nối không liên tục khỏi Internet.
Nói chung, danh sách máy chủ sẽ trông giống như sau (đây là của tôi, máy chủ của bạn có thể sẽ khác):
# You do need to talk to an NTP server or two (or three).
server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
server 127.127.1.0
fudge 127.127.1.0 stratum 10
- Đảm bảo cấu hình hoạt động
Bây giờ bạn đã có một danh sách máy chủ phù hợp trong /etc/ntp.conf
tệp của mình , đã đến lúc chạy daemon và xem bạn có đồng bộ hóa đúng không! Đảm bảo bạn có kết nối Internet đang hoạt động, rồi chạy:
sudo /etc/init.d/ntp restart
Tiếp theo, theo dõi nhật ký hệ thống của bạn để xem bạn có đồng bộ hóa với máy chủ thời gian không:
tail -f /var/log/syslog
Trong khoảng 10-15 giây (hoặc tối đa 15-20 phút nếu bạn quên đặt 'iburst' sau máy chủ yêu thích của mình), bạn sẽ thấy một cái gì đó giống như sau trong nhật ký hệ thống của bạn:
Jul 17 16:50:22 hostname ntpd[22402]: synchronized to 140.221.9.20, stratum 2
Nếu thông báo này không bao giờ đến, bạn chưa được đồng bộ hóa đúng với mạng máy chủ NTP. Kiểm tra danh sách các đồng nghiệp NTP mà bạn đang liên lạc bằng cách sử dụng các mục sau:
ntpq -c lpeer
Nếu các trường 'độ trễ', 'bù' và 'jitter' khác không và bạn chưa đồng bộ hóa, điều đó có thể có nghĩa là bạn chỉ cần đợi một lát. Kiểm tra lại rằng bạn đã chèn đối số 'iburst' vào danh sách máy chủ của mình! Các đồng nghiệp của tôi, để tham khảo, trông giống như sau:
remote refid st t when poll reach delay offset jitter
==============================================================================
*milo.mcs.anl.go 192.5.41.40 2 u 4 64 77 46.213 67.753 2.207
-europium.canoni 193.79.237.14 2 u 63 64 37 97.375 71.020 1.875
-dtype.org 69.25.96.13 2 u 2 64 77 86.956 69.178 1.804
+smtp130.junkema 216.218.254.202 2 u 2 64 77 87.266 67.677 0.916
+kechara.flame.o 216.218.254.202 2 u - 64 77 89.183 68.717 1.713
-host2.kingrst.c 99.150.184.201 2 u - 64 77 24.306 62.121 2.608
LOCAL(0) .LOCL. 10 l 59 64 37 0.000 0.000 0.002
- Chia sẻ! (không bắt buộc)
Khi ntpd đang chạy và được đồng bộ hóa với các máy chủ thời gian bạn đã chọn, bạn có thể thiết lập nó để hoạt động như một máy chủ thời gian cho các máy khác. Để làm như vậy, thêm một phần như sau /etc/ntp.conf
:
# Allow LAN machines to synchronize with this ntp server
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
You may add as many (or few) CIDR address blocks to allow to synchronize with your machine as you'd like. I included those commonly used with Linksys (192.168.1.*) and SMC (192.168.2.*) routers.
- Làm cho đồng bộ! (không bắt buộc)
Khi bạn đã thiết lập máy chủ NTP bằng các bước 1-4, bạn có thể đồng bộ hóa các máy khác trên mạng với máy chủ của mình theo nhiều cách khác nhau. Tôi phác thảo một vài trong số họ dưới đây:
ntpd:
Nếu bạn đã cài đặt ntpd trên một máy khác, bạn có thể sử dụng máy chủ đầu tiên của mình trong danh sách máy chủ của tệp ntp.conf hoặc có thể đồng bộ hóa một lần với tùy chọn -q, như sau:
ntpd -q [IP address of your server]
ntpdate:
Nếu bạn vẫn cài đặt ntpdate trên máy khác, bạn có thể sử dụng nó để đồng bộ hóa với máy chủ của mình như sau:
ntpdate [IP address of your server]
Lưu ý: nếu bạn đang chạy ntpd trên máy và vì một số lý do vẫn muốn sử dụng ntpdate để đặt thời gian, bạn phải sử dụng tùy chọn -u.
Các cửa sổ:
Các máy Windows sử dụng một phiên bản đơn giản của NTP được gọi là Giao thức thời gian mạng đơn giản (SNTP) và có thể đồng bộ hóa với các máy chủ NTP. Để đồng bộ hóa với máy chủ mới của bạn, nhấp đúp vào thời gian và chuyển đến tab "Thời gian Internet". Đặt địa chỉ IP của máy chủ của bạn vào trường "Máy chủ". Tôi đã đính kèm ảnh chụp màn hình đồng bộ hóa Windows XP với máy chủ thời gian LAN, nếu có ai quan tâm.
Đó là nó! Toàn bộ quá trình không khó, nhưng có thể gây nhầm lẫn cho ai đó đã không xử lý nhiều với mạng NTP trước đây. Tôi hi vọng cái này giúp được! Hãy cho tôi biết nếu bạn có bất kỳ vấn đề nào khi thiết lập máy chủ của bạn.
Mike
Liên kết
Tôi thấy các liên kết sau đây hữu ích ... bạn cũng có thể!
https://help.ubfox.com/7.10/server/C/NTP.html
http://linuxwave.blogspot.com/2007/0...tp-server.html
http: //lists.ntp.isc. org / pipermail / q ... er / 011889.html
http://www.linuxhomenetworking.com/w...Fntp.conf_File
http://www.ntp.org/ntpfaq/NTP-a-faq.htm