引言
当前虚拟化遍布企业的每个角落中,在给我们带来好处的同时也带来了一些麻烦,比如正在使用的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
#红字的是我添加的,其它为默认!
- grep -Ev '^$|^#' /etc/ntp.conf
- restrict default kod nomodify notrap nopeer noquery
- restrict -6 default kod nomodify notrap nopeer noquery
-
restrict 131.107.13.100 //允许该NTP服务器进入
-
restrict 114.80.81.1 //没有任何何參數的話,這表示『该 IP或网段不受任何限制』
- restrict 202.118.1.199
- restrict 127.0.0.1
- restrict -6 ::1
- restrict 192.168.0.0 mask 255.255.0.0 nomodify //该网段可以进行校时
- restrict 0.0.0.0 mask 0.0.0.0 notrust //拒绝没有认证的用户端
-
server time-nw.nist.gov prefer //prefer 该服务器优先
- server 0.rhel.pool.ntp.org
- server 1.rhel.pool.ntp.org
- server 2.rhel.pool.ntp.org
- fudge 127.127.1.0 stratum 10
- driftfile /var/lib/ntp/drift
- keys /etc/ntp/keys
别忘了启动NTP服务器
/etc/init.d/ntp start
客户端测试
对了客户端只需要是用ntpdate命令即可,192.168.6.51 为ntp 服务器ip 地址,就这么就简单!
相关命令
-
ntpstat //列出我们的NTP 服务器是否与上层连接。
- synchronised to NTP server (131.107.13.100) at stratum 2
- time correct to within 461 ms
- polling server every 64 s
-
-
-
ntpq -p //列出目前我们的NTP服务器 与上层NTP服务器 的状态,* 代表目前正在使用的上层 NTP服务器
- remote refid st t when poll reach delay offset jitter
- ==============================================================================
- *131.107.13.100 .ACTS. 1 u 30 64 67 237.165 1.539 20.382
- 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:用户端不能使用NTPC与ntpq这两支程式来修改伺服器的时间参数,但使用者端仍可透过这部主机来进行网路校时的;
* noquery:用户端不能够使用ntpq,NTPC等指令来查询发表伺服器,等于不提供的NTP的网路校时幂;
* notrap:不提供陷阱这个远端事件邮箱(远程事件日志)的功能。
* notrust:拒绝没有认证的用户端。
如果你没有在参数的地方加上任何参数的话,这表示“该IP或网段不受任何限制的”的意思喔!一般来说,我们可以先关闭NTP的使用权限,然后再一个一个的启用允许登入的网段。
参考
http://linux.vbird.org/linux_server/0440ntp.php
如有问题欢迎到此讨论:37275208
本文出自 “dongnan” 博客,请务必保留此出处http://dngood.blog.51cto.com/446195/662451