執行ntpdate xxx.xxx.xxx.xxx(ntp伺服器地址)。
Linux下配置NTP伺服器
配置方法:
1、ntp服務安裝
NTP服務在RHEL5.x中式默認安裝的軟體包,可用rpm -qa |grep
ntp檢查是否安裝,如果未安裝可使用如下命令安裝與刪除NTP伺服器軟體包
#使用rpm方式安裝
rpm -ivh ntp-4.2.2p1-8.el5.i386.rmp
#使用yum方式安裝
yum -y install ntp.i*
#使用rpm方式刪除
rpm -e ntp-4.2.2pl-8.el5.i386.rpm
#使用yum方式刪除
yum -y remove ntp.i*
2、ntp服務配置
在ntp服務安裝完成後,需要修改ntp服務配置文件。ntp服務主配置文件/etc/ntp.conf
2.1 ntp服務的啟動、暫停
NTP屬於system
V服務,其啟動、暫停相關命令如下:
#啟動
service ntpd
start
#停止
Service ntpd
stop
#重新載入
service ntpd
reload
#查看當前啟動狀態
service ntpd
status
2.2 ntp服務自動載入
設置ntp服務下一次開機運行狀態可通過命令配置
#在運行級別2、3、4、5上設置為自動運行
chkconfig
ntpd on
#在運行級別2、3、4、5上設置為不自動運行
chkconfig
ntpd off
#在運行級別3、5上設置為自動運行
chkconfig
ntpd --level 35 on
#在運行級別3、5上設置為不自動運行
chkconfig
ntpd --level 35 off
2.3 配置信息
配置ntp,將Internet上的時間伺服器作為內部標准時間來源,過程如下
1)修改/etc/ntp.conf文件
restrict default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6::1
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#指定Internet上的時間伺服器
restrict 207.46.232.182 mask 255.255.255.255 nomodify notrap noquery
server 207.46.232.182
server 127.127.1.0
fudge 127.127.1.0 stratum 10
keys /etc/ntp/keys
#指定NTP伺服器日誌文件
logfile /var/log/ntp
2)修改/etc/ntp/stpe-tickers文件,內容如下(當ntpd服務啟動時,會自動與該文件中記錄的上層NTP服務進行時間校對)
207.46.232.182
127.127.1.0
3)修改/etc/sysconfig/ntpd文件,內容如下:
#允許BIOS與系統時間同步,也可以通過hwclock -w 命令
SYNC_HWCLOCK=yes
4)在配置完成並重新啟動服務後,可通過ntpstat
命令顯示本機上一次與上層ntp伺服器同步時間的情況,也可以使用ntpq -p 查看本機與上層ntp伺服器通信情況,
2.4 圖形界面配置NTP
圖形界面下直接用system-config-date, 在「Network Time Protocol」選項頁指定NTP伺服器後勾選「Synchronize system clock before startingservice」,將ntpd服務設置為自動運行即可。
2.5 客戶端訪問
1)Linux客戶端可通過圖形界面進行配置,也可以通過ntpdate命令立即與NTP伺服器及行時間校對。
ntpdate 192.168.0.10
2)Windows客戶端,只需雙擊任務欄右下角的時鍾,選擇「Internet時間」選項頁,輸入NTP服務IP地址或FQDN,並勾選「自動與Internet時間伺服器同步」即可。
Windows默認7天自動更新一次,可通過修改注冊表HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\services\W32Time\TimeProviders\NtpClient\SpecialPollInterval 默認單位為妙,修改後重新啟動即可生效。
② 怎樣開啟linux系統下的ntp同步請求
Linux 系統安裝配置NTP時間伺服器。
③ 【ntp】NTP伺服器時間同步三部曲
在一台計算機上我們有兩個時鍾:一個稱之為硬體時間時鍾(RTC),還有一個稱之為系統時鍾(System Clock)。
系統時鍾就是操作系統的kernel所用來計算時間的時鍾. 它從1970年1月1日00:00:00 UTC時間到目前為止秒數總和的值。
在Linux下,系統時間在開機的時候會和RTC硬體時鍾同步(synchronization),之後也就 各自獨立運行 了。
系統運行期間,則通過其他硬體時鍾源進行tick計算(tsc、hpet、acpi_pm)。
RTC(real time clock)通過主板(CMOS)的電磁供電,精確到秒。用戶可手工設置RTC時間。
1. 強制躍遷同步
ntpdate -u xx.xx.xx.xx
xx.xx.xx.xx 為ntpServer地址,如 ntp.aliyun.com
注意:此時本機的ntpd不能啟動,否則執行 ntpdate會報socket佔用
2. 將系統時間同步到硬體時鍾
hwclock -w
3. 啟動ntpd,後續平滑同步
systemctl start ntpd
注意:此時本機的不能在ntpd運行期間執行ntpdate,否則會報socket佔用
NTP伺服器時間監控腳本
https://www.yaoyan.me/2021/03/ntp-time-monitor/
使用Prometheus監控時間指標
http://www.panooo.com/prometheus_ntp
Linux時間子系統及node-exporter對時鍾的監控
https://www.cnblogs.com/danny-djy/p/14132436.html
真正讓你明白Linux NTP(包括歷史、參數解釋、安裝配置)
https://www.aboutyun.com/thread-11395-1-1.html
GaussDB(DWS)NTP變更指南
https://bbs.huaweicloud.com/blogs/detail/211403
NTP時鍾同步異常告警處理
https://support.huawei.com/enterprise/zh/knowledge/KB1000029535
chrony服務時間同步實驗
https://www.yaoyan.me/2021/03/Chrony/
NTP 服務概述
https://cloud.tencent.com/document/proct/213/30392
Linux 實例:配置 NTP 服務
https://cloud.tencent.com/document/proct/213/30393
Linux 實例:將 ntpdate 轉換為 ntpd
https://cloud.tencent.com/document/proct/213/45361
Redis 3.2.8集群部署實驗
https://www.yaoyan.me/2017/03/redis-cluster-setup/
Linux dns服務 bind安裝配置
https://www.yaoyan.me/2017/06/LinuxBind/
printf格式化輸出
https://www.yaoyan.me/2015/07/shell_printf/
NTP協議與SNTP協議的區別
https://www.ruijie.com.cn/fw/wt/18857/
SNTP- Simple Network Time Protocol簡單網路時間協議
https://www.syn029.com/h-nd-1881.html
https://hongwangle.com/terms-definition/time-server-terms-analysis/sntp-simple-network-time-protocol/
④ 如何搭建自己的NTP伺服器
NTP伺服器【Network Time Protocol(NTP)】是用來使計算機時間同步化的一種協議,它可以使計算機對其伺服器或時鍾源(如石英鍾,GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標准間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。時間按NTP伺服器的等級傳播。按照離外部UTC源的遠近把所有伺服器歸入不同的Stratum(層)中。
網路時間協議(NTP)用來同步網路上不同主機的系統時間。你管理的所有主機都可以和一個指定的被稱為 NTP 伺服器的時間伺服器同步它們的時間。而另一方面,一個 NTP 伺服器會將它的時間和任意公共 NTP 伺服器,或者你選定的伺服器同步。由 NTP 管理的所有系統時鍾都會同步精確到毫秒級。
在公司環境中,如果他們不想為 NTP 傳輸打開防火牆,就有必要設置一個內部 NTP 伺服器,然後讓員工使用內部伺服器而不是公共 NTP 伺服器。在這個指南中,我們會介紹如何將一個 CentOS 系統配置為 NTP 伺服器。在介紹詳細內容之前,讓我們先來簡單了解一下 NTP 的概念。
為什麼我們需要 NTP?
由於製造工藝多種多樣,所有的(非原子)時鍾並不按照完全一致的速度行走。有一些時鍾走的比較快而有一些走的比較慢。因此經過很長一段時間以後,一個時鍾的時間慢慢的和其它的發生偏移,這就是常說的 「時鍾漂移」 或 「時間漂移」。為了將時鍾漂移的影響最小化,使用 NTP 的主機應該周期性地和指定的 NTP 伺服器交互以保持它們的時鍾同步。
在不同的主機之間進行時間同步對於計劃備份、入侵檢測記錄、分布式任務調度或者事務訂單管理來說是很重要的事情。它甚至應該作為日常任務的一部分。
NTP 的層次結構
NTP 時鍾以層次模型組織。層級中的每層被稱為一個 stratum(階層)。stratum 的概念說明了一台機器到授權的時間源有多少 NTP 跳。
Stratum 0 由沒有時間漂移的時鍾組成,例如原子時鍾。這種時鍾不能在網路上直接使用。Stratum N (N > 1) 層伺服器從 Stratum N-1 層伺服器同步時間。Stratum N 時鍾能通過網路和彼此互聯。
NTP 支持多達 15 個 stratum 的層級。Stratum 16 被認為是未同步的,不能使用的。
准備 CentOS 伺服器
現在讓我們來開始在 CentOS 上設置 NTP 伺服器。
首先,我們需要保證正確設置了伺服器的時區。在 CentOS 7 中,我們可以使用 timedatectl 命令查看和更改伺服器的時區(比如,"Australia/Adelaide",LCTT 譯註:中國可設置為 Asia/Shanghai )
代碼如下:
# timedatectl list-timezones | grep Australia
# timedatectl set-timezone Australia/Adelaide
# timedatectl
繼續並使用 yum 安裝需要的軟體
代碼如下:
# yum install ntp
然後我們會添加全球 NTP 伺服器用於同步時間。
代碼如下:
# vim /etc/ntp.conf
server 0.oceania.pool.ntp.org
server 1.oceania.pool.ntp.org
server 2.oceania.pool.ntp.org
server 3.oceania.pool.ntp.org
默認情況下,NTP 伺服器的日誌保存在 /var/log/messages。如果你希望使用自定義的日誌文件,那也可以指定。
復制代碼
代碼如下:
logfile /var/log/ntpd.log
如果你選擇自定義日誌文件,確保更改了它的屬主和 SELinux 環境。
復制代碼
代碼如下:
# chown ntp:ntp /var/log/ntpd.log
# chcon -t ntpd_log_t /var/log/ntpd.log
現在初始化 NTP 服務並確保把它添加到了開機啟動。
代碼如下:
# systemctl restart ntp
# systemctl enable ntp
驗證 NTP Server 時鍾
我們可以使用 ntpq 命令來檢查本地伺服器的時鍾如何通過 NTP 同步。
下面的表格解釋了輸出列。
remote 源在 ntp.conf 中定義。『*』 表示當前使用的,也是最好的源;『+』 表示這些源可作為 NTP 源;『-』 標記的源是不可用的。
refid 用於和本地時鍾同步的遠程伺服器的 IP 地址。
st Stratum(階層)
t 類型。 'u' 表示單播(unicast)。其它值包括本地(local)、多播(multicast)、廣播(broadcast)。
when 自從上次和伺服器交互後經過的時間(以秒數計)。
poll 和伺服器的輪詢間隔,以秒數計。
reach 表示和伺服器交互是否有任何錯誤的八進制數。值 337 表示 100% 成功(即十進制的255)。
delay 伺服器和遠程伺服器來回的時間。
offset 我們伺服器和遠程伺服器的時間差異,以毫秒數計。
jitter 兩次取樣之間平均時差,以毫秒數計。
控制到 NTP 伺服器的訪問
默認情況下,NTP 伺服器允許來自所有主機的查詢。如果你想過濾進來的 NTP 同步連接,你可以在你的防火牆中添加規則過濾流量。
# iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 123 -j ACCEPT
# iptables -A INPUT -p udp --dport 123 -j DROP
該規則允許從 192.168.1.0/24 來的 NTP 流量(埠 UDP/123),任何其它網路的流量會被丟棄。你可以根據需要更改規則。
配置 NTP 客戶端
1. Linux
NTP 客戶端主機需要 ntpupdate 軟體包來和伺服器同步時間。可以輕松地使用 yum 或 apt-get 安裝這個軟體包。安裝完軟體包之後,用伺服器的 IP 地址運行下面的命令。
代碼如下:
# ntpdate
基於 RHEL 和 Debian 的系統命令都相同。
2. Windows
如果你正在使用 Windows,在日期和時間設置(Date and Time settings)下查找網路時間(Internet Time)。
3. Cisco 設備
如果你想要同步 Cisco 設備的時間,你可以在全局配置模式下使用下面的命令。
代碼如下:
# ntp server
來自其它廠家的支持 NTP 的設備有自己的用於網路時間的參數。如果你想將設備和 NTP伺服器同步時間,請查看設備的說明文檔。
結論
總而言之,NTP 是在你的所有主機上同步時鍾的一個協議。我們已經介紹了如何設置 NTP 伺服器並使支持 NTP 的設備和伺服器同步時間。