EQVPS

Cách đổi tên máy chủ và múi giờ trên VPS

Đổi tên máy chủ và chỉnh đồng hồ theo múi giờ của bạn trên Ubuntu, Debian và Windows Server, không gặp cảnh báo sudo xuất hiện sau khi chỉ dùng hostnamectl, và kiểm tra cron, nhật ký, đồng bộ giờ sau khi đổi. Mọi bước đều đã thử trên image của chúng tôi.

Máy chủ mới mang tên bạn đã gõ khi đặt mua, và đồng hồ của nó chạy theo UTC. Cả hai đều dễ đổi. Việc đổi tên có một cái bẫy: lệnh thường dùng để lại một dòng cũ trong /etc/hosts, và trên Ubuntu sudo phàn nàn về nó trước mỗi lệnh. Hướng dẫn này sửa cả hai trên Ubuntu và Debian, đồng thời đưa ra các lệnh cho Windows Server. Chúng tôi đã chạy từng bước trên image của mình.

Bạn cần một người dùng có sudo. Hướng dẫn thiết lập Ubuntu sẽ tạo một người.

1. Xem tên và giờ hiện tại

hostnamectl
timedatectl

Máy chủ Ubuntu 24.04 mới của chúng tôi hiện tên lúc đặt mua làm tên máy chủ cố định, kèm Time zone: Etc/UTC, System clock synchronized: yes và NTP service: active. Debian 12 và 13 cũng vậy. Đồng bộ giờ đã chạy sẵn, nên không cần cài NTP.

2. Đổi tên máy chủ

Chọn một tên ngắn, hoặc tên đầy đủ nếu nó phải khớp với bản ghi DNS bạn quản lý, như web1.example.com:

sudo hostnamectl set-hostname web1.example.com

Tên đổi ngay, nhưng /etc/hosts vẫn gắn 127.0.1.1 với tên cũ. Trên Ubuntu, điều này lộ ra ngay:

sudo: unable to resolve host web1.example.com: No address associated with hostname

hostname -f cũng lỗi theo cách đó. Debian tìm được tên bằng đường khác nên không cảnh báo, nhưng /etc/hosts của nó cũng cũ y như vậy. Hãy sửa tệp trên cả hai:

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

Sau đó sudo im lặng, hostname -f in ra web1.example.com và hostname -s in ra web1.

Chú thích ở đầu /etc/hosts nói tệp này do cloud-init quản lý và thay đổi của bạn có thể bị mất. Trên image của chúng tôi, cloud-init chỉ ghi tệp này ở lần khởi động đầu tiên của máy chủ. Chúng tôi đã khởi động lại, rồi khiến cloud-init coi lần khởi động tiếp theo là một phiên bản mới. Tên và dòng của chúng tôi trong /etc/hosts vẫn còn sau cả hai.

Tên máy chủ chỉ tồn tại trên máy chủ của bạn. Nếu máy khác cần tìm tới nó bằng tên này, hãy thêm cả bản ghi DNS: trỏ tên miền về VPS có hướng dẫn. Với máy chủ thư, bản ghi ngược cũng quan trọng: xem thiết lập DNS ngược.

3. Đổi múi giờ

Liệt kê các múi giờ rồi chọn của bạn. Máy chủ của chúng tôi có 497 múi:

timedatectl list-timezones | grep -i tokyo
sudo timedatectl set-timezone Asia/Tokyo
timedatectl

Bản thân đồng hồ không dịch chuyển. Chỉ có cách hiển thị giờ và cách đọc lịch theo giờ địa phương là thay đổi. Đây là những gì chúng tôi thấy sau khi chuyển từ UTC sang Asia/Tokyo:

MụcSau khi đổi
date, journalctlGiờ Tokyo ngay lập tức
cronGiờ Tokyo ngay lập tức: tác vụ đặt lúc 09:48 chạy lúc 09:48:01 JST, không cần khởi động lại
/var/log/syslog (Ubuntu)Vẫn ghi giờ UTC cho đến khi khởi động lại rsyslog
/etc/timezone (Ubuntu)Vẫn là Etc/UTC

