Linux内网时钟同步问题(ntp和chrony)
我们都知道时钟同步可以使用外网服务器,在内网内不能连接外网的时候也需要时钟同步,那怎么进行呢?
选择内网的一台稳定的服务器作为时钟源,然后让其他机器都来同步这台机器即可。
注:其实ntp服务和chrony服务本质上差不多,他们之间都可以互相进行同步。不过为了避免不必要的麻烦,一般服务器都只选择同一时钟服务来讲进行同步。
一、ntp服务
安装: yum install ntp
1、服务端设置
修改配置文件cat /etc/ntp.conf
将如下外网的时钟源注释掉(前面加#)
如果这台作为内网时钟源服务端的话,做如下设置
ntp实现同步本机时钟
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
如下按需修改:
restrict 10.0.0.0 mask 255.255.255.0 #允许10.0.0.0 网段中的服务器访问本ntp服务器进行时间同步(按自己内网来)
restrict 10.0.0.16 #允许单个IP地址访问本ntp服务器(按ip来)
restrict 192.168.111.0 mask 255.255.255.0 nomodify notrap #允许内网其他机器同步时间,如果不添加该约束默认允许所有IP访问本机同步服务
其它配置不用进行修改,保存退出配置文件
重启 systemctl restart ntpd
查看ntp状态 systemctl status nptd
查看时钟源是否同步: ntpq -p 命令查看 , 带 *星号为已经同步
ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步
。
2、其它客户端配置:
vim /etc/ntp.conf
注释掉server开头的
添加 server IP(这里IP是上边服务端的也就是时钟源的 ip) iburst
重启 systemctl restart ntpd 即可
ntpq -p 查看同步状态,如下图都有值且 ip 前面带星号* 为正常
二、chrony
现在最新的机器的好多都用chrony进行同步了
安装 :yum install chorny
服务端:
配置: vim /etc/chrony.conf
先注释掉网络时钟源,再做如下配置
server 127.0.0.1 iburst #本地作为时钟源
local stratum 10 #允许本地同步
allow #允许所有连接
开机启动:systemctl enable chronyd
启动服务:systemctl start chronyd
查看状态:systemctl status chronyd
查看同步:chronyc sources -v 带星号*为同步成功
或者: timedatectl 命令, NPT synchronized 为yes就是同步完成
然后客户端也是以这台服务端的作为时钟源进行设置
vim /etc/chrony.conf
server ip(上一台服务端的ip) iburst
再加一行
allow #允许所有
保存退出即可。
chronyc sources 查看同步状态,显示刚刚配置的ip 并且ip前面有 *星号即为成功 这个符号 ^ 为失败