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


82

時計が切れているので、を使用して同期したい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私にとっても機能しないため、問題は別の場所にあります。そして、クロックを同期するためだけに余分なパッケージをインストールする必要はないことを好みます。ntpdateUbuntuにプリインストールされているため、正常に動作します。そこで、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

(portの代わりに)特権のないポートを同期に使用する-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 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 ...これは長いものでした、ごめんなさい。私は困惑しています。手がかりはありますか?

更新:追加情報

NTPサーバーHOSTNAMEがに/etc/ntp.conf関係なく、ntpdサービスが実行中かどうかに関係なく、実行するたびにが返されsudo ntpdate -u HOSTNAMEますno server suitable for synchronization foundntpdサービスが実行されておらず、オプションを省略した場合も同じです-untpdサービス実行されているときに-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

`sudo ntpdate ntp.ubuntu.com`を実行したと言っていましたがntp.ubuntu.com/etc/ntp.confsサーバーフィールドに追加した後に実行しました か?次の答えが表示されない場合
-Stormvirux

`sudo ntpdate 0.ubuntu.pool.ntp.orgを試してください
Stormvirux

1
こんにちは、回答に対する私のコメントをご覧ください。に追加しようとしserver pool.ntp.orgまし/etc/ntp.confntpdate -u pool.ntp.orgが、同じエラーがスローされます。私もこれを試してみましたntp.ubuntu.com(追加して/etc/ntp.confntpサービスを再起動ntpdate -uし、追加したばかりのサーバーで再実行します/etc/ntp.conf)。要約すると、同期しようとしているサーバーがに記載されているかどうかは関係ありません/etc/ntp.conf。私が取得するno server suitable...(ときを除いて、すべての場合にエラーをntpサービスが実行されている私は省略し-u、その後、私は取得オプションをNTP socket in useエラー)。
マルテスコルッパ14年

わかりました、私はまた試みましたsudo ntpdate 0.ubuntu.pool.ntp.org、それは既に/etc/ntp.confファイルにあります。運がありません-同じエラー。
マルテスコルッパ14年

回答:


54

ホスティングプロバイダーが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からログをポストしていないため、それらを除外するのは困難です。


6
あなたは完全に正しいです。私たちの大学は外部のNTP要求をブロックしているようです。また、いくつかのローカルNTPサーバーを代替として提供します。これらは完全に機能します。の出力にntpdate -dvはメッセージreceive(...)だけでなく、いくつかのtransmit(...)メッセージも含める必要があることがわかりました。;) どうもありがとう!
マルテスコルッパ14年

ただし、ntpdateこの-uオプションを使用すると、大学はどのようにしてNTPパケットをブロックできますか?これはポート123の代わりに非特権ポートを使用するため、ファイアウォールルールは単に「ポート123で着信パケットをブロックする」よりも複雑でなければならないことを意味します。それでは、彼らはある種の詳細なパケット検査を行うのでしょうか?
マルテスコルッパ14年

1
彼らは言う1つのファイアウォールルールを持つことになります「ブロック123の宛先ポートを持つすべてのトラフィック」、その後、彼らのNTPホストの例外のカップル
DFC

同じ問題がありました。tracerouteアウトバウンドを実行することで解決でき、ntpを実行していたルートに同期できるローカルサーバーが見つかりました。それらの1つがそれをブロックしていました。ヒントをありがとう!
jonespm

1
私にとってntpdate -vdno servers can be used, exiting
highBandWidth

47

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

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

これとcurlバージョンはこちら


13
これはひどいですが、動作します。
アランプラム

4
消毒されていないデータをルートとして実行されるbashコマンドにフィードしますか?プレイしてくれてありがとう。この答えは、極端な偏見を持ってダウンボートされるべきです。
dfc

1
ISPサポートに対処するよりもはるかに痛みが少ない。また、テスト目的でローカルVMで実行する場合は、まったく重要ではありません。
ヤロクイイ

それが何をしているのか説明してもらえますか?
スラジジャイン

1
@SurajJain多くのWebサーバーはDateヘッダーを返します。そのコマンドでは、日付を設定する場合はdate -s、すべてのヘッダーを保存する場合はwget -S、stdoutでエラーを記録する場合は2>&1、ヘッダーの日付を持つピック行の場合はgrep、曜日とGMTのストリップの場合はカットします。UTCとして扱う日付の最後のZ。精度はネットワーク速度に依存します。
user1516873

10

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

最初に 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

ここに画像の説明を入力してください

次に、ファイルを保存して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>

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

ここに画像の説明を入力してください

その場合は単に実行する

ntpdate -u pool.ntp.org 

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

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

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

あなたは得るでしょう

ここに画像の説明を入力してください


こんにちは、詳細な回答ありがとうございます!残念ながら、私にはうまくいきませんでした。/etc/ntp.confUbuntuに付属しているものはありますが、変更を加えたことはありません。私はそれをここに貼り付け:pastebin.com/bB0sskzvを。スクリーンショットに示すように、サーバーリストの一番上に追加server pool.ntp.orgしてみました。そのここで見つける:pastebin.com/YH372Jdiをこれらのセットアップの両方で、あなたが提案した一連のコマンドを実行しました。元の投稿にスクリーンショットを追加しました。結果は、変更されていないものと変更され/etc/ntp.confたものの両方でまったく同じでした。他のアイデアはありますか?ありがとう!
マルテスコルッパ14年

ないものをtimedatectl status返す
Stormvirux

timedatectl status元の投稿のコマンドの出力を参照してください。
マルテスコルッパ14年

オプションの{0..3}.ubuntu.pool.ntp.org有無にかかわらず、4つの定義済みサーバー(つまり、)をすべて試してみ-uました。常に同じエラー。
マルテスコルッパ14年

これも教えてください。出力sudo hwclock --show
Stormvirux

8

htpdateを使用

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

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

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


ntpについて見つかったすべてのトピックに同じ回答をコピーして貼り付けないでください。
センパイスクバ

1
Copypastaであるかどうかにかかわらず、この解決策はntpdate[22109]: no server suitable for synchronization foundエラーを受け取っている間私のために働いた。
ニーキ

4

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

sudo date -s "$(curl http://s3.amazonaws.com -v 2>&1 | \
  grep "Date: " | awk '{ print $3 " " $5 " " $4 " " $7 " " $6 " GMT"}')"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.