ntpdate: tidak ada server yang cocok untuk sinkronisasi ditemukan

82

Jam saya mati , jadi saya ingin menyinkronkannya menggunakan ntpdate. Saya mencoba beberapa server NTP yang berbeda, tetapi untuk beberapa alasan saya selalu mendapatkan pesan kesalahan berikut:

$ 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

Pertanyaan-pertanyaan Terkait

Saya telah memeriksa pertanyaan terkait , tetapi tidak ada yang menyelesaikan masalah saya:

Hal yang sudah saya coba

Saya menginstal paket ntp

... dan mencoba menggunakan ntpddaemon alih-alih ntpdateutilitas. Itu tidak akan menyinkronkan waktu saya juga; daemon dimulai dengan baik, tetapi jam saya tetap mati. Saya bahkan mencoba menggunakan jawaban yang tepat /etc/ntp.confdari yang diterima di postingan terakhir, dan memulai ulang daemon. Tidak pergi. Lagi pula, saya tidak ingin menggunakan daemon. Saya sangat menyadari bahwa ntpdatedianggap "usang", dan disarankan untuk menggunakannya ntpd -q. Lihat juga di sini:

Tetapi karena ntpdtidak berhasil juga untuk saya, masalahnya ada di tempat lain . Dan saya menemukan bahwa saya lebih suka tidak harus menginstal paket tambahan hanya untuk menyinkronkan jam. ntpdatesudah diinstal sebelumnya dengan Ubuntu, dan seharusnya berfungsi dengan baik . Jadi saya menghapus ntppaket lagi.

Mungkin port 123 diblokir?

Dari pos ini:

... Saya mendapat ide bahwa port 123 dapat diblokir dari komputer / jaringan saya di tempat kerja saya. Memang,

$ 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
...

Tetapi tetap saja:

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

Bahkan dengan -uopsi, yang memberitahu ntpdateuntuk menggunakan port unprivileged untuk menyinkronkan (bukan port 123) yang tentu saja tidak diblokir dari tempat kerja saya:

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

Mungkin strata terlalu tinggi?

Terakhir, dari pos ini di serverfault:

... Saya pikir mungkin strata dari server NTP terlalu tinggi. Tapi mereka tidak. Mari kita lihat sedikit info debugging:

$ sudo ntpdate -dv ntp.ubuntu.com
 4 Mar 13:12:24 ntpdate[4523]: ntpdate [email protected] 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 ... ini sudah lama, maaf untuk itu. Saya bingung. Ada petunjuk?

Perbarui: info tambahan

Tidak masalah apakah server NTP HOSTNAMEmasuk /etc/ntp.conf, dan tidak peduli apakah ntpdlayanan berjalan atau tidak, setiap kali saya menjalankan sudo ntpdate -u HOSTNAME, saya dapatkan no server suitable for synchronization found. Hal yang sama ketika ntpdlayanan tidak berjalan dan aku menghilangkan yang -upilihan. Ketika ntpdlayanan ini berjalan dan saya menghilangkan -upilihan, saya malah mendapatkan the NTP socket is in use, exiting.

Juga:

$ 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

Tetapi waktu UTC tidak benar di sini. Saat ini waktu UTC adalah 11:11, tidak 12:11.

Dan:

$ sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET  -0.625627 seconds
Malte Skoruppa
sumber
Anda bilang Anda menjalankan `sudo ntpdate ntp.ubuntu.com` tetapi apakah Anda melakukannya setelah menambahkan ntp.ubuntu.comke /etc/ntp.confbidang server? Jika tidak melihat jawaban berikut
Stormvirux
coba `sudo ntpdate 0.ubuntu.pool.ntp.org
Stormvirux
1
Hai, lihat komentar saya untuk jawaban Anda. Saya mencoba menambahkan server pool.ntp.orgke /etc/ntp.conf, tapi ntpdate -u pool.ntp.orgmelempar kesalahan yang sama. Saya juga mencoba ini dengan ntp.ubuntu.com(menambahkannya ke /etc/ntp.conf, memulai kembali ntplayanan, menjalankan kembali ntpdate -upada server yang tepat saya baru saja ditambahkan ke /etc/ntp.conf). Kesimpulannya, tidak masalah jika server yang saya coba sinkronkan disebutkan/etc/ntp.conf . Saya mendapatkan no server suitable...kesalahan dalam semua kasus (kecuali ketika ntplayanan berjalan dan saya menghilangkan -uopsi, maka saya mendapatkan NTP socket in usekesalahan).
Malte Skoruppa
Ok, saya juga mencoba sudo ntpdate 0.ubuntu.pool.ntp.org, yang sudah ada dalam /etc/ntp.conffile. Tidak berhasil - kesalahan yang sama.
Malte Skoruppa

Jawaban:

54

Penyedia hosting Anda memblokir paket ntp. Pendekatan bertangan berat ini telah diterapkan oleh beberapa ISP dalam menanggapi serangan DDoS. Anda dapat melihat bahwa ntpdate mengirimkan paket dari ntpdate -vd:

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

Saya akan menghubungi ISP Anda dan menanyakan apakah mereka memblokir permintaan ntp eksternal dan apakah mereka memiliki server lokal yang dapat Anda gunakan untuk sinkronisasi waktu.

Ada beberapa kemungkinan yang lebih tidak jelas tetapi sulit untuk mengesampingkannya karena Anda belum memposting log dari syslog.

dfc
sumber
6
Anda benar sekali. Tampaknya universitas kami memblokir permintaan NTP eksternal. Ia juga menawarkan beberapa server NTP lokal sebagai alternatif. Ini bekerja dengan sempurna. Saya melihat sekarang bahwa output dari ntpdate -dvjuga harus mencakup beberapa receive(...)dan bukan hanya transmit(...)pesan. ;) Terimakasih banyak!
Malte Skoruppa
Satu pertanyaan meskipun, bagaimana bisa universitas paket blok NTP ketika saya menggunakan ntpdatedengan -upilihan? Karena ini menggunakan port unprivileged daripada port 123, itu berarti aturan firewall mereka harus lebih kompleks daripada sekadar "memblokir paket yang masuk pada port 123". Jadi apakah mereka melakukan semacam inspeksi paket yang mendalam?
Malte Skoruppa
1
Mereka akan memiliki satu aturan firewall yang mengatakan "Blokir semua lalu lintas dengan port tujuan 123" dan kemudian beberapa pengecualian untuk host ntp mereka
dfc
Saya punya masalah yang sama. Saya dapat mengatasinya dengan melakukan outbound traceroute dan saya menemukan server lokal pada rute yang saya bisa sinkronkan dengan yang menjalankan ntp. Salah satu dari mereka memblokirnya. Terima kasih atas tipsnya!
jonespm
1
Bagi saya, ntpdate -vdkata no servers can be used, exiting.
highBandWidth
47

Ini bukan jawaban ntp, namun ...

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

ini dan versi ikal di sini .

Alex
sumber
13
Ini mengerikan, tetapi berhasil.
Alan Plum
4
Mengumpankan data yang tidak bersih ke perintah bash dijalankan sebagai root? Terima kasih luar biasa untuk bermain. Jawaban ini harus diturunkan dengan prasangka ekstrem.
dfc
1
Jauh lebih menyakitkan daripada harus berurusan dengan dukungan ISP. Juga, tidak kritis sama sekali jika dijalankan di VM lokal untuk tujuan pengujian.
Yalok Iy
Bisakah Anda jelaskan apa yang dilakukannya?
Suraj Jain
1
@ SurajJain Banyak web server mengembalikan Dateheader. Pada tanggal perintah itu -s untuk tanggal yang ditetapkan, wget -S untuk menyimpan semua header, 2> & 1 untuk kesalahan logging di stdout, ambil untuk memilih garis dengan Tanggal header, potong untuk hari strip minggu dan GMT. Z pada akhirnya untuk tanggal memperlakukan sebagai UTC. Akurasi akan tergantung pada kecepatan jaringan.
user1516873
10

Saya memiliki masalah yang sama dan ini adalah bagaimana saya menyelesaikannya. Saya telah memberikan jawaban terinci dari atas ke bawah. Anda mungkin ingin melompat ke tengah jawaban saya atau merujuk screenshot di bawah ini untuk memahaminya dalam sekejap.

Pertama instal ntpdate (Jelas Anda telah melakukan ini)

sudo apt-get install ntpdate

NEXT Anda perlu mengkonfigurasi ntp dengan server sebagai berikut:

Anda setidaknya harus menetapkan parameter berikut di file config /etc/ntp.conf: server

Misalnya, buka file /etc/ntp.conf menggunakan editor teks nano:

sudo nano /etc/ntp.conf

Temukan parameter server dan jika kosong atur sebagai berikut:

server pool.ntp.org

Tapi biasanya Di ubuntu sudah ada beberapa server yang sudah diprogram yang mungkin

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

masukkan deskripsi gambar di sini

Kemudian Simpan file dan mulai ulang layanan ntpd :

sudo /etc/init.d/ntpd start

Anda dapat menyinkronkan jam sistem ke server NTP segera dengan perintah berikut:

sudo ntpdate pool.ntp.org

atau hanya menjalankan server yang sudah ditentukan

sudo ntpdate 0.ubuntu.pool.ntp.org

atau server lain yang ditentukan menggunakan server

umumnya

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

TAPI setelah itu ada kemungkinan Anda mendapatkan Kesalahan NTP socket in useseperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

Dalam hal ini jalankan saja

ntpdate -u pool.ntp.org 

untuk memperbarui ketika ntp deamon sedang berjalan

ATAU hentikan deamon saja, perbarui dan mulai lagi seperti berikut:

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

dan kamu akan mendapatkan

masukkan deskripsi gambar di sini

Stormvirux
sumber
Hai, terima kasih atas jawaban terinci Anda! Sayangnya itu tidak berhasil untuk saya. Saya memiliki /etc/ntp.confyang datang bersama Ubuntu, tidak pernah melakukan perubahan apa pun terhadapnya. Saya menempelkannya di sini: pastebin.com/bB0sskzv . Saya juga mencoba menambahkan server pool.ntp.orgdi bagian atas daftar server, seperti yang ditunjukkan pada tangkapan layar Anda. Temukan itu di sini: pastebin.com/YH372Jdi . Dengan kedua pengaturan ini , saya menjalankan urutan perintah yang Anda usulkan: Saya menambahkan tangkapan layar ke pos asli saya. Hasilnya persis sama dengan yang tidak dimodifikasi dan yang dimodifikasi /etc/ntp.conf. Ada ide lain? Terima kasih!
Malte Skoruppa
apa yang timedatectl statuskembali
Stormvirux
Lihat output dari timedatectl statusperintah di posting asli saya.
Malte Skoruppa
Saya sekarang telah mencoba dengan semua 4 server yang telah ditentukan (yaitu, {0..3}.ubuntu.pool.ntp.org), baik dengan dan tanpa -uopsi. Selalu kesalahan yang sama.
Malte Skoruppa
katakan saja padaku yang ini juga. output darisudo hwclock --show
Stormvirux
8

Gunakan htpdate

Jika transmisi ntp diblokir di jaringan Anda, instal htpdate. Ini menyinkronkan waktu melalui protokol http. Akurasi akan terjadi dalam 0,5 detik, menurut halaman manual.

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

layanan htpdate akan dimulai ketika Anda menginstal paket. Waktu akan segera diperbarui jika ada koneksi internet.

no
sumber
Tolong jangan hanya menyalin dan menempelkan jawaban yang sama di setiap topik yang Anda temukan tentang ntp.
sempaiscuba
1
Copypasta atau tidak, solusi ini berfungsi untuk saya ketika saya menerima ntpdate[22109]: no server suitable for synchronization foundkesalahan.
kneeki
4

Mirip dengan jawaban Alex, ini bekerja untuk saya untuk mendapatkan sekitar port ntp yang di-firewall:

sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
  grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"
Willem van Ketwich
sumber