ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Linuxサーバー

Linux のタイムゾーン変更・NTP 時刻同期・ホスト名・DNS 設定(timedatectl・chrony・hostnamectl)

6 ステップ 11 分で読めます 4 回閲覧 0
目次

新しいサーバーは UTC で動いていることが多く、ログの時刻がローカル時間と合いません。また時刻がずれると HTTPS 証明書の検証、cron、二要素認証コードが正しく動きません。この記事では timedatectl による Linux のタイムゾーン変更、chrony による NTP 時刻同期、ホスト名と /etc/hosts の変更、さらに systemd-resolved・NetworkManager・従来の resolv.conf それぞれでの DNS 設定方法を解説します。Debian/Ubuntu と Rocky Linux/AlmaLinux に対応しています。

ステップ1:timedatectl でタイムゾーンを確認・変更

現在の状態を確認し、一覧からタイムゾーン名を選びます。日本なら Asia/Tokyo、香港なら Asia/Hong_Kong、ロシアなら Europe/Moscow です。複数地域のユーザー向けなら UTC のままでも問題ありません。タイムゾーンを変えても実際の時刻は変わらず表示だけが変わります。PHP-FPM や MySQL など常駐プロセスは再起動して新しい設定を反映させましょう。

timedatectl                                   # current time, time zone, NTP status
timedatectl list-timezones | grep -E 'Asia|UTC'
timedatectl set-timezone Asia/Hong_Kong       # e.g. Asia/Tokyo, Asia/Shanghai, Europe/Moscow, UTC
timedatectl set-local-rtc 0                   # keep the hardware clock in UTC
date

ステップ2:chrony で NTP 時刻同期を有効化

chrony は不安定なネットワークでも正確に時刻を合わせられ、Rocky/AlmaLinux の標準です。Debian/Ubuntu ではインストールすると systemd-timesyncd を置き換えます。出力で ^* の付いた行が使用中のサーバーで、chronyc tracking で現在のずれを確認できます。

# Debian / Ubuntu (replaces systemd-timesyncd)
apt install -y chrony
systemctl enable --now chrony

# Rocky Linux / AlmaLinux
dnf install -y chrony
systemctl enable --now chronyd

timedatectl set-ntp true
chronyc sources -v        # "^*" marks the server currently in use
chronyc tracking          # "System time" shows the current offset

ステップ3:NTP サーバーを指定する

通常はディストリ標準のプールで十分です。特定のサーバーを使う場合は chrony 設定ファイルの pool/server 行を編集します。makestep を指定すると、起動直後にずれが大きい場合は時刻を一気に補正します。ファイアウォールで送信方向の UDP 123 を許可してください。

# Config file: /etc/chrony/chrony.conf (Debian/Ubuntu) or /etc/chrony.conf (Rocky/AlmaLinux)
# Replace or add the server lines, for example:
pool pool.ntp.org iburst
server time.cloudflare.com iburst
makestep 1.0 3

# Apply and step the clock immediately if it is far off
systemctl restart chrony        # chronyd on Rocky/AlmaLinux
chronyc makestep
KVM 仮想マシンの時刻は通常安定していますが、スナップショット復元やホスト移行の後にずれることがあります。chrony が自動で補正するため、cron で ntpdate を実行する必要はありません。

ステップ4:Linux のホスト名と /etc/hosts を変更

hostnamectl の変更は即時に反映され、再起動後も保持されます。続いて /etc/hosts に新しいホスト名を追加します。追加しないと sudo で「unable to resolve host」と表示されたり、メールやデータベースの起動が遅くなったりします。cloud-init 入りのイメージでは preserve_hostname を設定し、再起動で元に戻らないようにします。プロンプトの表示は SSH に再接続すると更新されます。

hostnamectl set-hostname web01.example.com
hostnamectl

# /etc/hosts - make the new name resolve locally
127.0.0.1     localhost
127.0.1.1     web01.example.com web01      # Debian/Ubuntu convention
# or map it to the server's public IP:
# 203.0.113.10  web01.example.com web01

# Images with cloud-init: stop it from resetting the hostname on reboot
grep -n preserve_hostname /etc/cloud/cloud.cfg
sed -i 's/^preserve_hostname:.*/preserve_hostname: true/' /etc/cloud/cloud.cfg

ステップ5:DNS を管理している仕組みを確認

ディストリビューションによって DNS の管理方法が異なり、/etc/resolv.conf を直接編集しても再起動で上書きされることがあります。まずこのファイルがシンボリックリンクか通常ファイルか、先頭に「Generated by」のコメントがあるかを確認します。

ls -l /etc/resolv.conf
# -> ../run/systemd/resolve/stub-resolv.conf  : managed by systemd-resolved (Ubuntu)
# -> regular file "Generated by NetworkManager": managed by NetworkManager (Rocky/AlmaLinux)
# -> regular file without such comment         : edited by hand (common on Debian)
resolvectl status 2>/dev/null | head -n 20

ステップ6:DNS リゾルバーを設定する

前のステップの結果に応じて 1 つを選びます。Ubuntu など systemd-resolved の環境では設定ファイルを追加、Rocky/AlmaLinux では nmcli で接続を変更(接続名は nmcli con show の表示どおり)、従来型の Debian では resolv.conf を直接編集します。最後に getent で名前解決をテストします。

# A) systemd-resolved (Ubuntu and some Debian setups)
mkdir -p /etc/systemd/resolved.conf.d
cat > /etc/systemd/resolved.conf.d/dns.conf <<'EOF'
[Resolve]
DNS=1.1.1.1 8.8.8.8 2606:4700:4700::1111
FallbackDNS=9.9.9.9
EOF
systemctl restart systemd-resolved
resolvectl status

# B) NetworkManager (Rocky Linux / AlmaLinux)
nmcli -t -f NAME,DEVICE con show --active
nmcli con mod "System eth0" ipv4.dns "1.1.1.1 8.8.8.8" ipv4.ignore-auto-dns yes
nmcli con up "System eth0"

# C) Plain /etc/resolv.conf (Debian with ifupdown)
cat > /etc/resolv.conf <<'EOF'
nameserver 1.1.1.1
nameserver 8.8.8.8
options timeout:2 attempts:2
EOF

# Test
getent hosts www.imidc.com
nmcli con up はネットワークインターフェースを一時的に再読み込みするため、設定ミスで SSH が切断される場合があります。接続名をよく確認し、可能であればクライアントエリアで提供されるコンソールから作業してください。

よくある質問

chronyc sources に「?」が表示され同期しない

多くの場合、UDP 123 がファイアウォールで遮断されているか、DNS で NTP サーバー名を解決できていません。まず DNS を確認し、送信方向の UDP 123 を許可するか、到達可能な NTP サーバーに変更してください。

Ubuntu の resolv.conf に 127.0.0.53 しかない

systemd-resolved のローカルスタブなので正常です。実際の上流 DNS は resolvectl status で確認し、ステップ6の A の方法で変更します。

ホスト名を変えると Web サイトやパネルに影響しますか?

通常は影響しませんが、メールサーバー、aaPanel、データベースの権限設定などに旧ホスト名が書かれている場合は更新が必要です。メールサーバーのホスト名は rDNS(PTR)とも一致させましょう(「rDNS/PTR」の記事を参照)。

上記の手順で解決しない場合は、サポートチケットを送信して IMIDC の 24 時間 365 日対応テクニカルサポートへご連絡ください。サーバー IP、OS バージョン、実行したコマンド、エラー全文を添えていただくと、より迅速に調査できます。

この回答はお役に立ちましたか?

関連チュートリアル