Vì vậy hãy khởi động lại dịch vụ nhật ký và mọi thứ chạy lâu có in giờ, như ứng dụng của bạn:

sudo systemctl restart rsyslog

Debian 12 và 13 không cài rsyslog. Nhật ký của chúng chỉ nằm trong journal, mà journal tự theo múi giờ mới.

Một số chương trình cũ đọc múi giờ từ /etc/timezone thay vì thiết lập hệ thống. Nếu chương trình nào vẫn hiện UTC, hãy ghi cùng tên đó vào tệp này rồi khởi động lại chương trình:

echo Asia/Tokyo | sudo tee /etc/timezone

Trước khi đổi, hãy xem lại crontab. Một dòng 0 3 * * * viết cho 03:00 UTC giờ sẽ chạy lúc 03:00 giờ Tokyo, tức sớm hơn chín tiếng theo thời gian thực.

4. Windows Server

Trên Windows Server 2022, mở PowerShell với quyền quản trị. Đổi tên cần khởi động lại:

Rename-Computer -NewName web1 -Restart

Tên máy tính trong Windows giới hạn 15 ký tự, nên ở đây hãy dùng tên ngắn.

Với múi giờ, hãy tìm ID rồi đặt nó. Thay đổi có hiệu lực ngay, không cần khởi động lại:

Get-TimeZone -ListAvailable | Where-Object Id -like '*Tokyo*'
Set-TimeZone -Id 'Tokyo Standard Time'
Get-TimeZone

Đã đăng nhập rồi thì đây là lúc tốt để bảo vệ RDP.

Chọn gói nào

Tên máy chủ và múi giờ không tốn tiền, nên gói nào cũng được: Nano giá $3/tháng cho máy chủ Linux nhỏ, Windows-Small giá $11/tháng cho Windows Server 2022. Tất cả các gói có trên trang VPS, thanh toán bằng USDT, USDC hoặc ETH trên mạng Base, Ethereum hoặc Polygon.

FAQ

cloud-init có đổi tên máy chủ về như cũ sau khi khởi động lại không?

Trên image của chúng tôi thì không. Chúng tôi đặt tên mới bằng hostnamectl, khởi động lại, rồi còn khiến cloud-init coi lần khởi động sau là một phiên bản hoàn toàn mới. Cả hai lần tên vẫn giữ nguyên, và chỗ sửa trong /etc/hosts cũng vậy. Cài lại sẽ cho bạn hệ thống mới với tên ban đầu.

Vì sao sudo báo «unable to resolve host» sau khi đổi tên?

hostnamectl đổi tên nhưng không sửa /etc/hosts, nơi 127.0.1.1 vẫn trỏ tới tên cũ. Trên Ubuntu, khi đó sudo in «unable to resolve host» trước mỗi lệnh. Thay tên cũ bằng tên mới trên dòng 127.0.1.1 là cảnh báo biến mất.

Máy chủ nên dùng UTC hay giờ địa phương?

UTC là mặc định an toàn hơn: giờ trong nhật ký của các máy chủ khớp nhau và không bị nhảy giờ khi đổi giờ mùa hè. Hãy chuyển sang múi giờ của bạn nếu muốn đọc tác vụ cron và giờ nhật ký theo giờ của mình. Cả hai đều chạy được, và bạn có thể đổi lại bất cứ lúc nào.

Tôi có cần cấu hình NTP không?

Không. Các image Ubuntu và Debian của chúng tôi đồng bộ đồng hồ bằng systemd-timesyncd ngay từ lần khởi động đầu. Chạy timedatectl và tìm dòng «System clock synchronized: yes».

Đổi múi giờ có làm hỏng tác vụ cron không?

cron dùng múi giờ mới ngay lập tức. Trên máy chủ Ubuntu 24.04 của chúng tôi, một tác vụ đặt lúc 09:48 giờ Tokyo đã chạy lúc 09:48:01 giờ Tokyo mà không cần khởi động lại cron. Nhưng hãy kiểm tra các tác vụ viết theo UTC: giờ chúng sẽ chạy vào giờ đó theo múi giờ địa phương của bạn.

Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên.

Để lại bình luận

Bình luận được kiểm duyệt trước khi hiển thị.