在Linux内网安装NTP,配置时钟同步

本文详细介绍了如何在Linux服务器上安装NTP服务,包括网络和离线系统下的步骤,配置NTP时间同步源,关闭防火墙和selinux,以及设置本地时间和手动/定时同步。还提供了常见问题的解决方案和监控日志的方法。
摘要由CSDN通过智能技术生成

测试环境有三台内网服务器192.168.5.160、192.168.5.161、192.168.5.162。

NTP服务端:192.168.5.160

NTP客户端:192.168.5.161、192.168.5.162

1、NTP服务安装

三台服务器都需要安装NTP。

1.1 有网络

yum install ntp -y
或者(Ubuntu)
apt-get update  
apt-get install ntp

1.2 离线系统

直接下载地址:

http://mirror.centos.org/centos/7/os/x86_64/Packages/ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

http://mirror.centos.org/centos/7/os/x86_64/Packages/ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm

http://mirror.centos.org/centos/7/os/x86_64/Packages/autogen-libopts-5.18-5.el7.x86_64.rpm

或者一步步的找到地址:

下载页面:https://pkgs.org/download/ntp,找到CentOS x86_64 -> ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

https://centos.pkgs.org/7/centos-x86_64/ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm.html

-> Download ->

Binary Package http://mirror.centos.org/centos/7/os/x86_64/Packages/ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

以及Requires:libedit.so.25、ntpdate-4.2.6p5-29.el7.centos.2.x86_64

手动下载(rpm包和依赖)安装,需要下载:

ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

autogen-libopts-5.18-5.el7.x86_64.rpm

ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm

直接安装

# 在只有这三个包的目录里面执行
rpm -ivh autogen-libopts-5.18-5.el7.x86_64.rpm
rpm -ivh ntp*

或者一个个安装

安装这个包
rpm -ivh ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm
提示缺少依赖 :
libedit.so.25
ntpdate-4.2.6p5-29.el7.centos.2.x86_64
对应在Requires里面找到对应的包,下载
安装这个包(libedit.so.25)
rpm -ivh autogen-libopts-5.18-5.el7.x86_64.rpm
安装这个包(ntpdate),安装前需要检查服务是否存在
rpm -qa | grep ntpdate(存在删掉即可)
删除:
yum remove ntpdate -y
再安装
rpm -ivh  ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
最后执行安装ntp
rpm -ivh ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm        

2、配置 NTP时间同步源

2.1 有网络

使用第三方NTP地址进行时间同步

vi /etc/ntp.conf

将默认的pool配置注释掉,添加如下内容(地址没有详细一一测试)

#国家授时中心
server ntp.ntsc.ac.cn iburst prefer
#阿里云时间源
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun com iburst
server times.aliyun.com iburst prefer

2.2 离线系统

ntp时钟服务器(192.168.5.160服务器)配置

修改/etc/ntp.conf 文件配置

vi /etc/ntp.conf

注释掉

#restrict default nomodify notrap nopeer noquery

注释原有的server 0 1 2 3,添加新的server和restrict

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

# 默认的一个内部时钟数据,在没有外部NTP服务器时,它为局域网用户提供服务
server 127.127.1.0 stratum 3

# 表示网关为192.168.5.0,子网掩码为255.255.255.0,网段为192.168.5.0-192.168.5.255的机器可通过该服务端时间校准
restrict 192.168.5.0 mask 255.255.255.0
# 允许修改本机时间
restrict 192.168.5.160 nomodify notrap noquery nopeer

其他的一些配置【可选】

# 不允许来自公网上ipv4和ipv6客户端的访问
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

重启

systemctl restart ntpd
systemctl start ntpd
systemctl enable ntpd

查看服务是否运行

ps -ef |grep ntpd
或者
systemctl status ntpd

查看同步状态

timedatectl status

ntp时钟客户端(192.168.5.161、192.168.5.162服务器)配置

修改/etc/ntp.conf 文件配置

vi /etc/ntp.conf

注释原有的时间服务器地址,添加新的ntp时间服务器地址

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
# ntp时间服务器地址
server 192.168.5.160

重启,禁用ntpd开机启动

systemctl restart ntpd
systemctl stop ntpd
# 禁用ntpd开机启动
systemctl disable ntpd

ntpstat

查看服务是否运行

ps -ef |grep ntpd
或者
systemctl status ntpd
或者
ntpq -p

测试是否成功

ntpstat

出现失败,需要等待大约2-3分钟左右

unsynchronised
  time server re-starting
   polling server every 8 s

再执行ntpstat出现成功

synchronised to NTP server (172.17.100.8) at stratum 7
   time correct to within 951 ms
   polling server every 64 s

