[TOC]

0x00 前言

简介:NTP 是网络时间协议 (Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。时区和时间一致性对于服务器非常重要,有时会直接影响到任务执行的结果,

例如:您在更新数据库或者分析日志时,时间顺序对结果有很大影响。为避免在实例上运行业务时出现逻辑混乱和网络请求错误等问题,您需要统一相关实例的时区设置。另外您还可以通过NTP服务同步网络中所有服务器的本地时间。

NTP服务的通信端口为UDP 123,设置NTP服务之前请确保您已经打开UDP 123端口;

在进行Linux运维以及同步的应用安装和使用都要求,双方的时间是需要保持一致的,而常常小型的服务器群是没有自己的NTP服务器的,这时候我们就需要采用外网的NTP服务器进行时间的同步和校对;

阿里云提供了内网和公网NTP服务器,用于同步各网络中ECS实例的本地时间。云服务器ECS为您提供了高精度的时间参考NTP服务器,其中ntp.cloud.aliyuncs.com服务器在地域级别上提供原子参考钟服务,适用于金融、通讯、科研和天文等以时间精度核心的生产行业

经典网络内网 专有网络VPC内网 公网
- ntp.cloud.aliyuncs.com ntp1.aliyun.com
ntp1.cloud.aliyuncs.com ntp7.cloud.aliyuncs.com ntp2.aliyun.com
ntp2.cloud.aliyuncs.com ntp8.cloud.aliyuncs.com ntp3.aliyun.com
ntp3.cloud.aliyuncs.com ntp9.cloud.aliyuncs.com ntp4.aliyun.com
ntp4.cloud.aliyuncs.com ntp10.cloud.aliyuncs.com ntp5.aliyun.com
ntp5.cloud.aliyuncs.com ntp11.cloud.aliyuncs.com ntp6.aliyun.com
ntp6.cloud.aliyuncs.com ntp12.cloud.aliyuncs.com ntp7.aliyun.com

0x01 NTP配置方法

Windows 服务器

为了保证NTP服务配置成功后能正常同步时间,实例中必须开启NTP服务,Windows Server操作系统默认开启Windows Time服务

1.选择 开始 > 所有程序 > 附件 > 运行,打开运行对话框,并运行命令services.msc

2.在服务对话框中,找到并双击Windows Time服务,十分重要否则报错同步连接超时。

3.在Windows Time的属性(本地计算机)对话框中,执行以下操作:将启动类型设置为自动,确认服务状态为已启动。如果不是,单击启动。

4.修改服务器默认NTP服务器地址为:ntp.aliyun.com

WeiyiGeek.

如何修改NTP服务时间同步间隔?

答:NTP服务的时间同步间隔默认是5分钟,您可以根据业务需求自定义同步间隔;

#注册表编辑器: 
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > W32Time > TimeProviders > NtpClient
并双击SpecialPollInterval键值,填入的数值即是您需要的同步时间间隔(单位为秒)

在编辑 DWORD (32 位)值对话框中,在基数栏里选择十进制,并按需要填写数值数据。


Linux 服务器

前提条件设置NTP服务之前请确保您已经打开UDP 123端口;

在Linux系统中,您可以通过ntpdate和ntpd两种命令方式实现NTP时间同步两种方式的异同;

  • ntpdate ntp.aliyun.com为断点更新,在最新安装系统的时候或者没有业务运行的情况下;
  • ntpd ntp.aliyun.com为步进式地逐渐调整时间。对已经承载有运行中业务的实例,建议您使用ntpd同步时间

以root身份打开并编辑时区配置文件

sudo rm /etc/localtime  #删除系统里的当地时间链接
ls /usr/share/zoneinfo #查询时区列表Shanghai为列表条目之一。
sudo vi /etc/sysconfig/clock #用vim打开并编辑配置文件/etc/sysconfig/clock。
输入i添加时区城市。例如添加Zone=Asia/Shanghai,按下Esc键退出编辑并输入:wq保存并退出。
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #更新时区修改内容。
hwclock -w #更新硬件时钟(RTC)。
#验证执行命令date -R查看时区信息是否生效,未生效可按照上述步骤重新操作一遍。

启用NTP服务

  1. 执行命令ntpstat查看是否启用了NTP服务。
  2. 执行命令sudo vi /etc/ntp.conf用vim打开并编辑NTP服务配置文件。
  3. 新添加一行NTP服务器信息格式为:server 您需要添加的NTP服务器 iburst
  4. 执行命令sudo service ntpd start运行NTP服务。
  5. 执行命令chkconfig ntpd on启用NTP服务。
  6. 可选: 执行命令ntpq -p可查看NTP服务对等端的列表信息;执行命令sudo chkconfig --list ntpd可查看NTP服务的运行级别。


快速配置阿里巴巴 OPSX NTP服务编辑文件 “/etc/ntp.conf”,根据情况修改文件内容为:

driftfile  /var/lib/ntp/drift
pidfile /var/run/ntpd.pid
logfile /var/log/ntp.log
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
server 127.127.1.0
fudge 127.127.1.0 stratum 10
server ntp.aliyun.com iburst minpoll 4 maxpoll 10
restrict ntp.aliyun.com nomodify notrap nopeer noquery

对于使用 chrony 客户端的 linux 主机 ,配置 ‘/etc/chrony.conf’ 文件的内容为:

server ntp.aliyun.com iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
logchange 0.5
logdir /var/log/chrony


0x02 参考来源