↓ メインコンテンツへスキップ
  1. Linux 関連記事一覧/
  2. Ubuntu 26.04 LTS Server/

Ubuntu 26.04 LTS Server のタイムゾーン設定と時刻同期

目次

タイムゾーンの確認と変更方法

Ubuntu 26.04 LTS Server のタイムゾーンを日本時間(JST)へ変更する手順と、時刻同期(NTP)の確認方法を解説します。

サーバーの時刻には協定世界時(UTC)で保持されている実際の時刻と、表示に使うタイムゾーンの2つがあります。タイムゾーンを変更しても内部の時刻は変わらず、表示だけが切り替わります。

現在の設定を確認する

timedatectl を引数なしで実行すると、時刻とタイムゾーンの設定がまとめて表示されます。

時刻設定の確認コマンド
timedatectl
時刻設定の確認 実行例(変更前)
kazulog@sv1:~$ timedatectl
               Local time: Thu 2026-09-10 23:23:24 UTC
           Universal time: Thu 2026-09-10 23:23:24 UTC
                 RTC time: Thu 2026-09-10 23:23:24
                Time zone: UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
kazulog@sv1:~$ date
Thu Sep 10 23:23:24 UTC 2026
kazulog@sv1:~$
項目内容
Local timeタイムゾーンを適用した表示上の時刻
Universal time協定世界時(UTC)での時刻。サーバーが実際に保持している時刻
RTC timeハードウェアクロック(機器内蔵の時計)の時刻
Time zone設定されているタイムゾーンと UTC からの差
System clock synchronized時刻同期が完了しているか
NTP service時刻同期のサービスが動作しているか
RTC in local TZハードウェアクロックをローカル時刻で持つか。Linux では no(UTC)が標準

タイムゾーンの一覧から選ぶ

設定できるタイムゾーンは timedatectl list-timezones で確認します。この環境では485件あります。

タイムゾーンの一覧表示コマンド
timedatectl list-timezones

一覧は「地域/都市」の形式です。目的のものを探すときは grep で絞り込みます。

タイムゾーンの検索 実行例
kazulog@sv1:~$ timedatectl list-timezones | wc -l
485
kazulog@sv1:~$ timedatectl list-timezones | grep Tokyo
Asia/Tokyo
kazulog@sv1:~$ timedatectl list-timezones | grep '^America/New' 
America/New_York
kazulog@sv1:~$ timedatectl list-timezones | head -5
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

タイムゾーンを変更する

タイムゾーンの変更コマンド
sudo timedatectl set-timezone [TIMEZONE]
入力箇所入力内容
[TIMEZONE]設定するタイムゾーン(日本時間は Asia/Tokyo)
タイムゾーンの変更 実行例
kazulog@sv1:~$ date
Thu Sep 10 23:23:42 UTC 2026
kazulog@sv1:~$ sudo timedatectl set-timezone Asia/Tokyo
kazulog@sv1:~$ date
Fri Sep 11 08:23:42 JST 2026
kazulog@sv1:~$ timedatectl
               Local time: Fri 2026-09-11 08:23:42 JST
           Universal time: Thu 2026-09-10 23:23:42 UTC
                 RTC time: Thu 2026-09-10 23:23:42
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
kazulog@sv1:~$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 32 Sep 11 08:23 /etc/localtime -> ../usr/share/zoneinfo/Asia/Tokyo
kazulog@sv1:~$ cat /etc/timezone
Asia/Tokyo

date の表示が9時間進み、UTC から JST に変わります。Universal time は変わっていません。表示に使うタイムゾーンだけが切り替わったためです。

変更は即座に反映され、再起動しても維持されます。ログイン中のシェルにも次のコマンドから反映されます。

設定の実体

タイムゾーンの設定は /etc/localtime のシンボリックリンクとして保存されています。変更するとリンク先が切り替わります。

上の実行例の ls -l /etc/localtime がその結果です。変更前は次のように UTC を指しています。

変更前のリンク先 実行例
kazulog@sv1:~$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 25 Sep 10 23:23 /etc/localtime -> ../usr/share/zoneinfo/UTC
kazulog@sv1:~$ cat /etc/timezone 2>&1
Asia/Tokyo
/etc/timezone というファイルも存在しますが、こちらは timedatectl で変更しても即座には更新されないことがあります。上の実行例でも、/etc/localtime が UTC を指している時点で /etc/timezone は Asia/Tokyo のままでした。現在の設定を確認する場合は timedatectl の表示か /etc/localtime のリンク先を見てください。

時刻同期(NTP)を確認する

タイムゾーンは表示の設定であり、時刻そのものを合わせるのは NTP の役割です。Ubuntu 26.04 では chrony が既定で動作します。

