一: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 -premote refid st t when poll reach delay offset jitter ==============================================================================0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.0001.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.0002.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.0003.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 +0.000 0.00010.20.30.2 202.112.29.82 2 u 1 64 1 0.262 +25.187 1.040ntp1.flashdance 194.58.202.20 2 u 1 64 1 186.576 +5.922 1.366dns2.synet.edu. 202.118.1.48 2 u 1 64 1 33.411 +17.579 0.000electrode.felix 131.188.3.221 2 u 1 64 1 269.660 -17.697 1.204ntp5.flashdance 194.58.202.20 2 u 2 64 1 189.559 +4.068 0.000ntp.wdc2.us.lea 130.133.1.10 2 u 1 64 1 333.790 -17.704 0.000ntp8.flashdance 194.58.202.148 2 u 1 64 1 216.010 +14.262 1.806119.28.183.184 100.122.36.196 2 u 2 64 1 57.018 +18.580 0.852185.125.190.58 79.243.60.50 2 u 4 64 1 279.504 +36.708 0.000time.cloudflare 10.191.8.4 3 u 2 64 1 200.383 +17.699 0.000185.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 -premote refid st t when poll reach delay offset jitter ==============================================================================0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.0001.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.0002.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.0003.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 +0.000 0.000ntp.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