ntpdate: không tìm thấy máy chủ phù hợp để đồng bộ hóa


82

Đồng hồ của tôi bị tắt , vì vậy tôi muốn đồng bộ hóa nó bằng cách sử dụng ntpdate. Tôi đã thử một số máy chủ NTP khác nhau, nhưng vì một số lý do tôi luôn nhận được thông báo lỗi sau:

$ sudo ntpdate ntp.ubuntu.com
4 Mar 12:27:35 ntpdate[1258]: no server suitable for synchronization found
$ sudo ntpdate pool.ntp.org
4 Mar 12:27:50 ntpdate[1267]: no server suitable for synchronization found
$ sudo ntpdate de.pool.ntp.org
4 Mar 12:28:01 ntpdate[1273]: no server suitable for synchronization found
$ sudo ntpdate us.pool.ntp.org
4 Mar 12:28:12 ntpdate[1276]: no server suitable for synchronization found

Câu hỏi liên quan

Tôi đã xem qua các câu hỏi liên quan , nhưng không ai giải quyết được vấn đề của tôi:

Những điều tôi đã thử

Tôi đã cài đặt gói ntp

... và đã thử sử dụng ntpddaemon thay vì ntpdatetiện ích. Nó sẽ không đồng bộ hóa thời gian của tôi; daemon bắt đầu tốt, nhưng đồng hồ của tôi vẫn tắt. Tôi thậm chí đã thử sử dụng chính xác /etc/ntp.conftừ câu trả lời được chấp nhận trong bài sau và khởi động lại daemon. Không đi. Dù sao, tôi không muốn sử dụng daemon. Tôi hoàn toàn biết rằng ntpdateđược coi là "không dùng nữa" và nên sử dụng ntpd -qthay thế. Cũng xem tại đây:

Nhưng vì ntpdtôi cũng không làm việc, vấn đề nằm ở chỗ khác . Và tôi thấy rằng tôi không muốn phải cài đặt bất kỳ gói bổ sung nào chỉ để đồng bộ hóa đồng hồ. ntpdateđược cài đặt sẵn với Ubuntu và nó sẽ hoạt động tốt . Vì vậy, tôi gỡ cài đặt ntpgói một lần nữa.

Có lẽ cổng 123 bị chặn?

Từ bài này:

... Tôi có ý tưởng rằng cổng 123 có thể bị chặn khỏi máy tính / mạng tại nơi làm việc của tôi. Thật,

$ sudo nmap -p123 -sU -P0 localhost
...
PORT    STATE  SERVICE
123/udp closed ntp 
...
$ sudo ufw allow 123/udp
Rules updated
Rules updated (v6)
$ sudo nmap -p123 -sU -P0 localhost
...
PORT    STATE SERVICE
123/udp open  ntp
...

Nhưng vẫn:

$ sudo ntpdate ntp.ubuntu.com
4 Mar 13:06:16 ntpdate[4361]: no server suitable for synchronization found

Ngay cả với -utùy chọn, yêu ntpdatecầu sử dụng một cổng không được ưu tiên để đồng bộ hóa (thay vì cổng 123) mà chắc chắn không bị chặn khỏi nơi làm việc của tôi:

$ sudo ntpdate -u ntp.ubuntu.com
4 Mar 13:06:28 ntpdate[4427]: no server suitable for synchronization found

Có lẽ tầng lớp quá cao?

Cuối cùng, từ bài đăng này tại serverfault:

... Tôi nghĩ rằng có lẽ tầng lớp từ các máy chủ NTP quá cao. Họ không, mặc dù. Chúng ta hãy xem thêm một chút thông tin gỡ lỗi:

$ sudo ntpdate -dv ntp.ubuntu.com
 4 Mar 13:12:24 ntpdate[4523]: ntpdate 4.2.6p5@1.2349-o Wed Oct  9 19:08:07 UTC 2013 (1)