查看同步状态

timedatectl status

3、关闭防火墙服务或者开启端口,关闭selinux,关闭chronyd

以下操作三台服务器都要执行。

如果你的服务器有防火墙,确保UDP端口123(NTP默认端口)是开放的,以便其他设备可以与NTP服务器通信(UDP不是TCP)。

# 开端口123(CentOS)
firewall-cmd --permanent --add-port=123/udp
firewall-cmd --reload
# 查询端口
firewall-cmd --list-ports |grep 123

# 开端口123(Ubuntu)
ufw allow 123/udp

或者直接关闭防火墙,禁用开机启动(不建议)

systemctl stop firewalld
systemctl disable firewalld

关闭selinux服务,设置selinux策略为“disabled”。

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

如果安装了chrony,需要将chronyd进程关掉,并且禁用开机启动,否则会影响ntpd的启动。chronyd和ntpd都占用的是UDP123端口。可以用以下方法查询chronyd,并且关闭,禁用开机启动。

systemctl status chronyd
systemctl stop chronyd
systemctl disable chronyd

4、设置本地时间

在NTP服务端(192.168.5.160服务器)设置一个特定时间。

date -s "2024-03-10 00:00:00"

5、手动同步与定时同步

同步时间在ntp时钟客户端(192.168.5.161、192.168.5.162服务器)操作。

若ntp服务正在运行,则需要执行以下命令,先停止ntp服务(因为ntpdate工具和ntp守护进程冲突,因此执行ntpdate命令时需要保证ntpd进程未运行)。

systemctl stop ntpd

手动同步

手动同步时间以验证NTP服务的配置

ntpdate ntp.aliyun.com
或者
ntpdate 192.168.5.160

定时同步

如果需要定时同步系统时间,你可以使用crontab工具来设置。例如,下面的命令会每五分钟执行一次ntpdate命令进行时间同步:

crontab -e

然后在编辑窗口中加入如下内容:

*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com
或者
*/5 * * * * /usr/sbin/ntpdate 192.168.5.160
或者 写入到cron日志里面(自动按天切割), 没有配置日志,会一直接收邮件
*/5 * * * * /usr/sbin/ntpdate 192.168.5.160 >> /var/log/cron 2>&1
或者 写入自定义日志里面(可能需要手动切割)
*/5 * * * * /usr/sbin/ntpdate 192.168.5.160 >> /var/log/cron-ntpdate.log 2>&1
或者不打印日志
*/5 * * * * /usr/sbin/ntpdate 192.168.5.160 >/dev/null 2>&1

6.重启测试(可选)

在NTP服务端(192.168.5.160服务器)重新设置一个另外的时间

date -s "2024-03-10 00:00:00"

在ntp时钟客户端(192.168.5.161、192.168.5.162服务器)重启服务器,重新连接服务器。等待5分钟,看看客户端是否能够同步服务端的时间。

7、监控和日志

你可以使用ntptime命令来查看当前系统时间与NTP服务器的时间偏差。

NTP服务的日志文件通常位于/var/log/syslog或/var/log/ntp.log,你可以查看这些日志来监控NTP服务的运行情况和解决潜在问题。

请注意,NTP服务器的配置可能因具体的网络环境和需求而有所不同。因此,在实际部署过程中,建议参考相关的官方文档和最佳实践,并根据实际情况进行调整和优化。此外,确保在配置过程中考虑到安全性和稳定性方面的因素。

8、常见问题及其解决方法

1. NTP服务未启动或未安装:
使用以下命令安装和启动 NTP 服务:
yum install ntp 或 apt-get install ntp
systemctl start ntpd 或 systemctl start chronyd
2. 防火墙设置不正确:
确保防火墙已经打开并允许NTP端口(UDP 123)通过:
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
3. 与NTP服务器的连接失败:
确保您的Linux主机可以连接到NTP服务器,并且NTP服务器的DNS解析正确。您可以使用以下命令检查IP地址是否可用:
ping ntp.server.com
4. 时间同步失败:
如果时间同步失败,可能需要手动将系统时间设置为与NTP服务器时间相同:
ntpdate -u ntp.server.com

其它资料

一般的ntp使用场景下,ntp时钟源端只需根据需求配置restrict、server参数即可。

参数解释如下:

参数

描述

driftfile

一个绝对路径,默认为:“/var/lib/ntp/drift”

指定存储系统时钟漂移值的文件路径,记录系统时钟与 ntp时钟源时钟之间的差异,以便在系统重新启动后快速同步时间

restrict

具体的IP地址/网段(后面可加具体选项)

restrict参数用于限制具体的IP或网段对本时钟源的具体操作。

