Bagaimana cara mengatur server NTP lokal?

16

Saya menginstal server NTP di Ubuntu Server 10,04 menggunakan:

sudo apt-get install ntp

Daemon NTP tampaknya berfungsi dan mendengarkan pada port 123.

Namun, saya tidak bisa mendapatkan waktu dari komputer lain:

sudo ntpdate -u my_ntp_server
23 Nov 18:48:41 ntpdate[2990]: no server suitable for synchronization found

Apakah ada konfigurasi yang perlu dilakukan?

Khaled
sumber

Jawaban:

19

Berikut cara yang baik dari forum Ubuntu: http://ubuntuforums.org/showthread.php?t=862620

Pasta copy yang mencolok:

HOWTO: Mengatur Server NTP

Tutorial ini menjelaskan cara mengatur mesin Anda sebagai server Network Time Protocol (NTP) lokal dan / atau cara menggunakan daemon NTP untuk secara teratur mempertahankan waktu sistem yang akurat.

Apa itu NTP?

Network Time Protocol (NTP) adalah protokol yang dirancang untuk menyinkronkan jam waktu lokal secara akurat dengan server waktu jaringan. Jaringan NTP server waktu diatur sebagai cara hierarkis, sehingga setiap pengguna dapat memasuki sistem sebagai server pada tingkat tertentu (lihat halaman Wikipedia untuk lebih jelasnya).

Hirarki NTP dipisahkan ke dalam berbagai tingkatan, yang disebut strata jam. Level yang paling akurat, Stratum 0, disediakan untuk jam atom, dll. Level berikutnya, Stratum 1, umumnya digunakan oleh mesin jaringan yang terhubung secara lokal ke jam Stratum 0. Stratum 2 ... 15 adalah mesin NTP yang terhubung, pada gilirannya, ke jam tingkat yang lebih rendah dan satu sama lain.

Panduan ini menjelaskan cara menyinkronkan secara akurat dengan mesin Stratum 1 dan 2, dan menjaga jam sistem seakurat mungkin sepanjang hari. Bagian juga disertakan tentang cara memungkinkan mesin Anda beroperasi sebagai server Stratum 2/3 untuk mesin lain di jaringan lokal Anda.

Apakah saya harus membuat server NTP?

Tidak ... sama sekali tidak! Jika Anda puas dengan jam di jaringan Anda yang memiliki beberapa perbedaan yang tidak diketahui dari waktu standar (dan satu sama lain), maka Anda tidak perlu mengatur server NTP. Saya mengatur satu di laptop saya untuk menyinkronkan beberapa mesin pada jaringan lokal dalam waktu <1 ms untuk percobaan bioteknologi. Ada berbagai keuntungan lain, selain itu, yang dijelaskan di bawah ini.

Motivasi:

Secara teratur, kotak Ubuntu yang tidak dimodifikasi menggunakan ntpdate ( /usr/sbin/ntpdate) untuk menyinkronkan jam secara berkala dengan beberapa server waktu eksternal. Pendekatan ini menyinkronkan jam dengan resolusi kursus (biasanya sekali sehari).

Jam komputer tidak sempurna, dan akan melayang dari server waktu (yang benar) pada siang hari. Lebih jauh lagi, tingkat penyimpangan dalam jam dari komputer yang berbeda berbeda, sehingga pada akhir hari perbedaan yang signifikan mungkin ada antara mesin jaringan lokal yang berbeda, yang dapat mengganggu operasi tertentu (misalnya, pernah memiliki keluhan makefile ketika memindahkan kode sumber di antara mesin yang berbeda?).

Dimungkinkan untuk menjalankan daemon NTP secara lokal pada mesin di jaringan Anda. Ini memiliki banyak keuntungan: pertama, daemon NTP secara bertahap "mempelajari" tingkat penyimpangan mesin lokal Anda, dan dapat memperbaikinya sepanjang hari. Sinkronisasi dengan server waktu tingkat atas terjadi beberapa kali sehari, dan banyak server waktu yang berbeda dapat digunakan secara bersamaan untuk membuat sinkronisasi lebih akurat. Dengan cara ini, daemon NTP bertindak sebagai klien waktu yang akurat, menjaga jam sistem Anda sedekat mungkin dengan waktu standar.

