Bagaimana mencegah ntpd untuk mendengarkan pada 0.0.0.0:12:12?

29

ntpd mendengarkan pada banyak antarmuka secara default, saya hanya ingin mendengarkan pada 127.0.0.1:123 karena saya hanya ingin localhost untuk menyinkronkan waktu.

Bagaimana cara melakukannya, saya mencoba dengan mengedit /etc/ default / ntp di Debian Wheezy:

NTPD_OPTS='-4 -I 127.0.0.1'

Tetapi masih mendengarkan secara global pada 0.0.0.0:123

Ada ide?

JohnnyFromBF
sumber
Saya ingin tahu apa tujuan utama Anda di sini. Sinkronisasi dengan localhost tidak masuk akal dan tidak akan berfungsi sama sekali secara default tanpa fudgepernyataan. Apa yang ingin Anda capai?
Ladadadada
@Ladadada Kami memiliki server ntp di sini di dalam LAN. Klien linux kami harus memiliki waktu yang tepat, tetapi alih-alih menjalankan cronjob setiap jam, ntpdate -B timeserverkami ingin menjalankan ntpd pada setiap klien dengan hanya 127.0.0.1:123 yang menanyakan penghitung waktu di LAN. Apakah ada yang salah dengan itu?
JohnnyFromBF
4
Pada klien, port mendengarkan hanya digunakan untuk menanyakan keadaan daemon saat ini. The servergaris dalam Anda ntpdkonfigurasi klien menentukan siapa Anda sinkron dengan. Jika serverbaris Anda mengatakan 127.0.0.1, Anda memiliki masalah. Jika mereka menunjuk pada pusat waktu Anda, semuanya akan baik-baik saja.
Ladadadada

Jawaban:

34

Hapus semua -Iatau --interfaceopsi dari /etc/default/ntpdan masukkan yang berikut ke /etc/ntp.conf:

interface ignore wildcard
interface listen 127.0.0.1
interface listen ::1
# NOTE: if you want to update your time using remote machines,
# add at least one remote interface address:
#interface listen 2001:db8::1
#interface listen 192.0.2.1

Kutipan dari ntpd(1)halaman manual tentang -iopsi:

Opsi ini juga menyiratkan tidak membuka alamat lain, kecuali wildcard dan localhost. Silakan pertimbangkan untuk menggunakan perintah antarmuka file konfigurasi, yang lebih fleksibel.

Lihat juga halaman manual Debian (saya tidak dapat menemukannya di Arch Linux) dari ntp.conf(5).

Lekensteyn
sumber
6
ntp perlu diikat pada antarmuka yang bisa dirutekan untuk dapat menyinkronkan dengan server waktu. Lihat jawaban meepmeep di bawah ini.
organic-mashup
17

Dengan mendengarkan ntp hanya di 127.0.0.1, sepertinya ia tidak dapat memulai koneksi ke server ntp publik:

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
ks370079.kimsuf **.INIT.**       16 -    -   64    0    0.000    0.000   0.000

Itu harus mengikat ke alamat ip routable untuk bekerja.

meepmeep
sumber
Terima kasih atas pengamatan ini dan contoh Anda yang menunjukkan cara memverifikasi bahwa memang ini masalahnya.
ColinM
6

Penuh /etc/ntp.conf protokol itu netral (IPv4 & | IPv6)

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

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

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict lo

interface ignore wildcard
interface listen lo

sumber
6

Jika Anda ingin mengurangi jumlah layanan mendengarkan karena alasan keamanan, openntpd dapat dipertimbangkan, karena tidak memerlukan server pendengaran untuk bertindak sebagai klien. Itu dianggap sedikit kurang akurat daripada ntpd; ini dapat diandalkan dalam beberapa ratus ms, tetapi ini cocok untuk sebagian besar tujuan.

peniru
sumber