新しいサーバーの名前は注文時に入力したもので、時計は UTC です。どちらも簡単に変えられます。名前の変更には落とし穴が 1 つあり、いつものコマンドでは /etc/hosts に古い行が残るため、Ubuntu では sudo がコマンドのたびに文句を言います。このガイドでは Ubuntu と Debian で両方を直し、Windows Server のコマンドも紹介します。すべての手順を当社のイメージで実行しました。
sudo を使えるユーザーが必要です。Ubuntu の初期設定ガイド で作成できます。
1. 現在の名前と時刻を確認する
hostnamectl
timedatectl
作ったばかりの Ubuntu 24.04 サーバーでは、静的ホスト名として注文時の名前が表示され、ほかに Time zone: Etc/UTC、System clock synchronized: yes、NTP service: active が出ました。Debian 12 と 13 も同じです。時刻同期はすでに動いているので、NTP を入れる必要はありません。
2. ホスト名を変える
短い名前か、管理している DNS レコードと合わせるなら web1.example.com のような完全な名前を選びます。
sudo hostnamectl set-hostname web1.example.com
名前はすぐに変わりますが、/etc/hosts では 127.0.1.1 がまだ古い名前を指しています。Ubuntu ではすぐに症状が出ました。
sudo: unable to resolve host web1.example.com: No address associated with hostname
hostname -f も同じ理由で失敗しました。Debian は別の方法で名前を解決できたため警告は出ませんでしたが、/etc/hosts は同じく古いままでした。どちらでもファイルを直しておきます。
sudo sed -i 's/^127\.0\.1\.1 .*/127.0.1.1 web1.example.com web1/' /etc/hosts
grep 127.0.1.1 /etc/hosts
hostname -f
これで sudo は静かになり、hostname -f は web1.example.com、hostname -s は web1 を表示しました。
/etc/hosts の先頭のコメントには、このファイルは cloud-init が管理していて変更が失われることがある、と書かれています。当社のイメージでは、cloud-init がこのファイルを書くのはサーバーの初回起動時だけです。再起動したうえで、次の起動を cloud-init に新しいインスタンスとして扱わせてもみましたが、名前も /etc/hosts の行も残りました。
ホスト名はサーバーの中だけのものです。ほかのマシンからその名前で届くようにしたいなら、DNS レコードも追加してください。ドメインを VPS に向ける方法 で説明しています。メールサーバーなら逆引きレコードも重要です。逆引き DNS の設定 を参照してください。
3. タイムゾーンを変える
タイムゾーンの一覧を出して選びます。当社のサーバーには 497 個ありました。
timedatectl list-timezones | grep -i tokyo
sudo timedatectl set-timezone Asia/Tokyo
timedatectl
時計そのものは動きません。変わるのは時刻の表示と、現地時間で組んだスケジュールの解釈だけです。UTC から Asia/Tokyo に切り替えたあと、次のようになりました。
| 対象 | 変更後 |
|---|---|
date、journalctl | すぐに東京時間 |
| cron | すぐに東京時間:09:48 に設定したジョブが 09:48:01 JST に実行、再起動不要 |
/var/log/syslog(Ubuntu) | rsyslog を再起動するまで UTC の時刻で記録 |
/etc/timezone(Ubuntu) | Etc/UTC のまま |
そのため、ログのサービスと、アプリなど時刻を出力し続けるプログラムを再起動してください。
sudo systemctl restart rsyslog
Debian 12 と 13 には rsyslog が入っていません。ログは journal にだけあり、journal は新しいタイムゾーンに自動で従います。
一部の古いプログラムは、システムの設定ではなく /etc/timezone からタイムゾーンを読みます。まだ UTC と表示するものがあれば、そこに同じ名前を書き込んでそのプログラムを再起動します。
echo Asia/Tokyo | sudo tee /etc/timezone
切り替える前に crontab を見直しましょう。UTC の 03:00 のつもりで書いた 0 3 * * * は、今後は東京時間の 03:00、つまり実時間で 9 時間早く動きます。
4. Windows Server
Windows Server 2022 では、PowerShell を管理者として開きます。名前の変更には再起動が必要です。
Rename-Computer -NewName web1 -Restart
Windows のコンピューター名は 15 文字までなので、ここでは短い名前を使います。
タイムゾーンは ID を調べて設定します。再起動なしですぐに反映されます。
Get-TimeZone -ListAvailable | Where-Object Id -like '*Tokyo*'
Set-TimeZone -Id 'Tokyo Standard Time'
Get-TimeZone
ログインしたついでに、RDP の保護 も済ませておくとよいでしょう。
どのプランを選ぶか
ホスト名とタイムゾーンに費用はかからないので、どのプランでも構いません。小さな Linux サーバーなら Nano(月 $3)、Windows Server 2022 なら Windows-Small(月 $11)です。全プランは VPS ページにあり、支払いは Base、Ethereum、Polygon 上の USDT、USDC、ETH です。
コメント
まだコメントはありません。最初になりましょう。