Looking for host ntp.ubuntu.com and service ntp
host found : golem.canonical.com
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
91.189.89.199: Server dropped: no data
91.189.94.4: Server dropped: no data
server 91.189.89.199, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.89.199], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  1:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  1:00:00.000
transmit timestamp:  d6c041ae.e6166441  Tue, Mar  4 2014 13:12:30.898
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

server 91.189.94.4, port 123
stratum 0, precision 0, leap 00, trust 000
refid [91.189.94.4], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  1:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  1:00:00.000
transmit timestamp:  d6c041af.1948fc50  Tue, Mar  4 2014 13:12:31.098
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

 4 Mar 13:12:33 ntpdate[4523]: no server suitable for synchronization found

Pfeeewww ... đây là một cái dài, xin lỗi vì điều đó. Tôi bối rối. Bất kì manh mối nào?

Cập nhật: thêm thông tin

Bất kể một máy chủ NTP HOSTNAMEcon số trong /etc/ntp.conf, và không có vấn đề liệu các ntpddịch vụ đang chạy hay không, bất cứ khi nào tôi chạy sudo ntpdate -u HOSTNAME, tôi nhận được no server suitable for synchronization found. Điều tương tự khi ntpddịch vụ này được không chạy và tôi bỏ qua các -utùy chọn. Khi ntpddịch vụ đang chạy và tôi bỏ qua -utùy chọn, thay vào đó tôi nhận được the NTP socket is in use, exiting.

Cũng thế:

$ timedatectl status
      Local time: Wed 2014-03-05 13:11:54 CET
  Universal time: Wed 2014-03-05 12:11:54 UTC
        Timezone: Europe/Berlin (CET, +0100)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: no
 Last DST change: DST ended at
                  Sun 2013-10-27 02:59:59 CEST
                  Sun 2013-10-27 02:00:00 CET
 Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2014-03-30 01:59:59 CET
                  Sun 2014-03-30 03:00:00 CEST

Nhưng thời gian UTC không chính xác ở đây. Ngay bây giờ thời gian UTC là 11:11, không 12:11.

Và:

$ sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET  -0.625627 seconds

bạn nói bạn đã chạy `sudo ntpdate ntp.ubfox.com` nhưng bạn đã làm điều đó sau khi thêm ntp.ubuntu.comvào /etc/ntp.conftrường máy chủ? Nếu không thấy câu trả lời sau
Stormvirux

