1.前期准备
-
ntp服务安装包:
ntp_4.2.8p12+dfsg-3ubuntu4.20.04.1_amd64.deb
-
ntpdate安装包:
ntpdate_4.2.8p12+dfsg-3ubuntu4.20.04.1_amd64.deb
-
Ubuntu下载地址:
-
ntp安装包下载地址:
-
ntpdate安装包下载地址:
-
查看服务器时区,执行如下命令:
timedatectl
-
修改时区,执行如下命令:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
-
查看时区是否修改成功,执行如下命令:
date
如果不关闭systemd-timesyncd服务可能会在安装ntp服务的时候发生冲突
-
停止systemd-timesyncd服务
systemctl stop systemd-timesyncd.service
-
防止systemd-timesyncd服务开机自启
systemctl disable systemd-timesyncd.service
2.NTP部署
将安装包上传至 /var/cache/apt/archives目录下
-
获取最新软件包源,执行如下命令:
apt-get update
-
安装ntp服务,执行如下命令:
apt-get install -y ntp
-
安装ntpdate,执行如下命令:
apt-get install -y ntpdate
执行如下命令:
vim /etc/ntpconf
按i键进入编辑模式,进行修改文件。
-
服务端修改配置文件内容如下:
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
#限制只允许10.1.0.0网段的主机访问本服务器
restrict 10.1.0.0 mask 255.255.255.0 nomodify notrap
#能联网的情况下设置上层服务器
#不能联网情况下的设置
#server 127.127.1.0
#当没有时间同步源的时候会以自身硬件时间为准
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
注意:
driftfile:用来规定服务器与上层时间服务器沟通时所花费的时间,并记录在文件中。
server:设置上层时间服务器,语法为:server ip|域名。server后面接的就是上层的时间服务器,如果server参数后面加prefer,表示我们的ntp服务主要以该上层主机进行时间校对。
restrict:进行权限设定。
如果有防火墙设置,必须设置防火墙放开对ntp的限制
-
查看防火强端口启用状态,命令如下:
ufw status #active是已启动,inactive是未启动
-
放开ntp,命令如下:
ufw ntp
-
重启防火墙,命令如下:
ufw reload
通过运行 "ntpq -p" 命令,可以快速查看当前系统与远程 NTP 服务器之间的时间同步情况,以及远程 NTP 服务器的健康状况。
以下是每列数据的含义:
-
remote:远程服务器的地址或DNS名称。
-
refid:远程服务器所同步的参考服务器。
-
st:远程服务器的层次(stratum),即该服务器与官方时间源的距离。
-
t:表示远程服务器所需的时间以及该时间的偏移量(时间戳)。
-
when:表示最后一次收到远程服务器时间戳的时间。
-
poll:表示与远程服务器同步的时间间隔。
-
reach:表示在最近的8个时间间隔中与远程服务器通信的情况。
-
delay:表示往返时间(Round-trip time,RTT),即从本地计算机发送请求到远程服务器并返回请求的时间。
-
offset:表示远程服务器时间戳与本地计算机时间戳之间的差异。
-
jitter:表示与远程服务器同步的偏差的变化率。
第一列的符号代表服务器状态参数:
-
* : 表示的是该服务器已经被确认为我们的主NTP服务器,系统的时间将由这台机器所提供。
-
+ : 表示的是该服务器将作为辅助的NTP服务器和带有*号的服务器⼀起为我们提供同步服务.当带有*号的服务器不可用时它就可以提供时间。
-
-: 不合格的NTP服务器。
-
x : 远程服务器不可用。
ntp服务是一点一点的自动时间同步,比较柔和,同步时间较慢,具有高精度和高可靠性。
ntpdate是一个命令行实用程序,用于手动同步系统时间。它从指定的时间服务器获取时间信息,并将系统时间设置为与服务器时间同步。ntpdate通常是作为ntp客户端的一部分安装的,但它不能像ntp那样自动同步时间,并且可能存在时间同步错误的情况。
这里使用ntpdate主要是节省时间,执行情况如下:
-
执行ntpdate命令需要停止ntp服务,命令如下:
systemctl stop ntp
-
手动同步时间,命令如下:
服务端:
客户端:
ntpdate 10.1.0.55 #客户端在手动同步时间时 ntpdate后接服务端ip地址
-
系统时间同步后需要将系统时间写入硬件中,命令如下:
hwclock -w
-
重启NTP服务器,命令如下:
systemctl restart ntp
-
设置NTP服务自启
ssystemctl enable ntp
-
跳转到/opt目录下
cd /opt
-
创建目录ntp
mkdir ntp
-
进入ntp目录
cd ntp
-
列出ntp软件包所依赖的其他软件包和依赖关系链的层次结构
apt-cache depends coturn
-
将安装包和依赖下载搭配ntp目录中
apt-get download $(apt-cache depends –recurse –no-recommends –no-suggests –no-conflicts –no-breaks –no-replaces –no-enhances –no-pre-depends ntp:amd64 | grep -v i386 | grep "^\w")
-
创建Debian软件包索引文件
dpkg-scanpackages . | gzip -9c > Packages.gz
-
压缩文件软件包和依赖
tar -zcf packages.tar.gz ./*
packages.tar.gz就是制作好的离线包
上传之前制作的离线包packages.tar.gz 到/opt目录下
-
创建离线文件存放目录
mkdir -p /offline/packages
-
解压离线包文件
tar -zxvf packages.tar.gz -C /offline/packages/
-
备份apt-get源文件
mv /etc/apt/sources.list /etc/apt/sources.list.bak
-
映射本地源
cat >>/etc/apt/sources.list <<EOF
deb [trusted=yes] file:///offline/packages/ ./
EOF
-
更新源
apt-get update
-
安装ntp服务和ntpdate
apt-get install -y ntp
apt-get install -y ntpdate
-
修改客户端ntp服务配置文件:
执行如下命令:
vim /etc/ntpconf
按i键进入编辑模式,进行修改文件。
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
#限制只允许10.1.0.0网段的主机访问本服务器
restrict 10.1.0.0 mask 255.255.255.0 nomodify notrap
#设置上层服务器
server 10.1.0.55
#当没有时间同步源的时候会以自身硬件时间为准
server 127.127.1.0
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
注意:客户端配置ntp服务其它的操作和服务端一致
1.执行ntpdate手动同步时间时出现错误
在Ubuntu系统下出现 "the NTP socket is in use, exiting" 的错误通常表示NTP服务已经在运行,无法启动新的实例。要解决此问题,可以尝试以下步骤:
-
停止NTP服务
systemctl stop ntp
-
再次执行ntpdate
2.系统无法解析NTP服务器的主机名,导致NTP同步失败。
出现这种情况可以尝试以下步骤:
-
检查您的网络连接,确保您可以访问互联网和NTP服务器。您可以尝试使用ping命令来测试网络连接,例如:
如果ping成功,表示您的网络连接正常
-
确认您的DNS配置是否正确。您可以尝试使用dig命令来查找NTP服务器的IP地址。命令如下:
如果dig成功,并返回一个IP地址,则表示您的DNS配置正确。
-
如果您的DNS配置不正确,您可以尝试更改DNS配置,例如更改/etc/resolv.conf文件中的DNS服务器。命令如下:
vim /etc/resolv.conf
-
在nameserver后面接正确的DNS地址,例如4.2.2.1
nameserver 4.2.2.1
保存文件并退出。
-
再次尝试使用ntpdate命令手动同步NTP服务器,命令如下:
原文链接:https://blog.csdn.net/xiaoyuyizhenxia/article/details/129442664