時刻同期サービスの確認コマンド
systemctl is-active chrony systemd-timesyncd
時刻同期サービスの確認 実行例
kazulog@sv1:~$ systemctl is-active chrony systemd-timesyncd 2>&1
active
inactive
kazulog@sv1:~$ systemctl status chrony --no-pager -l | head -6 | cat
● chrony.service - chrony, an NTP client/server
     Loaded: loaded (/usr/lib/systemd/system/chrony.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-09-11 08:22:49 JST; 1min 3s ago
 Invocation: 9941d684136d4c4588fc2c5ce8bbb390
       Docs: man:chronyd(8)
             man:chronyc(1)
kazulog@sv1:~$

同期の状態は chronyc tracking、同期先のサーバーは chronyc sources で確認します。

同期状態の確認コマンド
chronyc tracking
chronyc sources
同期状態の確認 実行例
kazulog@sv1:~$ chronyc tracking | head -6
Reference ID    : B97DBE7A (ntp-nts-2.ps5.canonical.com)
Stratum         : 3
Ref time (UTC)  : Thu Sep 10 23:23:03 2026
System time     : 0.000019870 seconds fast of NTP time
Last offset     : -0.017891990 seconds
RMS offset      : 0.017891990 seconds
kazulog@sv1:~$ chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-nts-2.ps5.canonical.>     2   6    17    51    +21ms[+2725us] +/-  119ms
^+ ntp-nts-3.ps5.canonical.>     2   6    17    51    +17ms[-1165us] +/-  115ms
^+ ntp-nts-2.ps6.canonical.>     2   6    17    52    -27ms[  -45ms] +/-  162ms
^+ ntp-nts-3.ps6.canonical.>     2   6    17    53    -27ms[  -45ms] +/-  151ms
^- ntp-nts-1.ps5.canonical.>     2   6    17    53    +17ms[ -809us] +/-  118ms
項目内容
Reference ID同期先のサーバー
Stratum基準となる時計からの距離。小さいほど正確
System timeNTP の時刻とのずれ
chronyc sources の ^*現在同期しているサーバー。^+ は候補、^- は除外中

timedatectl の System clock synchronized: yes も、同期が完了していることを示します。

ログの時刻はタイムゾーンに従う

journalctl が表示するログの時刻は、設定されているタイムゾーンに変換されて表示されます。journal は内部的に UTC で記録しているため、--utc を付けると UTC のまま表示できます。

ログを UTC で表示するコマンド
sudo journalctl --utc
同じログをローカル時刻と UTC で表示した 実行例
kazulog@sv1:~$ sudo journalctl -u chrony -n 3 --no-pager | cat
Sep 11 08:23:00 sv1 chronyd[1089]: System clock wrong by 1.102775 seconds
Sep 11 08:23:01 sv1 chronyd[1089]: System clock was stepped by 1.102775 seconds
Sep 11 08:23:01 sv1 chronyd[1089]: System clock TAI offset set to 37 seconds
kazulog@sv1:~$ sudo journalctl -u chrony -n 3 --no-pager --utc | cat
Sep 10 23:23:00 sv1 chronyd[1089]: System clock wrong by 1.102775 seconds
Sep 10 23:23:01 sv1 chronyd[1089]: System clock was stepped by 1.102775 seconds
Sep 10 23:23:01 sv1 chronyd[1089]: System clock TAI offset set to 37 seconds

同じイベントが9時間差で表示されています。複数のサーバーのログを突き合わせるときは、どちらの時刻で表示しているかに注意してください。

UTC のまま運用する場合

複数の地域にまたがるシステムでは、サーバーを UTC のまま運用し、表示する側で変換する構成も一般的です。UTC に戻す場合も同じコマンドを使います。

UTC に変更するコマンド
sudo timedatectl set-timezone UTC
UTC への変更と JST への復帰 実行例
kazulog@sv1:~$ sudo timedatectl set-timezone UTC
kazulog@sv1:~$ date
Thu Sep 10 23:24:17 UTC 2026
kazulog@sv1:~$ sudo timedatectl set-timezone Asia/Tokyo
kazulog@sv1:~$ date
Fri Sep 11 08:24:17 JST 2026
kazulog@sv1:~$ timedatectl show
Timezone=Asia/Tokyo
LocalRTC=no
CanNTP=yes
NTP=yes
NTPSynchronized=yes
TimeUSec=Fri 2026-09-11 08:24:17 JST
RTCTimeUSec=Fri 2026-09-11 08:24:17 JST

timedatectl show は、設定値を機械的に扱いやすい形式で表示します。スクリプトから現在のタイムゾーンを取得する場合に使えます。

構築時に設定する

サーバーの構築時にタイムゾーンを設定しておく方法もあります。cloud-init を使う環境では、設定に1行加えるだけで初回起動時に適用されます。詳細は初期設定を自動化する(cloud-init)で解説しています。

cloud-init での設定
timezone: Asia/Tokyo

検証環境と実行ログ

本記事の実行例は、CML 上の Ubuntu 26.04 LTS Server で採取したものです。各手順の実行ログを以下からダウンロードできます。

手順実行ログ
初期状態(UTC)の確認log
タイムゾーンの一覧log
Asia/Tokyo への変更log
時刻同期(chrony)の確認log
ログの時刻表示の比較log
UTC への変更と復帰log

参考リンク

timedatectl(1) - systemd documentation

関連記事

Ubuntu 公式ページ