其选项包括:

nomodify(禁止对本ntp时钟源进行修改操作,包括更改时间、更改配置等);

notrap(禁止使用trap服务,trap服务是一种用于远程管理的NTP服务,禁止使用可以增加安全性);

nopeer(禁止作为对等服务器,即禁止其他ntp时钟源与本时钟源进行对等通信);

noquery(禁止查询操作,即禁止其他客户端向本ntp时钟源发送时间查询请求)。

举例1:

restrict default nomodify notrap nopeer noquery(允许所有人同步本时钟源时间,但遵守nomodify、notrap、nopeer、noquery动作);

举例2:restrict 192.168.100.6(允许192.168.100.6同步本时钟源时间);

举例3:restrict 192.168.1.0 mask 255.255.255.0 notrap(允许192.168.1.0/24这个网段内的主机同步本时钟源时间,但遵守notrap动作)

server

具体的IP地址(后面可加具体选项)

server参数用于指定上级时钟源,当本节点需要同步其他时钟源的时间时,可以通过该参数指定上级时钟源IP。

其选项包括:

iburst(在与上级时钟源建立连接时,使用更快的初始轮询间隔来加快同步速度);

prefer(当存在多个上级时钟源时,该选项将指定的上级时钟源作为首选上级时钟源,即优先选择该时钟源进行时间同步);

stratum X(指定该时钟源的层级,X的值为1~15,数字越小,层级越高,表示可靠性越高,该选项仅适用于ntp时钟源之间的时间同步,对于客户端与ntp时钟源之间的时间同步,该选项不起作用);

minpoll X(表示设置最小轮询间隔为2X秒,X默认为6,在使用公网时钟源时,建议X不小于6即最小轮询间隔不小于64秒 );

maxpoll X(表示设置最大轮询间隔为2X秒,X默认为10)。

举例1:server 192.168.100.10(指定上级时钟源为192.168.100.10);

举例2:server 192.168.100.20 prefer(指定上级时钟源为192.168.100.20,并设置为首选时钟源);

举例3:server 192.168.100.30 stratum 10(指定上级时钟源为192.168.100.30,并设置层级为10);

举例4:server 192.168.100.40 iburst minpoll 7 maxpoll 11(指定上级时钟源为192.168.100.40,并设置了iburst探测,指定了最小轮询间隔为128秒,最大轮询间隔为2048秒)

broadcast

广播IP地址(后面可加具体选项)

用于配置ntp服务器向本地网络广播时间信息,作为广播服务端,它可以通过广播将时间信息发送给网络中的其他设备,以实现时间同步。

其选项包括:

ttl(指定广播数据包的生存时间,即数据包在网络中传播的最大跳数);

key(指定用于加密广播数据包的密钥编号);auth(指定用于鉴权的类型,可选的鉴权类型包括:none、autokey、ntp、control、crypto)。

举例1:broadcast 192.168.100.255 ttl 6(以广播方式向192.168.100.255地址发送时间信息,并设置广播数据包的生存时间为6跳)

broadcastclient

空/具体选项

当配置文件中存在此参数时,表示当前节点为ntp服务的广播客户端,会接受来自广播服务端发出的时间信息完成时间同步。

其选项包括:

ttl(指定接收广播数据包的生存时间,即数据包在网络中传播的最大跳数);

key(指定用于解密广播数据包的密钥编号)。

举例1:broadcastclient(启用broadcastclient参数);

举例2:broadcastclient ttl 6(启用broadcastclient参数,并设置接收广播数据包的生存时间为6跳)

crypto

空/具体选项

当配置文件中存在此参数时,表示时间同步启用公钥加密,使用加密算法对NTP通信进行加密和身份验证,该参数一般不用,此处不做具体介绍

includefile

一个绝对路径,默认为:“/etc/ntp/crypto/pw”

用于指定一个文件,该文件包含其他NTP配置信息。通过使用includefile参数,可以将配置信息分散到多个文件中,使配置文件更加模块化和易于管理,该参数一般不用,此处不做具体用法介绍

keys

一个绝对路径,默认为:“/etc/ntp/keys”

指定用于认证和加密NTP通信的密钥文件路径,通过使用keys参数,可以配置ntp时钟源和ntp客户端使用的密钥,以确保通信的安全性和身份验证,该参数一般不用,此处不做具体用法介绍

disable monitor

用于禁用本ntp时钟源的监视功能。通过使用disable monitor参数,可以阻止本ntp时钟源接受和响应监视查询,禁用监视功能并不会影响ntp时钟源的正常时间同步功能。ntp时钟源仍然可以继续提供时间同步服务,但不会响应监视查询

  • 32
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值