在Linux系统中,修改服务器时间是一项常见且重要的操作,无论是为了同步网络时间、调整时区,还是修正系统时间偏差,都需要掌握正确的方法,Linux系统的时间管理主要依赖于timedatectl、date、hwclock等工具,同时NTP(Network Time Protocol)服务是实现时间自动同步的关键,以下将详细介绍Linux服务器时间修改的完整流程、注意事项及相关技巧。

查看当前时间状态
在修改时间前,首先需要确认系统当前的时区、时间设置以及是否启用NTP同步,使用timedatectl命令可以快速获取这些信息:
timedatectl status
输出结果会显示“Local time”(本地时间)、“Universal time”(UTC时间)、“RTC time”(硬件时间)、“Time zone”(时区)以及“NTP enabled”(NTP是否启用)等关键信息,如果NTP已启用,直接修改系统时间可能会被自动覆盖,需先禁用NTP服务。
修改系统时间
临时修改系统时间
使用date命令可以直接修改系统时间,但此修改仅在当前会话有效,重启后会恢复为硬件时间,格式为:
date --set="YYYY-MM-DD HH:MM:SS"
将时间设置为2025-10-01 14:30:00:

date --set="2025-10-01 14:30:00"
永久修改系统时间(需同步硬件时间)
若要永久生效,需同时修改硬件时间(RTC),修改系统时间后,使用hwclock将时间同步到硬件:
hwclock --systohc
或简写为:
hwclock -w
这样即使重启服务器,时间也会保持设置值。
修改时区
服务器时区设置直接影响日志时间、计划任务等功能的准确性,Linux系统时区配置文件通常位于/usr/share/zoneinfo/目录下,修改步骤如下:

- 列出可用时区:
timedatectl list-timezones
- 设置目标时区,例如设置为“Asia/Shanghai”:
timedatectl set-timezone Asia/Shanghai
- 验证时区是否生效:
timedatectl status | grep "Time zone"
配置NTP时间同步
为确保服务器时间长期准确,建议启用NTP服务自动同步网络时间,主流Linux发行版(如CentOS、Ubuntu)已预装chrony或ntpd服务。
使用chrony(推荐)
- 安装chrony:
sudo apt install chrony # Ubuntu/Debian sudo yum install chrony # CentOS/RHEL
- 编辑配置文件
/etc/chrony/chrony.conf,添加或修改NTP服务器地址(如pool.ntp.org):server pool.ntp.org iburst
- 启动并启用服务:
sudo systemctl enable --now chronyd
- 检查同步状态:
chronyc tracking
使用ntpd
- 安装ntpd:
sudo apt install ntp # Ubuntu/Debian sudo yum install ntp # CentOS/RHEL
- 编辑
/etc/ntp.conf,配置NTP服务器:server 0.pool.ntp.org server 1.pool.ntp.org
- 启动服务:
sudo systemctl enable --now ntpd
时间修改注意事项
- 权限问题:修改时间需要root权限,普通用户需通过
sudo执行。 - NTP冲突:若NTP服务运行中,手动修改时间会被自动覆盖,需先执行
sudo systemctl stop chronyd或sudo systemctl stop ntpd。 - 硬件时间偏差:若硬件时间与系统时间差异较大,可通过
hwclock --adjust自动修正。 - 虚拟机环境:部分虚拟机平台(如VMware)会自动同步宿主机时间,需关闭相关功能以避免冲突。
常见问题与解决方案
修改时间后重启失效
原因:未同步硬件时间。
解决:执行hwclock --systohc将系统时间写入硬件。
NTP同步失败
原因:防火墙阻止NTP端口(123)、NTP服务器不可达或配置错误。
解决:检查防火墙规则(sudo ufw allow 123/udp),验证NTP服务器连通性,并确认配置文件语法正确。
相关问答FAQs
Q1: 如何批量修改多台Linux服务器的时间?
A1: 可以通过Ansible等自动化工具批量执行时间修改命令,使用Ansible playbook设置时区和NTP同步:
---
- hosts: all
become: yes
tasks:
- name: Set timezone to Asia/Shanghai
command: timedatectl set-timezone Asia/Shanghai
- name: Install and start chrony
apt:
name: chrony
state: present
notify: Restart chrony
handlers:
- name: Restart chrony
service:
name: chronyd
state: restarted
Q2: Linux时间与Windows服务器时间不同步怎么办?
A2: 首先检查两台服务器的时区是否一致,然后确保均配置了相同的NTP服务器,若仍不同步,可在Windows服务器上通过w32tm /config /syncfromflags:domhier强制同步域时间,或在Linux服务器上调整chrony的minsources参数(确保至少N个时间源可用)。
