我可以不吃啊 发表于 2024-9-2 19:38:45

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

测试环境有三台内网服务器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 -ivhntpdate-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时钟源仍旧可以继承提供时间同步服务,但不会响应监督查询



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 在Linux内网安装NTP,设置时钟同步