Bài viết này sẽ giới thiệu về Lệnh NTP Là Gì? Đặc Điểm Của NTP. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.
1. Lệnh NTP là gì?
Network Time Protocol (NTP) là một giao thức được sử dụng để đồng bộ hóa thời gian đồng hồ của máy tính trong mạng . Nó thuộc về và là một trong những phần lâu đời nhất của bộ giao thức TCP/IP. Thuật ngữ NTP áp dụng cho cả giao thức và các chương trình máy khách-máy chủ chạy trên máy tính. NTP, được phát triển bởi David Mills tại Đại học Delaware vào năm 1981, được thiết kế để có khả năng chịu lỗi cao và có thể mở rộng.
2. Đặc điểm của lệnh NTP
Máy chủ NTP, trong đó có hàng nghìn máy chủ trên khắp thế giới, có quyền truy cập vào đồng hồ nguyên tử và đồng hồ GPS có độ chính xác cao. Các máy thu chuyên dụng được yêu cầu phải giao tiếp trực tiếp với các máy chủ NTP cho các dịch vụ này.
Việc trang bị cho mỗi máy tính một trong những bộ thu này là không thực tế hoặc hiệu quả về chi phí. Thay vào đó, các máy tính được chỉ định là máy chủ thời gian chính được trang bị với bộ thu và chúng sử dụng các giao thức như lệnh NTP để đồng bộ hóa thời gian đồng hồ của các máy tính nối mạng.
Lệnh NTP sử dụng Giờ phối hợp quốc tế (UTC) để đồng bộ hóa thời gian của đồng hồ máy tính với độ chính xác cực cao, mang lại độ chính xác cao hơn trên các mạng nhỏ hơn – xuống đến một phần nghìn giây trong mạng cục bộ và trong vòng hàng chục mili giây qua internet. Lệnh NTP không tính đến múi giờ, thay vào đó dựa vào máy chủ để thực hiện các phép tính đó.
3. Cách hoạt động của lệnh NTP
Máy khách NTP bắt đầu trao đổi yêu cầu thời gian với máy chủ NTP. Kết quả của việc trao đổi này, máy khách có thể tính toán độ trễ liên kết và độ lệch cục bộ của nó, đồng thời điều chỉnh đồng hồ cục bộ của nó để khớp với đồng hồ trên máy tính của máy chủ. Theo quy định, sáu sàn giao dịch trong khoảng thời gian từ 5 đến 10 phút được yêu cầu để đặt đồng hồ ban đầu.
Sau khi được đồng bộ hóa, máy khách cập nhật đồng hồ khoảng 10 phút một lần, thường chỉ yêu cầu một cuộc trao đổi tin nhắn duy nhất. Ngoài việc đồng bộ hóa máy khách-máy chủ. Giao dịch này xảy ra thông qua Giao thức Dữ liệu Người dùng trên cổng 123. Lệnh NTP cũng hỗ trợ đồng bộ hóa quảng bá của đồng hồ máy tính ngang hàng.
4.Cách khắc phục
Rất may mắn rằng ngoài phương pháp đồng bộ thời gian qua cổng UDP 123, chúng ta cũng có thể đồng bộ thời gian thông qua HTTP và HTTPS. Chỉ cần sử dụng câu lệnh đơn giản sau (dùng máy chủ thời gian của Google):
date -s "$(curl -H'Cache-Control:no-cache' -sI time.google.com | grep '^Date:' | cut -d' ' -f3-6)Z"
Chúng ta cũng có thể đặt crontab bằng 2 câu lệnh sau trong “crontab -e” để hệ thống luôn được cập nhật giờ mới nhất
0 * * * * date -s "$(curl -H'Cache-Control:no-cache' -sI time.google.com | grep '^Date:' | cut -d' ' -f3-6)Z" @reboot date -s "$(curl -H'Cache-Control:no-cache' -sI time.google.com | grep '^Date:' | cut -d' ' -f3-6)Z"
Cặp lệnh trên sẽ đồng bộ mỗi giờ một lần và mỗi lần khởi động máy.
Kiểm tra lại xem thời gian đã chuẩn chưa bằng lệnh:
timedatectl
Đầu ra kết quả có dạng tương tự như sau:
Local time: Sat 2021-12-25 09:54:23 +07 Universal time: Fri 2021-12-25 02:54:23 UTC RTC time: Fri 2021-12-25 02:50:42 Time zone: Asia/Ho_Chi_Minh (+07, +0700) NTP enabled: yes NTP synchronized: no RTC in local TZ: no
Thời gian Hệ điều hành OS chuẩn trên từng giây (Local Time). Nhưng thời gian Mainboard (RTC Time) lại không chuẩn??? Không cần phải lo, chạy ngay lệnh này (chỉ áp dụng cho server vật lý, không áp dụng cho server ảo hóa như KVM, VMWare hay OpenVZ…):
hwclock --systohc
Kiểm tra lại thời gian với timedatectl ta có kết quả:
- Local time: Sat 2021-12-25 10:21:41 +07
- Universal time: Sat 2021-12-25 03:21:41 UTC
- RTC time: Sat 2021-12-25 03:21:41
- Time zone: Asia/Ho_Chi_Minh (+07, +0700)
Như vậy là chúng tôi đã hướng dẫn xong cách khắc phục sự cố thời gian với lệnh NTP trên máy chủ Linux, bạn đọc có thể tham khảo thực hành ngay nhé. Chúc thành công!
5. Cài đặt lệnh NTP cho Server
[root@localhost ~]# yum -y install ntp [root@localhost ~]# vi /etc/ntp.conf # line 18: add the network range you allow to receive requests restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap # change servers for synchronization #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst server ntp1.jst.mfeed.ad.jp iburst server ntp2.jst.mfeed.ad.jp iburst server ntp3.jst.mfeed.ad.jp iburst [root@localhost ~]# systemctl start ntpd [root@localhost ~]# systemctl enable ntpd
6. Kiểm tra hoạt động của lệnh NTP trên Server
[root@techshare ~]# ntpq -p remote refid st t when poll reach delay offset jitter ====================================================================== +ntp1.jst.mfeed. 172.29.1.100 2 u 29 64 1 18.826 -0.126 0.000 +ntp2.jst.mfeed. 172.29.2.50 2 u 28 64 1 21.592 0.018 0.000 *ntp3.jst.mfeed. 133.243.236.18 2 u 28 64 1 22.666 -1.033 0.000
Chúc bạn thực hiện thành công!
THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST
>> SERVER – COLOCATION – CDN
>> HOSTING
>> WEBSITE
>> TÊN MIỀN