1. 程式人生 > >配置ntp客戶端與伺服器端時間的同步

配置ntp客戶端與伺服器端時間的同步

1,實驗機器介紹

Ip地址

伺服器1

192.168.245.128

伺服器2

192.168.245.130

客戶端1

192.168.245.129

實驗前準備

在ntpS1 和ntpS2 中,配置外部伺服器為同步伺服器,並開放給192.168.245.0/24網段同步。

server 210.72.145.44 perfer   # 指定要同步的網路伺服器的ip地址

server 202.112.10.36             

server 59.124.196.83

restrict 192.168.245.0 mask 255.255.255.0 nomodify notrap

關閉iptables規則。或者開放udp 123號埠,這裡實驗中是關閉

在客戶端 ntpC1中,配置同步伺服器為上面兩臺伺服器,其中優先為ntpS1.

server 192.168.245.128 prefer

server 192.168.245.130 iburst

在三臺機器上開啟ntp服務,並檢視

ntpS1 ntpS2

ntpC1

  1. 下列為幾種極端情況的測試結果。
  1. ntpS1伺服器ntp服務掛掉  檢視客戶端同步情況

在ntpC1中使用watch ntpq -p 檢視後得出結果

當ntpS1掛掉之後,會有一定的超時時間,大概10分鐘左右,然後使用ntpq -p 可以看到*轉移到ntpS2,也就是說大概10分鐘左右客戶端會與別的伺服器建立連線。

  1. 在實驗1之後,將ntpS1啟動,並將ntpS2關閉,檢視狀態

 

此時可以發現,連線轉移到了ntpS1。

  1. 將ntpS1和ntpS2都掛掉看看

經過漫長的等待,發現終於掛完了。。。此時*轉移到本地提供的服務

  1. 經過步驟3後,將ntpS1和ntpS2同時啟動

當等待10幾分鐘後,連線正常了。

  1. 測試當客戶端時間修改的時候,重啟客戶端的ntp服務,時間是否能正常同步。

測試結果:無論是客戶端時間比伺服器端時間快或者慢,只要重啟ntp服務時間就變會為伺服器端時間。

  1. 測試當客戶端關機後重新啟動,時間是否正常。

測試結果:當客戶端重啟後,ntp服務開機自動啟動,此時時間正常。

7,測試客戶端修改完時間後,將ntp服務關閉開機自啟動,然後開機。

 得到結果:當關閉開機自啟動後,開機時間沒有變化。當開啟開機自啟動後,時間變為伺服器的時間。也就是說,當ntp服務啟動的時候,它會同步一次和伺服器的時間。

  1. Ntp配置檔案 /etc/ntp.conf 引數詳解
  1. ntpS1中ntp.conf檔案:

driftfile /var/lib/ntp/drift (記錄時間差異的檔案)

restrict 127.0.0.1

restrict -6 ::1    

server 210.72.145.44 perfer   # 指定要同步的網路伺服器的ip地址

server 202.112.10.36            (其中後面perfer表示優先,常用的有iburst,burst)

server 59.124.196.83

includefile /etc/ntp/crypto/pw (設定包含的配置檔案子檔案)

keys /etc/ntp/keys (當進行祕鑰方式進行認證的時候需要的檔案)

server 127.127.1.0 iburst  # 如果server指定的伺服器無法使用, 就使用本機時鐘作為ntp服務時間來源

restrict 192.168.245.0 mask 255.255.255.0 nomodify notrap  

下面詳細對restrict進行介紹,這是一個許可權控制的語句。語法如下:

ask [netmask_IP] [parameter]

如果後面不加任何引數 則表示允許對面ip或ip段的任何操作。

如:restrict 127.0.0.1

常用的引數有:

ignore: 拒絕所有型別的 NTP 聯機;

nomodify: 客戶端不能使用 ntpc 與 ntpq 這兩支程式來修改伺服器的時間引數, 但客戶端仍可透過這部主機來進行網路校時的;

noquery: 客戶端不能夠使用 ntpq, ntpc 等指令來查詢時間伺服器,等於不提供 NTP 的網路校時;

