全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
云服务器 ECS

修改 ECS Linux 实例时区与设置 NTP 服务

更新时间:2018-03-20 16:31:16

时区和时间的同步性对于云服务器很重要(例如您在更新数据库时,时间的准确性对业务的影响会非常大),为避免实例上运行的业务逻辑混乱和避免网络请求错误,您需要将一台或多台实例设置在同一时区下,比如 Asia/ShanghaiAmerica/Los Angeles。目前,所有地域的阿里云 ECS 实例的默认时区为 CST(China Standard Time),您可以根据自己的业务需求并参照本文为 ECS 实例设置或者修改时区。此外,NTP(Network Time Protocol)服务能保证您的云服务器 ECS 的时间与标准时间同步,您可以根据本文配置 NTP 服务。

修改 ECS 实例时区

此处以 Centos 6.5 实例为例,列举两种修改时区的方法,您可以选其中任意一种方法。

注意:修改时区后,请切记您需要运行 hwclock -w 更新实例硬件时钟。

方法 1. 通过命令 tzselect 修改时区

  1. 远程连接 Linux 实例。

  2. 执行命令 tzselect

    1. $ tzselect
    2. Please identify a location so that time zone rules can be set correctly.
    3. Please select a continent or ocean.
    4. 1) Africa
    5. 2) Americas
    6. 3) Antarctica
    7. 4) Arctic Ocean
    8. 5) Asia
    9. 6) Atlantic Ocean
    10. 7) Australia
    11. 8) Europe
    12. 9) Indian Ocean
    13. 10) Pacific Ocean
    14. 11) none - I want to specify the time zone using the Posix TZ format.
  3. 输入上述洲际列表中的数字,如本示例中的 5

    1. #? 5 # 输入 5,选择亚洲。
    2. Please select a country.
    3. 1) Afghanistan 18) Israel 35) Palestine
    4. 2) Armenia 19) Japan 36) Philippines
    5. 3) Azerbaijan 20) Jordan 37) Qatar
    6. 4) Bahrain 21) Kazakhstan 38) Russia
    7. 5) Bangladesh 22) Korea (North) 39) Saudi Arabia
    8. 6) Bhutan 23) Korea (South) 40) Singapore
    9. 7) Brunei 24) Kuwait 41) Sri Lanka
    10. 8) Cambodia 25) Kyrgyzstan 42) Syria
    11. 9) China 26) Laos 43) Taiwan
    12. 10) Cyprus 27) Lebanon 44) Tajikistan
    13. 11) East Timor 28) Macau 45) Thailand
    14. 12) Georgia 29) Malaysia 46) Turkmenistan
    15. 13) Hong Kong 30) Mongolia 47) United Arab Emirates
    16. 14) India 31) Myanmar (Burma) 48) Uzbekistan
    17. 15) Indonesia 32) Nepal 49) Vietnam
    18. 16) Iran 33) Oman 50) Yemen
    19. 17) Iraq 34) Pakistan
  4. 输入上述国家列表中的数字,如本示例中的 9

    1. #? 9 # 输入 9,选择中国。
    2. Please select one of the following time zone regions.
    3. 1) east China - Beijing, Guangdong, Shanghai, etc.
    4. 2) Heilongjiang (except Mohe), Jilin
    5. 3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
    6. 4) most of Tibet & Xinjiang
    7. 5) west Tibet & Xinjiang
  5. 输入上述城市列表中的数字,如本示例中的 1。并输入确认信息 Yes/No,如本示例中的 1

    1. #? 1 # 输入 1,选择北京时间。
    2. The following information has been given:
    3. China
    4. east China - Beijing, Guangdong, Shanghai, etc.
    5. Therefore TZ='Asia/Shanghai' will be used.
    6. Local time is now: Mon Nov 9 13:40:51 CST 2015.
    7. Universal Time is now: Mon Nov 9 05:40:51 UTC 2015.
    8. Is the above information OK?
    9. 1) Yes
    10. 2) No
    11. #? 1 # 输入 1 确认。
    12. You can make this change permanent for yourself by appending the line
    13. TZ='Asia/Shanghai'; export TZ
    14. to the file '.profile' in your home directory; then log out and log in again.
    15. Here is that TZ value again, this time on standard output so that you
    16. can use the /usr/bin/tzselect command in shell scripts:
    17. Asia/Shanghai
  6. 执行命令 hwclock -w 更新硬件时钟(RTC)。

您的 Linux 实例时区已设置为 Asia/Shanghai

方法 2. 通过修改配置文件修改时区

时区配置文件需要以 root 身份打开并编辑,所以此处使用 sudo 命令。

  1. 远程连接 Linux 实例。

  2. 执行命令 sudo rm /etc/localtime 删除系统里的当地时间链接。

  3. 执行命令 sudo vi /etc/sysconfig/clock 用 vim 打开并编辑配置文件 /etc/sysconfig/clock。

  4. 输入 i 添加时区城市,例如添加 Zone=Asia/Shanghai,按下 Esc 键退出编辑并输入 :wq 保存并退出。(可执行命令 ls /usr/share/zoneinfo 查询时区列表,Shanghai 为列表条目之一。)

  5. 执行命令 sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai/etc/localtime 更新时区修改内容。

  6. 执行命令 hwclock -w 更新硬件时钟(RTC)。

  7. 执行命令 sudo reboot 重启实例。

  8. 执行命令 date -R 查看时区信息是否生效,未生效可重走一遍步骤。

设置 NTP 服务器

Linux 系统有 ntpdntpdate 两种方式实现 NTP 时间同步,其中,ntpd 同步时间为步进式的逐渐调整时间,ntpdate 为断点更新。新购实例可使用 ntpdate 更新服务,已经运行业务的实例建议使用 ntpd 同步时间。此处提供标准 NTP 服务配置和 自定义 NTP 服务配置,您可以根据需要选择性地配置。关于更多 NTP 服务信息请参考 内网和公共 NTP 服务器

前提条件:NTP 服务的通信端口为 UDP 123,设置 NTP 服务之前请确保您已经打开 UDP 123 端口。您可以通过 netstat -nupl 查看实例是否开通 123 端口。您可以参考文档 添加安全组规则 放行 123 端口。

启用标准 NTP 服务

  1. 远程连接 Linux 实例。

  2. 执行命令 sudo service ntpd start 启用 NTP 服务。

  3. 执行命令 chkconfig ntpd on,启用 NTP 服务。

  4. 执行命令 ntpstat 查看是否启用了 NTP 服务。

  5. (可选)执行命令 ntpq -p 可查看 NTP 服务对等端的列表信息;执行命令 sudo chkconfig --list ntpd 可查看 NTP 服务的运行级别。

配置自定义 NTP 服务

  1. 远程连接 Linux 实例。

  2. 执行命令 sudo vi /etc/ntp.conf 用 vim 打开并编辑 NTP 服务配置文件。

  3. 找到 server ntp 服务器 iburst 的信息后,输入 i 开始编辑文件,给您暂时不需要的 NTP 服务器句首加上 # 隐藏起来。

  4. 新添加一行 NTP 服务器信息,格式为:server 您需要添加的NTP服务器 iburst。完成编辑后按下 Esc 键并输入 :wq 保存退出。

  5. 执行命令 sudo service ntpd start 启用自定义的 NTP 服务。

  6. 执行命令 chkconfig ntpd on,启用 NTP 服务。

  7. 执行命令 ntpstat 查看是否启用了 NTP 服务。

如果问题还未能解决,您可以到阿里云社区免费咨询,或联系云市场商家寻求帮助。

本文导读目录