新服务器的名字就是你下单时填写的那个,时钟则是 UTC。两者都很容易改。改名有一个坑:常用的命令会在 /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 运行,也就是在真实时间上提前九个小时。
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。
评论
暂无评论。来做第一个吧。