hãy thử `sudo ntpdate 0.ubfox.pool.ntp.org
Stormvirux

1
Xin chào, xem bình luận của tôi để trả lời của bạn. Tôi đã thử thêm server pool.ntp.orgvào /etc/ntp.conf, nhưng ntpdate -u pool.ntp.orgném cùng một lỗi. Tôi cũng đã thử điều này với ntp.ubuntu.com(thêm nó vào /etc/ntp.conf, khởi động lại ntpdịch vụ, chạy lại ntpdate -utrên máy chủ chính xác mà tôi vừa thêm vào /etc/ntp.conf). Tóm tắt, không có vấn đề gì nếu máy chủ tôi đang cố gắng đồng bộ hóa được đề cập đến/etc/ntp.conf . Tôi nhận được no server suitable...lỗi trong tất cả các trường hợp (trừ khi ntpdịch vụ đang chạy tôi bỏ qua -utùy chọn, sau đó tôi nhận được NTP socket in uselỗi).
Malte Skoruppa

Ok, tôi cũng đã thử sudo ntpdate 0.ubuntu.pool.ntp.org, đã có trong /etc/ntp.conftập tin. Không có may mắn - cùng một lỗi.
Malte Skoruppa

Câu trả lời:


54

Nhà cung cấp dịch vụ lưu trữ của bạn đang chặn các gói ntp. Cách tiếp cận nặng tay này đã được một số ISP triển khai để đối phó với các cuộc tấn công DDoS. Bạn có thể thấy rằng ntpdate đang gửi các gói từ ntpdate -vd:

transmit(91.189.94.4)
transmit(91.189.89.199)
transmit(91.189.94.4)
transmit(91.189.89.199)

Tôi sẽ liên hệ với ISP của bạn và hỏi xem họ có chặn các yêu cầu ntp bên ngoài không và liệu họ có máy chủ cục bộ mà bạn có thể sử dụng để đồng bộ hóa thời gian không.

Có một vài khả năng khó hiểu hơn nhưng thật khó để loại trừ chúng vì bạn chưa đăng bất kỳ nhật ký nào từ syslog.


6
Bạn hoàn toàn đúng. Có vẻ như trường đại học của chúng tôi đang chặn các yêu cầu NTP bên ngoài. Nó cũng cung cấp một vài máy chủ NTP cục bộ thay thế. Những công việc này hoàn hảo. Bây giờ tôi thấy rằng đầu ra của ntpdate -dvcũng nên bao gồm một số receive(...)và không chỉ transmit(...)các tin nhắn. ;) Cảm ơn nhiều!
Malte Skoruppa

Một câu hỏi, làm thế nào trường đại học có thể chặn các gói NTP khi tôi sử dụng ntpdatevới -utùy chọn này? Vì điều này sử dụng một cổng không được ưu tiên thay vì cổng 123, điều đó có nghĩa là các quy tắc tường lửa của họ phải phức tạp hơn đơn giản là "chặn các gói đến trên cổng 123". Vì vậy, họ làm một số loại kiểm tra gói sâu, sau đó?
Malte Skoruppa

1
Họ sẽ có một quy tắc tường lửa có nội dung "Chặn tất cả lưu lượng truy cập với cổng đích là 123" và sau đó là một vài ngoại lệ cho máy chủ ntp của họ
dfc

Tôi có vấn đề này như nhau. Tôi đã có thể giải quyết nó bằng cách thực hiện theo dõi ra bên ngoài và tôi tìm thấy một máy chủ cục bộ trên tuyến đường mà tôi có thể đồng bộ hóa với nó đang chạy ntp. Một trong số họ đã chặn nó mặc dù. Cảm ơn vì những lời khuyên!
jonespm

1
Đối với tôi, ntpdate -vdnói no servers can be used, exiting.
highBandWidth

47

Đây không phải là câu trả lời ntp, tuy nhiên ...

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

Đây và phiên bản curl ở đây .


13
Điều này là khủng khiếp, nhưng nó hoạt động.
Alan Plum

4
Cung cấp dữ liệu không được xác nhận để lệnh bash chạy như root? Cảm ơn tuyệt vời vì đã chơi Câu trả lời này nên được đánh giá thấp với định kiến ​​cực đoan.
dfc

1
Ít đau đớn hơn nhiều so với việc phải đối phó với sự hỗ trợ của ISP. Ngoài ra, hoàn toàn không quan trọng nếu chạy trong máy ảo cục bộ cho mục đích thử nghiệm.
Yalok Iy

Bạn có thể giải thích cho tôi những gì nó đang làm?
Suraj Jain

1
@SurajJain Nhiều máy chủ web trả về Datetiêu đề. Trong lệnh ngày -s cho ngày đã đặt, wget -S để lưu trữ tất cả các tiêu đề, 2> & 1 cho các lỗi đăng nhập trong thiết bị xuất chuẩn, grep cho dòng chọn với Ngày tiêu đề, cắt cho ngày dải trong tuần và GMT. Z vào cuối ngày coi là UTC. Độ chính xác sẽ phụ thuộc vào tốc độ mạng.
dùng1516873

10

Tôi đã có cùng một vấn đề và đây là cách tôi giải quyết nó. Tôi đã đưa ra một câu trả lời chi tiết từ trên xuống dưới. Bạn có thể muốn bỏ qua đến giữa câu trả lời của tôi hoặc chỉ cần tham khảo các ảnh chụp màn hình bên dưới để hiểu nó trong nháy mắt.

Lần đầu tiên cài đặt ntpdate (Rõ ràng là bạn đã làm điều này)

sudo apt-get install ntpdate

TIẾP THEO Bạn cần định cấu hình ntp với các máy chủ như sau:

Ít nhất bạn nên đặt tham số sau trong tệp cấu hình /etc/ntp.conf: server

Ví dụ: mở tệp /etc/ntp.conf bằng trình soạn thảo văn bản nano:

sudo nano /etc/ntp.conf

Xác định vị trí tham số máy chủ và nếu nó trống, đặt nó như sau:

server pool.ntp.org

Nhưng thông thường Trong Ubuntu đã có một số máy chủ được viết sẵn có thể là

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

nhập mô tả hình ảnh ở đây

Sau đó Lưu tệp và khởi động lại dịch vụ ntpd :

sudo /etc/init.d/ntpd start

Bạn có thể đồng bộ hóa đồng hồ hệ thống với máy chủ NTP ngay lập tức bằng lệnh sau:

sudo ntpdate pool.ntp.org

hoặc chỉ chạy các máy chủ đã được xác định

sudo ntpdate 0.ubuntu.pool.ntp.org

hoặc các máy chủ khác được xác định bằng máy chủ

nói chung là

sudo ntpdate <one of the servername in /etc/ntp.conf>

NHƯNG sau đó có khả năng bạn gặp Lỗi NTP socket in usenhư dưới đây:

nhập mô tả hình ảnh ở đây

Trong trường hợp đó chỉ cần chạy

ntpdate -u pool.ntp.org 

để cập nhật khi ntp deamon đang chạy

HOẶC chỉ dừng deamon, cập nhật và bắt đầu lại như sau:

sudo ntpdate pool.ntp.org
sudo service ntp stop
sudo ntpdate pool.ntp.org
sudo service ntp start

và bạn sẽ nhận được

nhập mô tả hình ảnh ở đây


Xin chào, cảm ơn câu trả lời chi tiết của bạn! Thật không may, nó không làm việc cho tôi. Tôi có /etc/ntp.confcái đi kèm với Ubuntu, không bao giờ thực hiện bất kỳ thay đổi nào đối với nó. Tôi đã dán nó ở đây: pastebin.com/bB0sskzv . Tôi cũng đã thử thêm server pool.ntp.orgvào đầu danh sách máy chủ, như trong ảnh chụp màn hình của bạn. Tìm ở đây: pastebin.com/YH372Jdi . Với cả hai thiết lập này , tôi đã chạy chuỗi lệnh mà bạn đề xuất: Tôi đã thêm một ảnh chụp màn hình vào bài viết gốc của mình. Kết quả hoàn toàn giống nhau với cả không thay đổi và sửa đổi /etc/ntp.conf. Còn ý tưởng nào khác không? Cảm ơn!
Malte Skoruppa

Điều gì sẽ timedatectl statusquay trở lại
Stormvirux

Xem đầu ra của timedatectl statuslệnh trong bài viết gốc của tôi.
Malte Skoruppa

Bây giờ tôi đã thử với tất cả 4 máy chủ được xác định trước (cụ thể là {0..3}.ubuntu.pool.ntp.org), cả có và không có -utùy chọn. Luôn luôn cùng một lỗi.
Malte Skoruppa

Chỉ cần nói với tôi điều này cũng có. đầu ra củasudo hwclock --show
Stormvirux

8

Sử dụng htpdate

Nếu truyền ntp bị chặn trong mạng của bạn, hãy cài đặt htpdate. Nó đồng bộ thời gian qua giao thức http. Độ chính xác sẽ giảm 0,5 giây, theo trang nam.

sudo apt-get install htpdate
sudo htpdate -a google.com

Dịch vụ htpdate sẽ bắt đầu khi bạn cài đặt gói. Thời gian sẽ được cập nhật ngay lập tức nếu có kết nối internet.


Xin đừng chỉ sao chép và dán cùng một câu trả lời trong mọi chủ đề bạn tìm thấy về ntp.
sempaiscuba

1
Copypasta hay không, giải pháp này hiệu quả với tôi trong khi tôi nhận được ntpdate[22109]: no server suitable for synchronization foundlỗi.
kneeki

4

Tương tự như câu trả lời của Alex, điều này hiệu quả với tôi khi đi vòng quanh cổng ntp đang được tường lửa:

sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
  grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.