web-dev-qa-db-ja.com

ntpdate:同期に適したサーバーが見つかりません

私の時計はオフです、それでntpdateを使用して同期したいと思います。いくつかの異なるNTPサーバーを試しましたが、何らかの理由で次のエラーメッセージが常に表示されます。

$ 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

関連する質問

私は関連する質問に目を通しましたが、私の問題を解決するものはありません:

試したこと

Ntpパッケージをインストールしました

...そして、ntpdユーティリティの代わりにntpdateデーモンを使用してみました。時刻も同期しません。デーモンは正​​常に起動しますが、私の時計はオフのままです。後者の投稿で受け入れられた回答から正確な/etc/ntp.confを使用して、デーモンを再起動することさえ試みました。立ち入り禁止。とにかく、デーモンを使いたくありません。 ntpdateは「非推奨」と見なされることを完全に認識しており、代わりにntpd -qを使用することをお勧めします。こちらもご覧ください:

しかし、ntpdも機能しないため、問題は他の場所にあります。そして、時計を同期するためだけに余分なパッケージをインストールする必要はないことを好みます。 ntpdateはUbuntuにプリインストールされており、それはうまく動作するはずです。そこで、ntpパッケージを再度アンインストールしました。

おそらくポート123がブロックされていますか?

この投稿から:

...職場のコンピューター/ネットワークからポート123がブロックされる可能性があると思いました。確かに、

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

それでも:

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

-uオプションを使用しても、ntpdateに同期のために(ポート123の代わりに)特権のないポートを使用するように指示します。

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

地層が高すぎるのでしょうか?

最後に、serverfaultでのこの投稿から:

... NTPサーバーの階層が高すぎると思いました。しかし、そうではありません。もう少しデバッグ情報を見てみましょう。

$ 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 ...これは長いものでした、ごめんなさい。私は困惑しています。手がかりはありますか?

更新:追加情報

NTPサーバーHOSTNAME/etc/ntp.confにあるかどうかに関係なく、ntpdサービスが実行されているかどうかに関係なく、Sudo ntpdate -u HOSTNAMEを実行するたびにno server suitable for synchronization foundが返されます。 ntpdサービスがnot実行中で、I omit-uオプションの場合も同じです。 ntpdサービスis実行中に-uオプションを省略すると、代わりにthe NTP socket is in use, exitingが返されます。

また:

$ 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

しかし、UTC時間はここでは正しくありません。現在、UTC時間は11:11ではなく12:11です。

そして:

$ Sudo hwclock --show
Wed 05 Mar 2014 01:11:56 PM CET  -0.625627 seconds
81
Malte Skoruppa

ホスティングプロバイダーがntpパケットをブロックしています。この手強いアプローチは、DDoS攻撃への対応として一部のISPによって実装されています。 ntpdateがntpdate -vdからパケットを送信していることがわかります。

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

ISPに連絡して、外部のntp要求をブロックしているかどうか、および時刻同期に使用できるローカルサーバーがあるかどうかを尋ねます。

さらにいくつかのあいまいな可能性がありますが、syslogからログを投稿していないため、それらを除外するのは困難です。

54
dfc

しかし、これはntpの答えではありません...

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

これとcurlバージョン here

42
Alex

私は同じ問題を抱えていましたが、これが私がそれを解決した方法です。私は上から下へ詳細な答えをしました。あなたは私の答えの真ん中にスキップするか、それを一目で理解するために下のスクリーンショットを参照したいかもしれません。

最初 ntpdateをインストールします(明らかにこれを実行しました)

Sudo apt-get install ntpdate

NEXTサーバーでntpを次のように設定する必要があります。

少なくとも/etc/ntp.conf構成ファイルで以下のパラメーターを設定する必要があります。server

たとえば、nano text editorを使用して/etc/ntp.confファイルを開きます。

Sudo nano /etc/ntp.conf

サーバーパラメータを見つけ、空の場合は次のように設定します。

server pool.ntp.org

しかし、通常、ubuntuでは既にいくつかのサーバーが事前に作成されています。

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

enter image description here

その後、ファイルを保存してntpdサービスを再起動します

Sudo /etc/init.d/ntpd start

次のコマンドを使用して、システムクロックをNTPサーバーにすぐに同期できます。

Sudo ntpdate pool.ntp.org

または、既に実行されているサーバーが定義されています

Sudo ntpdate 0.ubuntu.pool.ntp.org

またはサーバーを使用して定義された他のサーバー

一般的に

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

BUTその後、次のようにエラーNTP socket in useが発生する可能性があります。

enter image description here

その場合は単に実行する

ntpdate -u pool.ntp.org 

ntpデーモンの実行中に更新する

または、次のようにデーモンを停止し、更新してから再起動します。

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

あなたは得るでしょう

enter image description here

10
Stormvirux

htpdateを使用

ネットワークでntp送信がブロックされている場合は、htpdateをインストールします。 HTTPプロトコルで時間を同期します。 manページによると、精度は0.5秒以内になります。

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

パッケージをインストールすると、htpdateサービスが開始されます。インターネット接続がある場合、時間はすぐに更新されます。

8
n.r

アレックスの答えと同様に、これはファイアウォールで保護されたntpポートを回避するために私のために働いた:

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

ただの提案。私はしばらくの間この問題を抱えていたが、それが機能し始めたが、私はディスク上にこれ以上のスペースがないがあることを発見した

私たちもこの問題に直面していました。しかし、次のコマンドを押すことで問題を解決することができました。

ssh localhost "Sudo apt-get install ntp ntpdate ; Sudo service ntp stop; Sudo ntpdate 0.ubuntu.pool.ntp.org; Sudo service ntp start"

このためには、openssh-serverをインストールする必要があります。

また、上記のsshコマンドを実行する前に、ntpとntpdate(Sudo apt-get remove --purge ntp ntpdate)を削除します。