Selain mempertahankan jam sistem yang akurat, daemon NTP memungkinkan mesin di jaringan Anda (jika Anda mau) beroperasi sebagai server waktu NTP. Melakukannya akan memungkinkan mesin lain di jaringan lokal Anda untuk melakukan sinkronisasi dengan server waktu LAN Anda dengan cara yang sangat cepat dan akurat, karena latensi jaringan diminimalkan. Dengan cara ini, perbedaan jam antara mesin di jaringan Anda dibuat seminimal mungkin. Mac, dan bahkan kotak Windows juga dapat disinkronkan dengan server NTP, jika Anda mengaturnya.

Ada motivasi lain, kurang pribadi, untuk menyiapkan mesin sebagai server NTP. Pertama, hal itu dapat mengurangi ketegangan pada server NTP tingkat yang lebih tinggi, karena mesin lain pada LAN Anda dapat menyinkronkan dengan server waktu yang dibuat secara lokal. Juga, ntpdate telah ditinggalkan karena menggunakan flag -q untuk ntpd (yang meniru fungsinya). Jadi, bahkan jika Anda tidak ingin menjalankan ntpd terus-menerus di latar belakang, ntpdate akhirnya akan diganti dengan ntpd, jadi Anda mungkin ingin membiasakannya sekarang

Cara Menjaga Jam Sistem yang Akurat dengan ntpd

  1. Instal daemon NTP

Pertama, instal NTP daemon (ntpd):

sudo aptitude install ntpd

Seperti yang disebutkan sebelumnya, ntpd dapat bertindak sebagai klien (menyinkronkan waktu sistem Anda) dan sebagai server (menyediakan waktu yang akurat untuk mesin lain).

Secara opsional, Anda mungkin juga ingin menghapus program sinkronisasi waktu (usang) sebelumnya, ntpdate. Mungkin lebih bijak untuk melakukannya setelah Anda ntpd bekerja

sudo aptitude remove ntpdate
  1. Konfigurasikan daemon dengan benar

File konfigurasi untuk ntpd terletak di /etc/ntp.conf. File Ubuntu default mungkin memerlukan beberapa modifikasi untuk kinerja yang optimal.

Bagian pertama yang Anda mungkin ingin modifikasi adalah daftar server untuk disinkronkan. Bagian default mungkin terlihat sebagai berikut:

# You do need to talk to an NTP server or two (or three).
server ntp.ubuntu.com

Untuk mendapatkan waktu seakurat mungkin, lebih baik untuk berkomunikasi dengan beberapa server NTP yang berbeda, dan menjaga mereka sedekat mungkin dengan lokasi fisik Anda. Ada berbagai daftar server yang berbeda secara online, mungkin yang terbaik terletak di sini. Ada beberapa perdebatan tentang jumlah server yang tepat untuk digunakan. Satu lebih baik dari dua, dan tiga atau lebih mungkin adalah ide yang bagus, asalkan Anda tidak terlalu berlebihan. Contoh beberapa server waktu yang saya gunakan berikut:

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

Setelah beberapa server bagus ditemukan, tambahkan mereka ke dalam daftar, letakkan 'iburst'setelah yang paling menjanjikan. Contohnya:

server nist1-dc.WiTime.net iburst

Ini akan menyebabkan ntpd menyinkronkan dengan sangat cepat dengan server ini setelah memulai. Jika tidak, ntpd perlahan-lahan akan cenderung menuju persetujuan dengan daftar server (seperti sifatnya), dan mungkin butuh 15-20 menit untuk menyinkronkan dengan cukup baik untuk bertindak sebagai server waktu untuk sisa jaringan Anda.

Juga, tambahkan beberapa baris tambahan ke bagian bawah daftar server Anda untuk memberikan waktu lokal Anda saat ini sebagai default jika Anda kehilangan konektivitas internet untuk sementara:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Ini akan mencegah nastiness apa pun jika Anda menjalankan ntpd pada laptop atau komputer lain dengan periode terputus-putus terputus dari Internet.

Secara keseluruhan, daftar server akan terlihat mirip dengan yang berikut ini (ini milik saya, server Anda mungkin akan berbeda):

# 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
  1. Pastikan konfigurasi berfungsi

Sekarang Anda memiliki daftar server yang tepat dalam /etc/ntp.conffile Anda , sekarang saatnya untuk menjalankan daemon dan melihat apakah Anda melakukan sinkronisasi dengan benar! Pastikan Anda memiliki koneksi Internet aktif, dan kemudian jalankan:

sudo /etc/init.d/ntp restart

Selanjutnya, monitor log sistem Anda untuk melihat apakah Anda melakukan sinkronisasi dengan server waktu:

tail -f /var/log/syslog

