㈠ 請問如何設置linux系統的時間與本地當時的實際的時間同步呢
為了使Linux系統的時間與本地實際時間保持同步,首先需要安裝一個NTP客戶端,比如ntp-4.2.4p8-1.16.1版本。安裝完成後,配置系統使用一個可靠的NTP伺服器,例如池中的公共伺服器,如time.nist.gov或pool.ntp.org。配置文件通常位於/etc/ntp.conf,編輯此文件以添加或修改伺服器列表。保存更改後,重啟NTP服務使配置生效。如果使用systemd系統,可以執行systemctl restart ntpd命令。
為了確保NTP服務持續運行,可以設置系統啟動時自動啟動NTP服務。在systemd系統中,可以使用以下命令檢查NTP服務是否設置為開機啟動:systemctl is-enabled ntpd。如果未設置,可以使用systemctl enable ntpd命令啟用。
另外,可以使用chrony作為替代方案,它提供更精確的時間同步。安裝chrony後,可以通過編輯/etc/chrony.conf配置文件添加伺服器。chrony服務啟動後,使用chronyc工具監控時間同步狀態。同樣,確保服務開機自啟,命令為:systemctl enable chronyd。
除了上述方法,還可以利用Linux發行版自帶的NTP服務。例如,Debian和Ubuntu使用chrony,而CentOS和RHEL使用NTPD。具體配置方式有所不同,但基本步驟相似,需要安裝相應的NTP軟體包,配置服務,重啟服務,並設置開機啟動。確保NTP服務運行穩定,可以定期檢查和調整配置,以保持時間同步的准確性。
值得注意的是,某些網路環境可能會影響NTP的准確性,如防火牆設置、網路延遲和不穩定連接。為了優化NTP同步效果,可以嘗試更換NTP伺服器,選擇更靠近地理位置的伺服器,或者調整NTP客戶端的配置參數。
最後,定期檢查NTP服務的狀態,確保其正常運行。可以使用命令如ntpq -p或chronyc tracking等工具查看同步狀態。如果發現時間偏差較大或同步不穩定,應檢查配置文件,調整相關參數,必要時更換NTP伺服器。
㈡ NTP伺服器未聯網,怎麼配置
二、配置ntp伺服器端
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery
restrict 192.168.166.0 mask 255.255.255.0 nomodify
restrict 127.0.0.1
server 210.72.145.44 prefer
server 127.127.1.0
fudge 127.127.1.0 stratum 8
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
說明:關於許可權設定部分
許可權的設定主要以 restrict 這個參數來設定,主要的語法為:
restrict IP地址 mask 子網掩碼 參數
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
參數有以下幾個:
ignore:關閉所有的 NTP 聯機服務
nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網路校時。
notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網
noquery :不提供客戶端的時間查詢
注意:如果參數沒有設定,那就表示該 IP (或子網)沒有任何限制!
三、查看NTP服務的運行狀況
#watch ntpq -p
參數說明:
remote: 它指的就是本地機器所連接的遠程NTP伺服器
refid: 它指的是給遠程伺服器(e.g. 193.60.199.75)提供時間同步的伺服器
st: 遠程伺服器的層級別(stratum). 由於NTP是層型結構,有頂端的伺服器,多層的Relay Server再到客戶端. 所以伺服器從高到低級別可以設定為1-16. 為了減緩負荷和網路堵塞,原則上應該避免直接連接到級別為1的伺服器的.
t: 這個.....我也不知道啥意思^_^
when: 我個人把它理解為一個計時器用來告訴我們還有多久本地機器就需要和遠程伺服器進行一次時間同步
poll: 本地機和遠程伺服器多少時間進行一次同步(單位為秒). 在一開始運行NTP的時候這個poll值會比較小,那樣和伺服器同步的頻率也就增加了,可以盡快調整到正確的時間范圍.之後poll值會逐漸增大,同步的頻率也就會相應減小
reach: 這是一個八進制值,用來測試能否和伺服器連接.每成功連接一次它的值就會增加
delay: 從本地機發送同步要求到伺服器的round trip time
offset: 這是個最關鍵的值, 它告訴了我們本地機和伺服器之間的時間差別. offset越接近於0,我們就和伺服器的時間越接近
jitter: 這是一個用來做統計的值. 它統計了在特定個連續的連接數里offset的分布情況. 簡單地說這個數值的絕對值越小我們和伺服器的時間就越精確
四、客戶端配置
ntpdate 192.168.166.100
LINUX做為客戶端自動同步時間
如果想定時進行時間校準,可以使用crond服務來定時執行。
編輯 /etc/crontab 文件
加入下面一行:
30 8 * * * root /usr/sbin/ntpdate 192.168.166.100; /sbin/hwclock -w #192.168.0.1是NTP伺服器的IP地址
然後重啟crond服務
service crond restart
這樣,每天 8:30 Linux 系統就會自動的進行網路時間校準。
WINDOWS 需要打開windows time服務和RPC的二個服務
如果在打開windows time 服務,時報 錯誤1058,進行下面操作
1.運行 cmd 進入命令行,然後鍵入
w32tm /register 進行注冊
正確的響應為:W32Time 成功注冊。
2.如果上一步正確,用 net start "windows time" 或 net start w32time 啟動服務。
五、報錯說明
當用ntpdate -d 來查詢時會發現導致 no server suitable for synchronization found 的錯誤的信息有以下2個:
錯誤1.Server dropped: Strata too high
在ntp客戶端運行ntpdate serverIP,出現no server suitable for synchronization found的錯誤。
在ntp客戶端用ntpdate –d serverIP查看,發現有「Server dropped: strata too high」的錯誤,並且顯示「stratum 16」。而正常情況下stratum這個值得范圍是「0~15」。
這是因為NTP server還沒有和其自身或者它的server同步上。
以下的定義是讓NTP Server和其自身保持同步,如果在/ntp.conf中定義的server都不可用時,將使用local時間作為ntp服務提供給ntp客戶端。
server 127.127.1.0 fudge
127.127.1.0 stratum 8
在ntp server上重新啟動ntp服務後,ntp server自身或者與其server的同步的需要一個時間段,這個過程可能是5分鍾,在這個時間之內在客戶端運行ntpdate命令時會產生no server suitable for synchronization found的錯誤。
那麼如何知道何時ntp server完成了和自身同步的過程呢?
在ntp server上使用命令:
# watch ntpq -p
出現畫面:
Every 2.0s: ntpq -p Thu Jul 10 02:28:32 2008
remote refid st t when poll reach delay offset jitter
==============================================================================
192.168.30.22 LOCAL(0) 8 u 22 64 1 2.113 179133. 0.001
LOCAL(0) LOCAL(0) 10 l 21 64 1 0.000 0.000 0.001
注意LOCAL的這個就是與自身同步的ntp server。
注意reach這個值,在啟動ntp server服務後,這個值就從0開始不斷增加,當增加到17的時候,從0到17是5次的變更,每一次是poll的值的秒數,是64秒*5=320秒的時間。
如果之後從ntp客戶端同步ntp server還失敗的話,用ntpdate –d來查詢詳細錯誤信息,再做判斷。
錯誤2.Server dropped: no data
從客戶端執行netdate –d時有錯誤信息如下:
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
transmit(192.168.30.22)
192.168.30.22: Server dropped: no data
server 192.168.30.22, port 123
.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found
出現這個問題的原因可能有2:
1.檢查ntp的版本,如果你使用的是ntp4.2(包括4.2)之後的版本,在restrict的定義中使用了notrust的話,會導致以上錯誤。
使用以下命令檢查ntp的版本:
# ntpq -c version
下面是來自ntp官方網站的說明:
The behavior of notrust changed between versions 4.1 and 4.2.
In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".
In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd
解決:
把notrust去掉。
2.檢查ntp server的防火牆。可能是server的防火牆屏蔽了upd 123埠。
可以用命令
#iptables INPUT -p udp -m udp --dport 123 -j ACCEPT
如果覺得麻煩就直接把防火牆停掉
#service iptables stop
來關掉iptables服務後再嘗試從ntp客戶端的同步,如果成功,證明是防火牆的問題,需要更改iptables的設置。
㈢ 如何在linux 上配置NTP 時間同步
一:NTP是網路時間同步協議,就是用來同步網路中各個計算機的時間的協議。
二:NTP服務端配置
2.1、檢查系統是否安裝了NTP包(linux系統一般自帶NTP4.2),沒有安裝我們直接使用yum命令在線安裝: yum install ntp
2.2、NTP服務端配置文件編輯: vim /etc/ntp.conf
結果:
restrict 控制相關許可權。
語法為: restrict IP地址 mask 子網掩碼 參數
其中IP地址也可以是default ,default 就是指所有的IP
參數有以下幾個:
ignore :關閉所有的 NTP 聯機服務
nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網路校時。
notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網
noquery :不提供客戶端的時間查詢:用戶端不能使用ntpq,ntpc等命令來查詢ntp伺服器
notrap :不提供trap遠端登陸:拒絕為匹配的主機提供模式 6 控制消息陷阱服務。陷阱服務是 ntpdq 控制消息協議的子系統,用於遠程事件日誌記錄程序。
nopeer :用於阻止主機嘗試與伺服器對等,並允許欺詐性伺服器控制時鍾
kod : 訪問違規時發送 KoD 包。
restrict -6 表示IPV6地址的許可權設置。
root@www ~]#vim /etc/ntp.conf# 1. 先處理許可權方面的問題,包括放行上層伺服器以及開放區網用戶來源:restrict default kod nomodify notrap nopeer noquery <==拒絕 IPv4 的用戶restrict -6 default kod nomodify notrap nopeer noquery <==拒絕 IPv6 的用戶restrict 220.130.158.71 <==放行 tock.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.83 <==放行 tick.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.84 <==放行 time.stdtime.gov.tw 進入本 NTP 伺服器restrict 127.0.0.1 <==底下兩個是預設值,放行本機來源restrict -6 ::1restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行區網來源# 2. 設定主機來源,請先將原本的 [0|1|2].centos.pool.ntp.org 的設定註解掉:server 220.130.158.71 prefer <==以這部主機為最優先server 59.124.196.83server 59.124.196.84# 3.預設時間差異分析檔案與暫不用到的 keys 等,不需要更動它:driftfile /var/lib/ntp/driftkeys /etc/ntp/keys
ntpd、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)——記錄下來。這樣即使網路有問題,本機仍然能維持一個相當精確的走時。