notrap: 不提供 trap 這個遠端事件登入的功能。

notrust: 拒絕沒有認證的客戶端。

  1. 客戶端ntpC1的配置檔案

配置檔案未做特別指出則與伺服器端一致

tinker panic 0 (這行意思是設定客戶端與伺服器端時間差距,預設最大為1000,為0為不限制。)

server 192.168.245.128 prefer  minpoll 3 maxpoll 3  (minpoll表示客戶端向伺服器端同步的最少時間,單位為2的次冪最小為3,秒)

server 192.168.245.130 iburst  minpoll 3 maxpoll 3(maxpoll表示客戶端向伺服器端同步的最長時間,單位為2的次冪最大為10,秒)

restrict 192.168.245.128

restrict 192.168.245.130

4,ntpq -p命令引數詳解

remote:NTP 主機的 IP 或主機名,左邊的符號

如果有『 * 』代表目前正在作用當中的上層 NTP

如果是『 + 』代表也有連上線,而且可作為下一個提供時間更新的候選者。

如果是『 - 』 表示為不合格的ntp伺服器

refid:上一層 NTP 主機的地址

st:遠端伺服器的層級別,0-16,0為最高層,

when:幾秒鐘前曾經做過時間同步化更新的動作;

poll:下一次更新在幾秒鐘之後;

reach:已經向上層 NTP 伺服器要求更新的次數

delay:網路傳輸過程當中延遲的時間,單位為 10^(-6) 秒

offset:時間補償的結果,單位與 10^(-3) 秒

jitter:Linux 系統時間與 BIOS 硬體時間的差異時間, 單位為 10^(-6) 秒。

相關推薦

配置ntp客戶伺服器時間同步

1,實驗機器介紹 Ip地址 伺服器1 192.168.245.128 伺服器2 192.168.245.130 客戶端1 192.1

APP(Android版)客戶伺服器時間校準

APP開發人員經常會遇見一個bug就是,APP顯示的時間不準,或者說APP時間與伺服器時間不一致,會導致資料請求、資料顯示等各種問題。這時候我們就需要一種機制來解決時間不一致的問題。 解決方案如下:  1.伺服器端永遠使用UTC時間,包括引數和返回值,不要使用Date格式,而是使用UT

SVN:客戶伺服器安裝、配置使用

SVN(SUBVERSION) 前言: SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,說得簡單一點SVN就是用於多個人共同開發同一個專案,共用資源的目的。類似的工具號有git(github是其應用)。 環境:ubuntu 16.4 客戶端:w

客戶伺服器時間保持一致

