千家信息网

linux下搭建NTP时间服务器

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,一、时间与时区配置格林威治时间(GMT), 它是0时区时间. 但是在计算机中经常看到的是UTC. 它是Coordinated Universal Time的简写. UTC已经被认定为是国际标准,所以我
千家信息网最后更新 2025年12月03日linux下搭建NTP时间服务器

一、时间与时区配置

格林威治时间(GMT), 它是0时区时间. 但是在计算机中经常看到的是UTC. 它是Coordinated Universal Time的简写. UTC已经被认定为是国际标准,所以我们都应该遵守标准只使用UTC

CST是Chinese Standard Time,也就是我们通常所说的北京时间

相关命令:

date 显示或修改时间日期

hwclock 修改BIOS时间

ntpd 守护进程配置文件在/etc/ntp.conf

ntpdate 链接同步时间命令

ntpq NTP查询命令

ntptime 读取和设置内核时间变量

ntpstat 显示网络时间同步状态

相关配置文件:

/etc/ntp.conf NTP服务配置文件

/usr/share/zoneinfo 各时区的时间设定文件

/etc/sysconfig/clock 主要时区设定指定文件"ZONE=Asia/Shanghai"

/etc/localtime 本地系统时间设定文件

[root@pjy ~]# date   #查看时间Wed Jun  7 12:36:19 CST 2017[root@pjy ~]# zdump Shanghai  #查看对应时区的时间Shanghai  Wed Jun  7 04:51:10 2017 Shanghai[root@pjy ~]#ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime   #设置时区方法1[root@pjy ~]# tzselect    #设置时区方法2,需要选择国家和城市,最后将变量写入到环境变量[root@pjy ~]# echo "TZ=Asia/Shanghai" >>/etc/profile[root@pjy ~]# . /etc/profile[root@pjy ~]# echo $TZ Asia/Shanghai[root@pjy zoneinfo]# cat /etc/sysconfig/clock  #查看时区配置文件ZONE="Asia/Shanghai"[root@pjy zoneinfo]# date -R   #查看系统时区Wed, 07 Jun 2017 13:44:49 +0800[root@pjy zoneinfo]# hwclock --show   #查看硬件时间Wed Jun  7 13:48:21 2017  -0.235036 seconds[root@pjy zoneinfo]# ntpdate cn.pool.ntp.org|hwclock -w   #同步系统时间和硬件时间

二、配置NTP server

[root@pjy zoneinfo]# rpm -qa |grep ntp   #查看是否安装NTP包,如没有使用YUM安装ntpdate-4.2.6p5-1.el6.centos.x86_64ntp-4.2.6p5-1.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarch[root@pjy zoneinfo]# yum -y install ntp  #安装NTP服务

http://www.pool.ntp.org是NTP的官方网站,在这上面我们可以找到离我们城市最近的NTP Server. NTP建议我们为了保障时间的准确性,最少找两个个NTP Server

配置NTP配置文件:

[root@pjy ~]#vim /etc/ntp.confdriftfile /var/lib/ntp/drift   #存储时差值,以供调整broadcastdelay 0.008    restrict default nomodify    #定义默认访问规则,不允许修改restrict 127.0.0.1      #定义允许本机全部操作restrict -6 ::1    #IPv6定义server 202.120.2.101 prefer    #优先向上同步服务器server cn.pool.ntp.orgserver 127.127.1.0      #本地时间服务器fudge 127.127.1.0 stratum 8  #当服务器与公网服务器失去链接则使用本地时间给客户端同步时间includefile /etc/ntp/crypto/pw keys /etc/ntp/keys

stratum为设置服务器的层次,0为顶级,如要向外同步时间则不应该设置为0

关于权限设定部分
权限的设定主要以 restrict 这个参数来设定,主要的语法为:
restrict IP地址 mask 子网掩码 参数
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
参数有以下几个:
ignore :关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery :不提供客户端的时间查询
注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!

默认是拒绝所有操作的:

restrict default kod nomodify notrap nopeer noquery

如只允许10.0.0.0网段的主机同步时间且不允许修改服务器上的时间:

restrict 10.0.0.0 mask 255.255.255.0 nomodify

启动服务:

/etc/init.d/ntpd startchkconfig --level 35 ntpd on

查看ntp服务运行状态:

#watch ntpq -pEvery 2.0s: ntpq -p                                                              Tue Jun  6 22:54:30 2017     remote           refid st t when poll reach   delay   offset  jitter============================================================================== dns.sjtu.edu.cn .INIT.          16 u    -   64    0    0.000    0.000   0.000 biisoni.miuku.n 204.123.2.72     2 u   49   64    1  172.026    9.264   0.000*LOCAL(0)        .LOCL.           8 l   50   64    3    0.000    0.000   0.000

remote: 它指的就是本地机器所连接的远程NTP服务器
refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器
st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.
when: 我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步
poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小
reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加
delay: 从本地机发送同步要求到服务器的round trip time
offset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近
jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确

注意:在remote段,NTP提供的是群集服务,所以每次链接的服务器是不一样的

其中的前标记解释:

* 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
+ 它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管
- 远程服务器被clustering algorithm认为是不合格的NTP Server
x 远程服务器不可用

查看ntp更新间隔:

[root@pjy ~]# ntpstatsynchronised to NTP server (193.228.143.24) at stratum 3  #本层次服务器为3,已向服务器同步   time correct to within 655 ms    #时间校正到相差655MS之内   polling server every 64 s   #每64秒向上级NTP轮询更新一次时间

如需要同步硬件时间也可以在配置文件中打开:

vim /etc/sysconfig/ntpdSYNC_HWCLOCK=yes

三、客户端时间同步

使用定时同步任务:

[root@zabbix ~]# cat /var/spool/cron/root*/10 * * * * /usr/sbin/ntpdate 10.0.0.100 |hwclock -w >/dev/null 2>&11

hwclock -w为将系统时间作为硬件时间

注:让linux运行ntpdate更新时间时,linux不能开启NTP服务,否则会提示端口被占用

时间 服务 服务器 同步 文件 时区 配置 客户 客户端 参数 系统 硬件 端的 变量 命令 机器 级别 网络 这是 链接 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发与软件技术的关系 公司管理oa软件开发 大学生想学一些网络技术 移动查房数据库设计说明书 网络安全法三年考试成绩 智慧家庭网络安全有限公司 用数据库语句建出来的表怎么查看 论文一般多久能录入数据库 祥云杯网络安全答案 2018国家网络安全日 陈晨360网络安全中心 股票金融数据一般使用什么数据库 网络技术专业课程设置 软件开发工期估算 我的世界网易大型红石服务器 查阅中文文献常用数据库有哪些 软件开发工程师职业技术证书 甘肃抖讯网络技术研究院 卫生院网络安全周信息 普陀区网络技术服务不二之选 数据库天津 辽宁省网络安全办公室 客服端版本和服务器不匹配啥意思 国统股份网络技术有限公司 cs 服务器 命令 苏州网络技术外包 北京国家网络安全宣传片 数据库连接的服务器名称从哪里找 加密和网络安全 丹江口互联网软件开发服务保障
0