一:ntp服务器详情
服务器型号
系统版本
IP地址
主机名
ntp服务版本
虚拟机8c-32g-1T
Ubuntu22.04
10.20.30.2
DMZ-NTP-SERVER
4.2.8p15
二:ntp服务端部署配置脚本
#!/bin/bash # 脚本信息 echo "----------------------------------------" echo "NTP 服务器安装脚本" echo "----------------------------------------" # 更新软件包列表 echo "正在更新软件包列表..." sudo apt update # 安装 NTP 服务,避免交互提示 echo "正在安装 NTP 服务..." sudo DEBIAN_FRONTEND=noninteractive apt install -y ntp # 备份原配置文件 echo "正在备份原配置文件 ntp.conf..." sudo cp /etc/ntp.conf /etc/ntp.conf.bak # 配置 NTP 服务器 echo "正在配置 NTP 服务器..." sudo bash -c 'cat > /etc/ntp.conf << EOF # 使用来自 pool.ntp.org 项目的公共服务器 server ntp1.aliyun.com iburst server ntp2.aliyun.com iburst server ntp3.aliyun.com iburst # 允许本地网络中的机器与 NTP 服务器同步 restrict default nomodify notrap nopeer noquery restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 请根据您的内部网络进行适当修改 # 启用日志记录 logfile /var/log/ntp.log EOF' # 确保配置文件没有多余的空格或隐藏字符 sudo sed -i 's/[[:space:]]*$//' /etc/ntp.conf # 删除行尾的空格 sudo sed -i '/^$/d' /etc/ntp.conf # 删除空行 # 启动 NTP 服务 echo "正在启动 NTP 服务..." sudo systemctl start ntp sudo systemctl enable ntp # 显示服务状态 echo "NTP 服务状态:" sudo systemctl status ntp # 提示用户在其他服务器上配置 NTP 客户端 echo "----------------------------------------" echo "要配置其他服务器,请将此 NTP 服务器的 IP 地址添加到 /etc/ntp.conf:" echo "server <NTP_SERVER_IP> iburst" echo "最后,在客户端上重启 NTP 服务。"
三:ntp服务维护相关命令
查看服务状态:systemctl status ntp.service
重启服务:systemctl restart ntp.service 关闭服务:systemctl stop ntp.service 启动服务:systemctl start ntp.service
查看日志:tail -20f /var/log/ntp.log 或者 查看服务的系统日志:journalctl -u ntp
查看或者编辑配置文件:cat /etc/ntp.conf
四:客户端安装配置测试ntp服务
(1)提前保证要配置 ntp 服务的机器和10.20.30.2 ntp 服务端网络且端口互通:
telnet 10.20.30.2 123
(2)在客户端机器上安装 ntp 服务:
sudo apt update sudo apt install -y ntp
(3)配置ntp客户端,编辑 ntp 客户端的配置文件 /etc/ntp.conf,将 ntp 服务端的 IP 地址添加到配置文件中:
sudo vim /etc/ntp.conf 并添加以下行: server 10.20.30.2 iburst
(4)完成配置后,重启客户端 ntp 服务使配置生效:
sudo systemctl restart ntp
(5)测试 ntp 时间同步是否生效,使用
ntpq
命令检查 ntp 同步状态。运行以下命令:ntpq -p
此命令会列出已配置的 ntp 服务器及其状态。如果配置正确应该能够看到 ntp 服务器的条目以及它的响应时间。会看到类似于以下的输出(10.20.30.2 202.112.29.82 2 u 1 64 1 0.262 +25.187 1.040 这一列代表配置成功,但是还需要测试时间同步是否成功):
root@DMZ-DNS-SERVER:~# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 +0.000 0.000 10.20.30.2 202.112.29.82 2 u 1 64 1 0.262 +25.187 1.040 ntp1.flashdance 194.58.202.20 2 u 1 64 1 186.576 +5.922 1.366 dns2.synet.edu. 202.118.1.48 2 u 1 64 1 33.411 +17.579 0.000 electrode.felix 131.188.3.221 2 u 1 64 1 269.660 -17.697 1.204 ntp5.flashdance 194.58.202.20 2 u 2 64 1 189.559 +4.068 0.000 ntp.wdc2.us.lea 130.133.1.10 2 u 1 64 1 333.790 -17.704 0.000 ntp8.flashdance 194.58.202.148 2 u 1 64 1 216.010 +14.262 1.806 119.28.183.184 100.122.36.196 2 u 2 64 1 57.018 +18.580 0.852 185.125.190.58 79.243.60.50 2 u 4 64 1 279.504 +36.708 0.000 time.cloudflare 10.191.8.4 3 u 2 64 1 200.383 +17.699 0.000 185.125.190.56 17.253.28.123 2 u 1 64 1 460.684 -39.013 0.000
列名释义:
remote 列显示了当前连接的 NTP 服务器,包括
10.20.30.2
。refid 列显示了该 NTP 服务器的参考时钟(在您的情况下是
202.112.29.82
)。st 列表示服务器的层级(
2
表示这是一个二级 NTP 服务器)。reach 列显示了与该 NTP 服务器的连接状态,值为
1
表示最近的请求已经成功接收。delay、offset 和 jitter 列显示了网络延迟、时间偏移和抖动等信息。
(6)检查时间是否同步,可以通过以下命令查看当前时间:
date
然后,等待一段时间(通常是几分钟),ntp 客户端会自动与ntp服务端进行同步。再次运行
ntpq -p
查看 ntp 同步状态,直到 reach 列显示为377
(即所有请求的回复都成功)。root@DMZ-DNS-SERVER:~# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 +0.000 0.000 +10.20.30.2 203.107.6.88 3 u 116 128 377 0.287 -14.026 2.050 *dns2.synet.edu. 202.118.1.48 2 u 69 128 377 32.561 -13.713 1.781 -ntp8.flashdance 194.58.202.148 2 u 65 256 377 193.624 -21.543 4.956 +119.28.183.184 100.122.36.196 2 u 231 128 366 55.292 -9.522 3.699 -101.43.66.2 202.112.29.82 2 u 9 128 377 37.396 -12.486 3.318
(7)确保防火墙未阻止 ntp 流量
如果无法同步,请确认防火墙未阻止 ntp 流量。默认情况下,ntp 使用 udp 123 端口。需要在 ntp 服务器上检查防火墙规则:
sudo ufw status
如果 ntp 服务被阻止,则可以通过以下命令允许 ntp 流量:
sudo ufw allow ntp
(8)备注:自建的ntp还是依赖于阿里云的1级ntp服务器,我们这里属于2级ntp服务器
ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com