本文以Centos 6.5为例介绍如何修改Linux实例时区,以及开启和配置Linux NTP服务,保证实例本地时间精确同步。
前提条件
NTP服务的通信端口为UDP 123,设置NTP服务之前请确保您已经打开UDP 123端口。您可以通过netstat -nupl
命令查看实例是否开通UDP 123端口。如何放行UDP 123端口,请参见添加安全组规则。
背景信息
目前,所有地域下ECS实例默认采用CST(China Standard Time)时区,您也可以根据自己的业务需求为ECS实例设置或者修改时区。
NTP 服务能保证 ECS 实例的本地时间与标准时间同步。在Linux系统中,您可以通过ntpdate和ntpd两种命令方式实现NTP时间同步。此处提供标准NTP服务配置和自定义NTP服务配置,您可以根据需要选择性地配置。关于更多NTP服务信息,请参见内网和公共NTP服务器。
ntpdate
为断点更新。对新购实例,您可以使用ntpdate
同步时间。ntpd
为步进式地逐渐调整时间。对已经承载有运行中业务的实例,建议您使用ntpd
同步时间。
修改Linux实例时区
- 远程连接 Linux 实例。具体操作,请参见连接方式概述。说明 您需要以root身份权限打开并编辑时区配置文件,所以此处使用
sudo
命令。 - 执行命令
sudo rm /etc/localtime
删除系统里的当地时间链接。 - 执行命令
sudo vi /etc/sysconfig/clock
,打开并编辑配置文件/etc/sysconfig/clock。 - 输入
i
添加时区城市。例如添加Zone=Asia/Shanghai
,按下Esc键退出编辑并输入:wq
保存并退出。可执行命令ls /usr/share/zoneinfo
查询时区列表,Shanghai
为列表条目之一。 - 执行命令
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
更新时区修改内容。 - 执行命令
hwclock -w
更新硬件时钟(RTC)。 - 执行命令
sudo reboot
重启实例。警告 重启实例会造成您的实例停止工作,可能导致业务中断,建议您在非业务高峰期时执行该操作。 - 执行命令
date -R
查看时区信息是否生效,未生效可按照上述步骤重新操作一遍。
启动标准NTP服务
- 远程连接Linux实例。具体操作,请参见连接方式概述。
- 执行命令
sudo service ntpd start
启动NTP服务。 - 执行命令
chkconfig ntpd on
设置开机自启动NTP服务。 - 执行命令
ntpstat
查看是否启动了NTP服务。 - 可选:执行命令
ntpq -p
可查看NTP服务对等端的列表信息;执行命令sudo chkconfig --list ntpd
可查看NTP服务的运行级别。
配置自定义NTP服务
- 远程连接Linux实例。具体操作,请参见连接方式概述。
- 执行命令
sudo vi /etc/ntp.conf
打开并编辑NTP服务配置文件。 - 找到
server ntp 服务器 iburst
的信息后,输入i
开始编辑文件,给您暂时不需要的NTP服务器句首加上#
隐藏起来。 - 新添加一行NTP服务器信息,格式为:
server 您需要添加的NTP服务器 iburst
。完成编辑后按下Esc键并输入:wq
保存退出。 - 执行命令
sudo service ntpd start
启动自定义的NTP服务。 - 执行命令
chkconfig ntpd on
设置开机自启动NTP服务。 - 执行命令
ntpstat
查看是否启动了NTP服务。