Full AI

DNSが死んでいてもmacOSの時計をNTPで直す ... users

この記事は、実際の復旧ログを元に Full AI で整理した記事です。個人環境のユーザー名、ホスト名、端末名、プロンプト文字列は載せていません。

はじめに

macOS の時計が数日ずれていました。

最初にやったのは素直に NTP 同期です。

sudo sntp -sS ntp.nict.jp

ところが、返ってきたのはこれでした。

sntp: Exchange failed: DNS lookup failure
sntp_exchange {
        result: 1 (DNS lookup failure)
        header: 00 (li:0 vn:0 mode:0)
       stratum: 00 (0)
          poll: 00 (1)
     precision: 00 (1.000000e+00)
         delay: 0000.0000 (0.000000000)
    dispersion: 0000.0000 (0.000000000)
}

時計を直したいのに、NTP サーバー名を DNS で引けない。こういう時は、先に DNS を直すより、まず時計を NTP サーバーの IP アドレスへ直接当てて復旧する方が早いことがあります。

今回はその手順で、時計、DNS、自動時刻設定まで戻しました。

状況

最初の date は 2026-06-24 を指していました。本来は 2026-06-30 なので、約 5 日半ずれています。

Wed Jun 24 22:21:35 JST 2026

この状態で sudo sntp -sS ntp.nict.jp を実行しても、ntp.nict.jp の名前解決ができずに失敗しました。

ここで重要なのは、NTP 通信そのものが失敗しているのか、NTP サーバー名の DNS 解決だけが失敗しているのかを分けることです。

IP 直指定で時計を戻す

DNS が壊れている時は、NTP サーバー名ではなく IP アドレスを直接指定します。

sudo sntp -sS 133.243.238.163
date

今回の結果はこうでした。

+472987.781619 +/- 0.022394 133.243.238.163 133.243.238.163
Tue Jun 30 09:44:44 JST 2026

+472987.781619 秒、つまり約 5.47 日ぶん時計がずれていました。IP 直指定で sntp が通ったので、UDP/123 の NTP 通信は生きていて、最初の失敗は DNS lookup failure だったと切り分けられます。

この IP 指定は復旧用の一時対応です。NICT の案内では、通常の NTP サーバー設定には ntp.nict.jp を使います。

DNS を直す

時計が戻ったら、DNS を直します。Wi-Fi を使っている場合は、まず DNS サーバーを明示します。

networksetup -setdnsservers Wi-Fi 1.1.1.1 8.8.8.8
scutil --dns | head -80

ネットワークサービス名が Wi-Fi ではない場合は、先に一覧を見ます。

networksetup -listallnetworkservices

今回の scutil --dns では、デフォルト resolver に 1.1.1.18.8.8.8 が入り、reachability も Reachable になりました。

DNS configuration

resolver #1
  nameserver[0] : 1.1.1.1
  nameserver[1] : 8.8.8.8
  flags    : Request A records
  reach    : 0x00000002 (Reachable)

名前解決できることを確認する

DNS を設定したら、digntp.nict.jp が引けるか確認します。

dig ntp.nict.jp

今回の結果では、1.1.1.1 から ntp.nict.jp の A レコードが返りました。

;; ->>HEADER<<- opcode: QUERY, status: NOERROR

;; ANSWER SECTION:
ntp.nict.jp.  83377  IN  A  133.243.238.164
ntp.nict.jp.  83377  IN  A  133.243.238.163
ntp.nict.jp.  83377  IN  A  61.205.120.130
ntp.nict.jp.  83377  IN  A  133.243.238.244
ntp.nict.jp.  83377  IN  A  133.243.238.243

;; SERVER: 1.1.1.1#53(1.1.1.1)

これで DNS は復旧しています。

ホスト名で NTP 同期する

DNS が戻ったので、今度は本来のホスト名で NTP 同期します。

sudo sntp -sS ntp.nict.jp
date

最初はまだ 2 秒ほどずれていました。

+2.018556 +/- 0.021909 ntp.nict.jp 133.243.238.243

もう一度実行すると、差分は 1 ミリ秒未満まで詰まりました。

+0.000906 +/- 0.022017 ntp.nict.jp 133.243.238.243
Tue Jun 30 09:46:58 JST 2026

ここまで来たら、時計と DNS の両方が復旧しています。

macOS の自動時刻設定を戻す

最後に macOS の自動時刻設定を確認します。

sudo systemsetup -getusingnetworktime
sudo systemsetup -getnetworktimeserver
date

今回の最終結果はこれでした。

Network Time: On
Network Time Server: ntp.nict.jp
Tue Jun 30 09:47:27 JST 2026

自動時刻設定が ON で、時刻サーバーも ntp.nict.jp になっています。これで完了です。

途中で出たエラー

復旧途中で、次のエラーも出ました。

Could not kickstart service "com.apple.timed": 150: Operation not permitted while System Integrity Protection is engaged

SIP が有効な macOS では、com.apple.timedlaunchctl kickstart で直接再起動できないことがあります。今回の復旧では、この操作は必須ではありませんでした。

また、時計が大きく戻った直後に sudo が次の警告を出しました。

sudo: ignoring time stamp from the future

これは sudo の認証キャッシュ時刻が、時計変更の影響で未来扱いになった警告です。時計が正常化したあとに再認証すれば、そのまま進められました。

systemsetup の設定変更中には Error:-99 も出ましたが、最終的には getusingnetworktimegetnetworktimeserver で正しい状態を確認できました。エラー表示だけで止めず、最後に現在状態を読むのが大事です。

復旧コマンドまとめ

DNS が壊れていて sudo sntp -sS ntp.nict.jpDNS lookup failure になる時は、まず IP 直指定で時計を戻します。

sudo sntp -sS 133.243.238.163
date

次に DNS を明示します。

networksetup -setdnsservers Wi-Fi 1.1.1.1 8.8.8.8
scutil --dns | head -80
dig ntp.nict.jp

最後にホスト名で NTP 同期して、自動時刻設定を確認します。

sudo sntp -sS ntp.nict.jp
sudo systemsetup -getusingnetworktime
sudo systemsetup -getnetworktimeserver
date

再現手順と確認日

  • 確認日: 2026-06-30 JST
  • 確認環境: macOS の標準コマンド sntp, systemsetup, networksetup, scutil, dig
  • 再現した症状: sudo sntp -sS ntp.nict.jpDNS lookup failure で失敗
  • 復旧確認: sudo sntp -sS ntp.nict.jp+0.000906 秒差で成功し、systemsetupNetwork Time: OnNetwork Time Server: ntp.nict.jp を返した

参考

おわりに

今回のポイントは、ntp.nict.jp が引けない時点で「NTP が壊れている」と決めつけず、NTP サーバーの IP アドレスへ一度だけ直接当てたことです。

IP 直指定で時計が戻れば、NTP 通信は生きています。そのあと DNS を直し、最後に ntp.nict.jp というホスト名で同期できる状態へ戻せば、macOS の自動時刻設定まできれいに復旧できます。