什么是NTP?
NTP全名“Network TimeProtocol”,即网络时间协议,是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。
NTP基于UDP报文进行传输,使用的UDP端口号为123。使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于运行NTP的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。
为什么需要NTP服务器?
通过NTP的简介可以明白,NTP主要的作用就是同步时间,但是我们的计算机本来就可以通过晶体振荡器自己计时,为什么还需要从网络上获取时间呢?因为晶体振荡器会受温度、气压等外界因素影响,所以在工作过程中会产生误差。日积月累下来误差会越来越大,导致影响我们的任务正常工作,比如定时备份用户数据等类似重要的任务。那么我们的NTP服务器不也是计算机吗?我们获取它的时间不会存在网络延迟吗?我们知道我们使用的北京时间,但是中国的授时中心却在陕西省的中国科学院国家授时中心。那准确的时间是怎么传到我们的计算机中呢?
当在计算机做时间校准时,只要把网络延迟计算进去,最后修正这个同步过来的时间,降低误差,现在我们主要通过一个软件来做这个工作,在我们部署应用程序的服务器上,都会启动一个自动校准时间的服务,这个服务就是NTP,它可以保证每台机器的时间与时间服务器保持同步
怎么手动更改时区(不同时区的时间不一样)
更改时区
- 使用timedatectl
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
- 使用tzselect交互式修改时区
图中文字提醒,我们还需要修改.profile文件才行。于是继续修改,在终端输入:vim ~/.bash_profile,插入一条命令:TZ='Asia/Shanghai'; export TZ
保存退出之后,再输入source ~/.bash_profile
如何配置Linux主机向外时间服务器同步时间
步骤:
- 使用:yum/dnf install chrony -y下载ntp服务
- 更改配置文件,配置文件路径:vim /etc/chrony.cpnf
- 添加NTP服务的地址:pool *********(ntp服务器的地址) iburst
可以是自己的NTP服务器也可以是国内常用的公开NTP时间服务器地址或域名
- 重启NTP服务
systemctl restart ntpd
- 使用ntpdate获取时间
ntpdate 服务器ip或者直接使用date命令
如何配置NTP服务器
同样的需要先下载chronyd服务再更改配置文件
将local stratum 10这段取消注释
还有allow字段,在其下方添加允许哪个网段的ip可以向我获取时间
最后关闭防火墙或添加规则到防火墙列表
关闭防火墙:systemctl stop firewalld
添加NTP服务到防火墙规则:firewall-cmd --permanent --add-service=ntp