ntp時間伺服器

来源:https://www.cnblogs.com/1naonao/archive/2019/10/11/11656477.html
-Advertisement-
Play Games

[toc] ntp時間伺服器 ntp簡介 NTP(Network Time Protocol,網路時間協議)是用來使網路中的各個電腦時間同步的一種協議。它的用途是把 電腦的時鐘同步到世界協調時UTC,其精度在區域網內可達0.1ms,在互聯網上絕大多數的地方其精度可以達到1 50ms。 NTP服務 ...


目錄

ntp時間伺服器

ntp簡介

NTP(Network Time Protocol,網路時間協議)是用來使網路中的各個電腦時間同步的一種協議。它的用途是把

電腦的時鐘同步到世界協調時UTC,其精度在區域網內可達0.1ms,在互聯網上絕大多數的地方其精度可以達到1-

50ms。

NTP伺服器就是利用NTP協議提供時間同步服務的。

環境準備

[root@ntpserver ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

主機規劃

NTP服務端:ntpserver IP:10.0.0.61
NTP客戶端:ntpclient IP:10.0.0.7

服務端安裝部署

安裝ntp和ntpdate

yum install ntp ntpdate -y

啟動ntp

systemctl start ntpd.service
systemctl enable ntpd.service

查看是否成功

netstat -lntup|grep ntpd

配置ntp配置文件

[root@ntpserver ~]# vim /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
# 允許內網其他機器同步時間
restrict 172.16.1.0 mask 255.255.255.0 nomodify notrap
#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 time1.aliyun.com
server ntp1.aliyun.com
# 允許上層時間伺服器主動修改本機時間
restrict time1.aliyun.com nomodify notrap noquery
restrict ntp1.aliyun.com nomodify notrap noquery
# 外部時間伺服器不可用時,以本地時間作為時間服務
server 127.127.1.0
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

重啟ntp服務

systemctl restart ntpd.service

==註意==:如果有同步時間的定時任務要將其註銷。否則會衝突

查看ntp伺服器與上層ntp的狀態

[root@ntpserver ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
203.107.6.88 10.165.84.13 2 u 66 64 7 27.784 10.499 1.787
*120.25.115.20 10.137.53.7 2 u 3 64 17 33.749 9.611 1.618
LOCAL(0) .LOCL. 10 l 10 64 17 0.000 0.000 0.000
#參數含義
remote:本機和上層ntp的ip或主機名,“+”表示優先,“*”表示次優先
refid:參考上一層ntp主機地址
st:stratum階層
when:多少秒前曾經同步過時間
poll:下次更新在多少秒後
reach:已經向上層ntp伺服器要求更新的次數
delay:網路延遲
offset:時間補償
jitter:系統時間與bios時間差

客戶端部署

安裝ntp和ntpdate

yum install ntp ntpdate -y

配置ntp服務配置文件

[root@web01 ~]# cat /etc/ntp.conf
...
...
restrict 127.0.0.1
restrict ::1
#新增此行,進行許可權配置
restrict 172.16.1.0 mask 255.255.255.0 nomodify notrap
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#註釋掉或刪除掉原來的伺服器地址,新增本地伺服器地址
server 172.16.1.61 prefer
#broadcast 192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client
....
....

手動同步一次時間(服務端主機IP,這裡需要先關閉NTP服務哦)

[root@ntpclient ~]# ntpdate 172.16.1.61
25 Mar 14:38:04 ntpdate[2937]: step time server 172.16.1.51 offset 139055.717574 sec

註意:客戶機要等幾分鐘再與新啟動的ntp伺服器進行時間同步,否則會提示以下這個錯誤。

no server suitable for synchronization found
在這裡,你可以設置定時任務,定時向服務端同步時間,亦可以啟動ntp服務,使其自動向服務端同步時間。

啟動ntp

systemctl start ntpd.service
systemctl enable ntpd.service

觀察時間同步狀況

[root@ntpcilent ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
172.16.1.61 203.107.6.88 3 u - 64 1 2.485 400.150 0.000

查看時間同步結果

[root@ntpcilent ~]# ntpstat
unsynchronised
time server re-starting
polling server every 8 s
#同步失敗,同步也需要時間嘛,需等待5-10分鐘再次查詢
[root@ntpcilent ~]# ntpstat
synchronised to NTP server (172.16.1.61) at stratum 3
time correct to within 28 ms
polling server every 64 s
#OK!時間同步完成,date一下是不是和伺服器主機時間一致呢

擴展一:系統時間與硬體時間同步

如果主從服務時間超過1000秒則不再進行同步了,這時候要手動同步,即:/usr/sbin/ntpdate命令,如果怕伺服器

時差會經常變動比較大可以再Linux中添加計劃任務,例如:

10 5 * * * root /usr/sbin/ntpdate 192.168.31.223 && /sbin/hwclock -w

ntp服務,預設只會同步系統時間。如果想要讓ntp同時同步硬體時間,可以設置/etc/sysconfifig/ntpd文件,
在/etc/sysconfifig/ntpd文件中,添加 SYNC_HWCLOCK=yes 這樣,就可以讓硬體時間與系統時間一起同步。

hwclock -r 讀出BIOS的時間參數
hwclock -w 將當前系統時間寫入BIOS中

擴展二:不同機器之間的時間同步

為了避免主機時間因為長期運作下所導致的時間偏差,進行時間同步(synchronize)的工作是非常必要的。

同步時間,可以使用ntpdate命令,也可以使用ntp服務。

方法一:使用ntpdate比較簡單,格式如下

[root@client ~]# ntpdate 172.16.1.623 May 19:50:44 ntpdate[7507]: step time server 172.16.1.61 offset 1.239826 sec

但這樣的同步,只是強制性的將系統時間設置為ntp 伺服器時間。只是治標不治本。所以,一般配合cron命令,來進

行定期同步設置。比如,在crontab 中添加:

[root@client ~]# crontab -e
0 10 * * * /usr/sbin/ntpdate 172.16.1.61

方法二:使用ntp服務進行同步

要註意的是,ntpd 有一個自我保護設置:如果本機與上源時間相差太大,ntpd 不運行。所以新設置的時間伺服器一

定要先ntpdate 從上源取得時間初值。然後啟動ntpd 服務。

ntp.ntpdate的區別

下麵是網上關於ntpd與ntpdate區別的相關資料。如下所示所示:
使用之前得弄清楚一個問題,ntpd與ntpdate在更新時間時有什麼區別。ntpd不僅僅是時間同步伺服器,它還可以做客戶端與標準時間伺服器進行同步時間,而且是平滑同步,並非ntpdate立即同步,在生產環境中慎用ntpdate,也正如此兩者不可同時運行。時鐘的躍變,對於某些程式會導致很嚴重的問題。許多應用程式依賴連續的時鐘——畢竟,這是一項常見的假定,即,取得的時
間是線性的,一些操作,例如資料庫事務,通常會地依賴這樣的事實:時間不會往回跳躍。不幸的是,ntpdate調整時間的方式就是我們所說的”躍變“:在獲得一個時間之後,ntpdate使用settimeofday(2)設置系統時間,這有幾個非常明顯的問題:
第一,這樣做不安全。ntpdate的設置依賴於ntp伺服器的安全性,攻擊者可以利用一些軟體設計上的缺陷,拿下ntp伺服器並令與其同步的伺服器執行某些消耗性的任務。由於ntpdate採用的方式是跳變,跟隨它的伺服器無法知道是否發生了異常(時間不一樣的時候,唯一的辦法是以服務準)。
第二,這樣做不精確。一旦ntp伺服器宕機,跟隨它的伺服器也就會無法同步時間。與此不同,ntpd不僅能夠校準電腦的時間,而且能夠校準電腦的時鐘。
第三,這樣做不夠優雅。由於是跳變,而不是使時間變快或變慢,依賴時序的程式會出錯(例如,如果ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。因而,唯一一個可以令時間發生跳變的點,是電腦剛剛啟動,但還沒有啟動很多服務的那個時候。其餘的時候,理想的做法是使用ntpd來校準時鐘,而不是調整電腦時鐘上的時間。NTPD 在和時間伺服器的同步過程中,會把 BIOS 計時器的振蕩頻率偏差——或者說 Local Clock 的自然漂移(drift)——記錄下來。這樣即使網路有問題,本機仍然能維持一個相當精確的走時。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 碼雲:https://gitee.com/kwwwvagaa/net_winform_custom_contr ...
  • WPF自定義控制項與樣式(3)-TextBox & RichTextBox & PasswordBox樣式、水印、Label標簽、功能擴展 原文:https://www.cnblogs.com/anding/p/4970845.html 一.前言.預覽 申明:WPF自定義控制項與樣式是一個系列文章,前後 ...
  • 在我嘗試wget下載一張圖片的時候,出現瞭如下錯誤: 解決方案: ...
  • 運行cockpit 服務時,我們指定運行此程式的用戶和組;cockpit-ws cockpit-ws 我們使用 sudo -u -g 命令來進行運行; 同理,執行其他程式時,也可以 以這種方式執行; 保持更新,更多內容請關註 cnblogs.com/xuyaowen ...
  • [20191011]通過bash計算sql語句的sql_id.txt--//當我知道如何通過bash計算sql語句的full_hash_value ,就很想通過bash編程計算sql_id.當時受限自己能力--//感覺不好實現.--//鏈接: http://blog.itpub.net/267265 ...
  • 慢系統調用,指的是可能永遠無法返回,從而使進程永遠阻塞的系統調用,比如無客戶連接時的accept、無輸入時的read都屬於慢速系統調用。 在Linux中,當阻塞於某個慢系統調用的進程捕獲一個信號,則該系統調用就會被中斷,轉而執行信號處理函數,這就是被中斷的系統調用。 然而,當信號處理函數返回時,有可 ...
  • [20191010]bash行計算器.txt--//寫一個bash行計算器,為了避免衝突,函數命名為2個=,1個=感覺不是很好(心裡上^_^)。--//使用bc計算器,裡面函數不能使用圓括弧,使用中括弧代替。== (){ local in="$(echo "$@" | sed -e 's/\[/(/ ...
  • 今天重新返回來看自己的mybatis,總結了一些更好入門的辦法,下麵用最簡單的方法帶領大家入門。 此處先引入類包的關係圖片 1.構建一個==普通==maven項目 構建好之後向pom.xml添加一下依賴 2.創建資料庫,並創建好實體類 ==切記實體類與資料庫相互對應== 3.創建一個dao ==這裡 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...