一、問題描述 需要解決的問題很簡單,就是如何在頁面上比較準確的顯示伺服器時間。目前比較常用的方法就是根據基準時間使用setTimeout或 setInterval來計算最新的時間,這樣的問題在於setTimeout與setInterval的時間精度比較低,經測試一分鐘大概能相差幾秒 (與電腦效能以及執行

Socket-tcp協議客戶伺服器互聯

客戶端 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.T

zookeeper叢集的客戶伺服器

zookeeper服務端命令: 啟動命令:sh zkServer.sh start 停止命令:sh zkServer.sh stop zookeeper客戶端命令: 啟動命令:sh zkCli.sh 連線其他客戶端:sh zkCli.sh -server ip:port    

php 客戶伺服器安全破解

一般的加密和授權:轉發伺服器(代理伺服器) 解決方案:hhvm編譯程式碼   放扒取: js類 1:防止滑鼠右鍵事件,在html->body <body oncontextmenu=self.event.returnValue=false> 或

java socket:客戶伺服器通訊

Socket:網路上兩個程式通過一個雙向的通訊連線實現資料交換,連線的一段為一個socket,要實現兩個程式的資料交換一般要一對socket。 這個定義參考自百度百科,我覺得說的還不錯,另外,socket的英文有‘插口’的意思,其實也可以理解為程式的插口等等。

客戶伺服器建立連線的過程

一、概述 學習計算機其實就是在通曉原理的基礎上藉助實踐驗證想法。王陽明的“知行合一”用在計算機上,也是十分的貼切。這裡先說明兩個概念  Socket、TCP。 “交流”讓智人走上食物鏈的頂端。計算機網路的發展讓交流變得更加便利,同時也促進交流技術的發展。如果有兩個網友想送

android客戶伺服器互動 如何保持session

最近在開發專案的過程中,遇到android與web伺服器要在同一session下通訊的問題。 在解決問題前先回顧下Session與Cookie: Cookie和Session都為了用來儲存狀態資訊,都是儲存客戶端狀態的機制,它們都是為了解決HTTP無狀態的問題而所做

分散式資料庫資料從屬客戶伺服器的資料同步

老實說,目前市面上許多產品,的確是不成熟的產品。 用過一些,給人蛋痛的感覺。 導言分佈還是集總今天我們來探討一個很重要的問題。每個程式設計師都有其思想,我的思想之一,就是分散式。 分散式,面對的一個問題,就資料的同步。 比如說,我們人類是分散式的,我們每個細胞都在無時無刻與其它細腦交換資料。 而現實

通俗易懂客戶伺服器互動原理(HTTP資料請求HTTP響應,包括Servlet部分)

經常看到HTTP客戶端與伺服器端互動原理的各種版本的文章,但是專業術語太多,且流程過於複雜,不容易消化。於是就按照在 Servlet 裡面的內容大致做了一些穿插。本來 連 Tomcat 容器 和 Servlet 的生命週期也準備在這裡一起寫的,但怕過去龐大,於是就簡單的 引用

客戶伺服器互動原理簡述

Web 瀏覽器(客戶端)中請求一個地址時,通過HTTP協議向伺服器端傳送一個請求(request),伺服器端收到請求後,在Servlet中根據請求時的方法(method) 的設定get/post來響應doGet()/doPost()方法進行處理,由respons

node建立客戶伺服器(HTTP)

Transfer-Encoding: chunked   在我用telnet登入伺服器的時候,伺服器返回資訊如下。   其中,我們看到這樣一條相應–Transfer-Encoding: chunked。Transfer-Encoding頭資訊的預設值是c

Android 客戶伺服器進行資料互動(一、登入伺服器

概要 安卓APP要實現很多功能(比如登入註冊、發表評論等)時都必須要使用到網路資料互動。所以在學習了這部分內容後,就將其以最常見的登入過程為例整理出來,也方便跟我一樣的新手能迅速學習上手。 預期效果圖如下,輸入手機號和密碼,點選Login按鈕,上傳資料到伺

Java Socket通訊 客戶伺服器的連線 和資訊傳輸

一.建立客戶端和伺服器端的連線。 方法分2步: 1.在客戶端建立Socket物件,用來發送連線請求 2.在伺服器端穿件ServerSocket物件,用來接收請求。 //客戶端 public clas

Android客戶伺服器的json資料互動(很詳細)

      Android客戶端與伺服器端的json資料互動,主要是通過json形式的資料互動,就是json的寫入和解析。  先看效果圖,我最討厭講東西,一個圖沒有的。 算了,看來我不是寫部落格的材料,寫不下去了,要排版之類的麻煩,大家還是直接去下載原始碼,裡面有大量的注

Android 客戶伺服器進行資料互動(二、登入客戶

概要 Android客戶端分為User,HttpUtil,HttpCallbackListener,MainActivity四個部分。User model與服務端的一樣,一方面是用於本地使用者資訊的儲存model,另一方面也是為了保證構造URL時使用的key一

如何在HTTP客戶伺服器之間保持狀態

HTTP協議與狀態保持 HTTP協議本身是無狀態的,這與HTTP協議本來的目的是相符的,客戶端只需要簡單的向伺服器請求下載某些檔案,無論是客戶端還是伺服器都沒有必要紀錄彼此過去的行為,每一次請求之間都是獨立的,好比一個顧客和一個自動售貨機或者一個普通的(非會員

Android客戶伺服器互動方式總結

一、HttpClient 方式: //第一步:建立一個客戶端例項 HttpClient httpClient = new DefaultHttpClient(); //第二步:建立Http請求 HttpPost httpRequest = new Http