Dalam waktu sekitar 10-15 detik (atau hingga 15-20 menit jika Anda lupa meletakkan 'iburst' di server favorit Anda), Anda akan melihat sesuatu seperti yang berikut ini di log sistem Anda:

Jul 17 16:50:22 hostname ntpd[22402]: synchronized to 140.221.9.20, stratum 2

Jika pesan ini tidak pernah datang, Anda belum disinkronkan dengan baik dengan jaringan server NTP. Periksa daftar rekan NTP yang Anda ajak berkomunikasi menggunakan hal berikut:

ntpq -c lpeer

Jika bidang 'tunda', 'offset', dan 'jitter' tidak nol dan Anda belum menyinkronkan, itu mungkin berarti Anda hanya perlu menunggu beberapa saat. Periksa lagi bahwa Anda telah memasukkan argumen 'iburst' ke daftar server Anda! Rekan-rekan saya, untuk referensi, terlihat seperti berikut:

     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
  1. Bagikan! (pilihan)

Setelah ntpd berjalan dan disinkronkan dengan server waktu yang Anda pilih, Anda dapat mengaturnya untuk bertindak sebagai server waktu untuk mesin lain. Untuk melakukannya, tambahkan bagian seperti berikut ini ke /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.
  1. Sinkronkan! (pilihan)

Setelah mengatur server NTP menggunakan langkah 1-4, Anda dapat menyinkronkan mesin lain di jaringan Anda dengan server Anda dengan berbagai cara. Saya uraikan beberapa di bawah ini:

ntpd:

Jika Anda telah menginstal ntpd di komputer lain, Anda dapat menggunakan server pertama Anda di daftar server file ntp.conf Anda, atau dapat menyinkronkan satu kali dengan opsi -q, sebagai berikut:

ntpd -q [IP address of your server]

ntpdate:

Jika Anda masih menginstal ntpdate di komputer lain, Anda dapat menggunakannya untuk menyinkronkan dengan server Anda sebagai berikut:

ntpdate [IP address of your server]

Catatan: jika Anda menjalankan ntpd pada mesin dan untuk beberapa alasan masih ingin menggunakan ntpdate untuk mengatur waktu, Anda harus menggunakan opsi -u.

Windows:

Mesin Windows menggunakan versi NTP yang disederhanakan yang disebut Simple Network Time Protocol (SNTP), dan dapat disinkronkan dengan server NTP. Untuk menyinkronkan dengan server baru Anda, klik dua kali pada waktu dan pergi ke tab "Waktu Internet". Masukkan alamat IP server Anda di bidang "Server". Saya telah memasang tangkapan layar Windows XP yang disinkronkan dengan server waktu LAN, siapa pun boleh tertarik.

Itu dia! Seluruh proses tidak sulit, tetapi dapat membingungkan seseorang yang belum banyak berurusan dengan jaringan NTP sebelumnya. Saya harap ini membantu! Beri tahu saya jika Anda memiliki masalah mengatur server Anda.

Mike

Tautan

Saya menemukan tautan berikut bermanfaat ... Anda mungkin juga!

https://help.ubuntu.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

RobotHumans
sumber
Terima kasih untuk tautannya. Sebenarnya, saya tidak mengubah konfigurasi saya! Itu hanya berfungsi setelah beberapa waktu.
Khaled
pada server ntp Anda, Anda dapat menjalankannya ntpdate -s a_stratum_1_server_addressuntuk memaksa sinkronisasi segera. kemudian pada mesin (klien) Anda yang lain, menjalankan 'ntpdate -q your_local_ntp_server` harus merespons dengan sesuatu yang mirip denganserver your_local_ntp_server_ip, stratum 2, offset -0.012221, delay 0.02618
Keith Reynolds
Satu-satunya jawaban tautan bisa kedaluwarsa. Harap sertakan informasi penting dalam jawaban itu sendiri.
Zeta
5

Ada banyak tautan tentang ini dan menurut saya mereka mempersulit prosedur. Dalam kasus saya, saya memiliki satu mesin yang bertindak sebagai server proxy dan firewall, dan semua yang lain terhubung ke internet melalui itu. Saya tidak ingin membuka port pada firewall. Oleh karena itu proxy server harus menjadi waktu (ntp) Server dan mesin lain ( klien ) mendapatkan waktu dari itu.

Anda harus menginstal ntp pada semua mesin, dan Anda harus menginstal ntpq pada semuanya.

