linux下超简单的ntp时间服务器

时间:2021-11-15 17:46:33
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dngood.blog.51cto.com/446195/662451

引言

当前虚拟化遍布企业的每个角落中,在给我们带来好处的同时也带来了一些麻烦,比如正在使用的ESXi,虚拟机的系统时间有时候是不一样的,这样很糟糕比如会给mysql数据库或者日志等等造成影响,当我们手动更改时间这样是徒劳的,由于是虚拟机即使用hwclock -w 命令也无法把系统时间写入宿主机 bios,下次重启虚拟机时间又变了,有没有什么一劳永逸的方法那?答案是使用 NTP服务器

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

安装

原来 NTP服务器,是使用了Network Time Protocol Daemon(UDP 123 port),Linux下的 NTP 服务器安装是非常简单的,yum install ntp 就可以了。

 

相关配置文件

/etc/ntp.conf
NTP服务的主要配置文件,所有的更改全部在这里。

/usr/share/zoneinfo
由 tzdata 所提供,规定了各主要时区的时间设定文件,例如中国的时区设置文件是/usr/share/zoneinfo/Asia/Chongqing。

/etc/sysconfig/clock
Linux的主要时区设定文件。每次启动后Linux操作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为”ZONE=Asia/Chongqing”,则表示Linux操作系统的时间设定使用/usr/share/zoneinfo/Asia/Chongqing这个文件。

/etc/localtime    
本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Chongqing,Linux操作系统就会将Chongqing那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Chongqing那个时间设定文件为准。

 

相关的命令
/bin/date
这个我们最经常使用了,更改及输出日期与时间命令。

/sbin/hwclock
使用hwclock才能将修改过后的时间写入BIOS 。

/usr/sbin/ntpd
NTP服务的守护进程,配置文件为/etc/ntp.conf 。

/usr/sbin/ntpdate
用来连接NTP服务器命令,比如ntpdate 192.168.6.51 。

/usr/sbin/ntpq
NTP查询命令。

设置NTP服务器

就如前边说的NTP配置文档只有一个 /etc/ntp.conf,看看我的ntp.conf

#红字的是我添加的,其它为默认!

  
  
  1. grep -Ev '^$|^#' /etc/ntp.conf  
  2. restrict default kod nomodify notrap nopeer noquery 
  3. restrict -6 default kod nomodify notrap nopeer noquery 
  4. restrict 131.107.13.100  //允许该NTP服务器进入
  5. restrict 114.80.81.1 //没有任何何參數的話,這表示『该 IP或网段不受任何限制
  6. restrict 202.118.1.199 
  7. restrict 127.0.0.1  
  8. restrict -6 ::1 
  9. restrict 192.168.0.0 mask 255.255.0.0 nomodify //该网段可以进行校时
  10. restrict 0.0.0.0 mask 0.0.0.0 notrust //拒绝没有认证的用户
  11. server time-nw.nist.gov prefer //prefer 该服务器优先
  12. server 0.rhel.pool.ntp.org 
  13. server 1.rhel.pool.ntp.org 
  14. server 2.rhel.pool.ntp.org 
  15. fudge   127.127.1.0 stratum 10   
  16. driftfile /var/lib/ntp/drift 
  17. keys /etc/ntp/keys 

别忘了启动NTP服务器

/etc/init.d/ntp start

 

客户端测试

对了客户端只需要是用ntpdate命令即可,192.168.6.51 为ntp 服务器ip 地址,就这么就简单!

linux下超简单的ntp时间服务器

 

相关命令

  
  
  1. ntpstat   //列出我们的NTP 服务器是否与上层连接。
  2. synchronised to NTP server (131.107.13.100) at stratum 2  
  3.    time correct to within 461 ms 
  4.    polling server every 64 s 
  5.  
  6.  
  7. ntpq -p  //列出目前我们的NTP服务器 与上层NTP服务器 的状态* 代表目前正在使用的上层 NTP服务器
  8.      remote           refid      st t when poll reach   delay   offset  jitter 
  9. ============================================================================== 
  10. *131.107.13.100  .ACTS.           1 u   30   64   67  237.165    1.539  20.382 
  11.  202.118.1.199   202.112.31.197   2 u   33   64   63  163.526   91.844  10.208 

 

上边只是简单设置,没有考虑安全方面如认证等等,如需更详细请参考这里

权限管理使用 restrict 公式如下:
restrict IP mask [参数] / restrict 192.168.0.0 mask 255.255.0.0 nomodify

其中参数主要底下这些

    * ignore拒绝所有类型NTP的连线;
    * nomodfiy:用户不能使用NTPCntpq两支程式修改伺服器的时间参数,但使用者仍可透过这部主机进行网路时的;
    * noquery:用户能够使用ntpqNTPC指令查询发表伺服器等于提供的NTP网路;
    * notrap提供陷阱这个远端事件邮箱远程事件日志的功能
    * notrust拒绝没有认证的用户

如果你没有在参数的地方加上任何参数的话这表示IP网段不受任何限制的”的意思喔!一般来说,我们可以关闭NTP的使用权限,然后一个一个启用允许登入的网段

参考

http://linux.vbird.org/linux_server/0440ntp.php

如有问题欢迎到此讨论:37275208

本文出自 “dongnan” 博客,请务必保留此出处http://dngood.blog.51cto.com/446195/662451