Pertama, lihat apakah ntp berfungsi. Secara default, ntpd (daemon ntp) akan berjalan segera setelah diinstal, dan defaultnya akan berfungsi. Namun, ntp tidak bekerja secara instan, jadi tunggu sebentar. Lalu, perintahnya:

ntpq -c lpeer

seharusnya memberi Anda output yang terlihat seperti ini:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+golem.canonical 193.79.237.14    2 u  170 1024  377  140.458   -0.655   3.234
*gatekeeper.tss. 204.123.2.72     2 u  608 1024  377   84.650    2.168   0.471

atau:

ntpq --numeric --peers

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+91.189.89.199   193.79.237.14    2 u  652 1024  377  140.151   -0.242   2.821
*66.7.96.1       204.123.2.72     2 u   64 1024  377   85.074    2.409   0.963

Jika demikian, Anda terhubung dan server waktu Anda mendapatkan waktu. Jika tidak, gunakan

ps -e | grep "ntp" 

untuk memastikan ntp dalam menjalankan, dan coba lagi. Coba juga memulai kembali ntp:

sudo /etc/init.d/ntp restart

mungkin butuh "waktu" (maaf!) ​​sebelum koneksi dibuat. Dasmon tidak terlalu sering melakukan polling pada server. Kolom "kapan" di output di atas menunjukkan waktu dalam detik sejak server disurvei.

Sekarang, Anda harus membuat server waktu mengirim waktu ke komputer Anda yang lain.

Edit file /etc/ntp.confdi server. Anda harus menambahkan garis untuk jaringan Anda. Dalam kasus saya, saya memiliki jaringan 10.0.0.0. Dalam file ntp.conf, saya menambahkan baris:

broadcast 10.255.255.255

Anda harus menambahkan saluran siaran untuk setiap segmen jaringan Anda. Jika jaringan Anda sederhana seperti milik saya, satu baris seperti di atas adalah semua yang Anda butuhkan. Sekarang, restart ntp menggunakan perintah di atas, dan periksa lagi menggunakan ntpq, dan Anda akan melihat:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+golem.canonical 193.79.237.14    2 u   70 1024  377  140.151   -0.242   2.821
*gatekeeper.tss. 204.123.2.72     2 u  506 1024  377   84.650    2.168   0.241
 10.255.255.255  .BCST.          16 u    -   64    0    0.000    0.000   0.002

Voila, ini siaran.

Sekarang, Anda harus membuat setiap mesin klien mendapatkan waktu dari server penyiaran Anda. Pada masing-masing, edit file:

/etc/ntp.conf

dan Anda akan melihat beberapa baris menentukan server.

tambahkan satu baris

server 10.10.10.1

atau apa pun alamat server Anda. Kemudian restart ntp pada mesin klien menggunakan perintah di atas. Atau, Anda bisa mendapatkan ID proses dan hanya membunuhnya, dan menjalankannya lagi. Masa bodo.

Kemudian, setelah waktu yang cukup, periksa dengan ntpq:

ntpq --numeric --peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.10.10.1      66.7.96.1        3 u  123 1024  377    0.430    1.022   1.831

dan Anda dapat melihat bahwa klien menggunakan server waktu.

Ini membutuhkan waktu.

Pemboros
sumber
Anda dapat berjalan ntpdate -s a_stratum_1_server_addressdi server ntp Anda untuk memaksanya melakukan polling dan menyinkronkan segera.
Keith Reynolds
Apakah jenis siaran ini didukung oleh semua sakelar? Misalnya siaran UDP sedang diblokir oleh sebagian besar switch / router.
Tanasis
1

Jawaban yang diterima (seperti untuk Juli 2018) tidak berhasil untuk saya. Metode lain ini bekerja dengan baik di Ubuntu 16.04 LTS pada Juli 2018:

Instal NTP jika tidak diinstal:

sudo apt-get update
sudo apt-get install ntp

Edit file konfigurasi untuk memungkinkan layanan NTP menerima permintaan:

sudo nano /etc/ntp.conf --syntax=sh

Batalkan komentar pada baris ini:

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
# broadcast 192.168.111.255

untuk:

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
broadcast 192.168.111.255

Mulai ulang layanan NTP :

sudo /etc/init.d/ntp restart

Sekarang server NTP Anda harus berfungsi dan memungkinkan komputer lain untuk melakukan sinkronisasi dengan komputer Anda. Salah satu dari tes di atas, seperti yang ntpdate -u YourComputerseharusnya berfungsi OK.

Sopalajo de Arrierez
sumber