
Linux時間同步
時間同步
?數據產?與處理系統是各種計算設備集群的,計算設備將統?、同步的標準時間?于記錄各種事件發?時序,
如E-MAIL信息、?件創建和訪問時間、數據庫處理時間等。
?數據系統內不同計算設備之間控制、計算、處理、應?等數據或操作都具有時序性,若計算機時間不同步,
這些應?或操作或將?法正常進?。
?絡時間同步協議(NTP)是時間同步的技術基礎。
多主機協作?作時,各個主機時間同步很重要,時間不?致會造成很多重要應?的故障,如:加密協議,?志,集群等, 利?NTP(Network Time Protocol) 協議使?絡中的各
個計算機時間達到同步。
Linux默認情況下,系統時間和硬件時間,并不會?動同步。在Linux運?過程中,系統時間和硬件時間以異步的?式運?,互不?擾。硬件時間的運?,是靠Bios電池來維持,?系
統時間,是?CPU tick來維持的。在系統開機的時候,會?動從Bios中取得硬件時間,設置為系統時間。
Linux系統下,?般使?ntp服務器 來同步不同機器的時間。?臺機器,可以同時是ntp服務器和ntp客戶機。在?絡中,推薦使?像DNS服務器?樣分層的時間服務器來同步時間。
時間同步實現:ntpdate,ntp,chrony
公共NTP服務器地址及IP
:項?是?個提供可靠易?的NTP服務的虛擬集群
,
阿?云公共NTP服務器
Unix/linux類:,
windows類:
中國時間:
210.72.145.44 (國家授時中?服務器IP地址)
133.100.11.8 ?本 福岡?學
129.6.15.28 NIST, Gaithersburg, Maryland
129.6.15.29 NIST, Gaithersburg, Maryland
132.163.4.101 NIST, Boulder, Colorado
132.163.4.102 NIST, Boulder, Colorado
132.163.4.103 NIST, Boulder, Colorado
128.138.140.44 University of Colorado, Boulder
192.43.244.18 NCAR, Boulder, Colorado
131.107.1.10 Microsoft, Redmond, Washington
69.25.96.13 Symmetricom, San Jo, California
216.200.93.8 Abovenet, Virginia
208.184.49.9 Abovenet, New York City
207.126.98.204 Abovenet, San Jo, California
207.200.81.113 TrueTime, AOL facility, Sunnyvale, California
64.236.96.53 TrueTime, AOL facility, Virginia
————————————————————————————————————
202.120.2.101 (上海交通?學?絡中?NTP服務器地址)
北京郵電?學
清華?學
北京?學
東南?學
清華?學
清華?學
清華?學
北京郵電?學
西南地區?絡中?
西北地區?絡中?
東北地區?絡中?
華東南地區?絡中?
四川?學?絡管理中?
?連理??學?絡中?
CERNET桂林主節點
北京?學
系統時間相關?件
`/usr/share/zoneinfo/:在這個?錄下的?件其實是規定了各主要時區的時間設定?件,例如北京地區的時區設定?件在 /usr/share/zoneinfo/Asia/Beijing 就是了。這個?錄??的
?件與底下要談的兩個?件(clock 與localtime)是有關系的。
/etc/sysconfig/clock:這個是 linux 的主要時區設定?件。每次開機后,Linux 會?動的讀取這個?件來設定??系統所默認要顯?的時間。
`/etc/localtime:這個?件就是“本地端的時間配置?件”。剛剛那個clock ?件??規定了使?的時間設置?件(ZONE) 為 /usr/share/zoneinfo/Asia/Beijing ,所以說,這就是
本地端的時間了,此時, Linux系統就會將Beijing那個?件另存為?份 /etc/localtime?件,所以未來我們的時間顯?就會以Beijing那個時間設定?件為準。
/etc/timezone:系統時區?件
時間同步原理:
Linux 時間同步 ntpd、ntpdate的區別
ntpd不僅僅是時間同步服務器,它還可以做客戶端與標準時間服務器進?同步時間,?且是平滑同步,
并?ntpdate?即同步,在?產環境中慎?ntpdate,也正如此兩者不可同時運?。
時鐘的躍變,對于某些程序會導致很嚴重的問題。
許多應?程序依賴連續的時鐘——畢竟,這是?項常見的假定,即,取得的時間是線性的,
?些操作,例如數據庫事務,通常會地依賴這樣的事實:時間不會往回跳躍。
不幸的是,ntpdate調整時間的?式就是我們所說的”躍變“:在獲得?個時間之后,ntpdate使?ttimeofday(2)設置系統時間,
這有?個?常明顯的問題:
【?】這樣做不安全。
ntpdate的設置依賴于ntp服務器的安全性,攻擊者可以利??些軟件設計上的缺陷,拿下ntp服務器并令與其同步的服務器執?某些消耗性的任務。
由于ntpdate采?的?式是跳變,跟隨它的服務器?法知道是否發?了異常(時間不?樣的時候,唯?的辦法是以服務器為準)。
【?】這樣做不精確。
?旦ntp服務器宕機,跟隨它的服務器也就會?法同步時間。
與此不同,ntpd不僅能夠校準計算機的時間,?且能夠校準計算機的時鐘。
【三】這樣做不夠優雅。
由于是跳變,?不是使時間變快或變慢,依賴時序的程序會出錯
(例如,如果ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應???,這是致命的)。
因?,唯??個可以令時間發?跳變的點,是計算機剛剛啟動,但還沒有啟動很多服務的那個時候。
其余的時候,理想的做法是使?ntpd來校準時鐘,?不是調整計算機時鐘上的時間。
NTPD在和時間服務器的同步過程中,會把BIOS計時器的振蕩頻率偏差——或者說Local Clock的?然漂移(drift)——記錄下來。
這樣即使?絡有問題,本機仍然能維持?個相當精確的?時。
Linux 時間同步 ntpdate時間同步 盡量不要?這個
ntpdate同步時間,會造成時間的跳躍,對?些依賴時間的程序和服務會造成影響。? 如sleep,timer等。?且,ntpd服務可以在修正時間的同時,修正cpu tick。
理想的做法為,在開機的時候,使?ntpdate強制同步時間,在其他時候使?ntpd服務來同步時間。
安裝ntpdate
yum -y install ntpdate
修改/etc/sysconfig/ntpdate
讓ntpdate每次同步時間之后把時間寫?hwclock,相當于命令hwclock -w
d -i 's/SYNC_HWCLOCK=no/SYNC_HWCLOCK=yes/' /etc/sysconfig/ntpdate
使?ntpdate?動時間同步
ntpdate 210.72.145.44
設置定期同步,在crontab中添加
0 12 * * * * /usr/sbin/ntpdate 192.168.0.1
格式
ntpdate [-nv] [NTP IP/hostname]
Linux 時間同步 ntp時間同步
注意:
ntpd服務在不同時區或者時間相差太??法同步,所以在配置ntp服務器之前需要先使?ntpdate?動同步。
ntpd服務監聽UDP:123,注意防?墻放?。
ntpd服務啟動后,不能?動運?ntpdate更新時間(會報端?被占?),?法使? timedatectl t-time HH:MM:SS 設置時間(想要使?除了關閉ntpd服
務,還要禁?NTP時間同步timedatectl t-ntp fal)。
將系統時鐘和世界協調時UTC同步,精度在局域?內可達0.1ms,在互聯?上絕?多數的地?精度可以達到1-50ms。
使?ntpd進?時鐘同步,可以保證?個時間不經歷兩次,它每次同步時間的偏移量不會太陡,是慢慢來的,這正因為這樣,ntpd平滑同步可能耗費的時間?較長。
ntpd服務運?后, 先是每64秒與上源服務器同步?次, 根據每次同步時測得的誤差值經復雜計算逐步調整??的時間, 隨著誤差減?, 逐步增加同步的間隔. 每次跳動, 都會重復這個調
整的過程.
配置與外部時間服務器進?時間同步的客戶端主機
rver:10.0.0.61
client: 10.0.0.31,41,51
服務端(rver)修改ntpd配置?件 /etc/
yum -y install ntp
#centos6 啟動
/etc/rc.d/init.d/ntpd
#centos7 8 啟動
systemctl start ntpd
systemctl enable ntpd
# restrict default nomodify notrap nopeer noquery # 注釋掉此?,允許其他客戶端主機同步此time rver主機
rver 172.16.0.1 iburst
# rver iburst # 注釋掉此?
# rver iburst # 注釋掉此?
# rver iburst # 注釋掉此?
restrict 172.16.1.0 mask 255.255.255.0 nomodify noztrap # 允許集群所在?段同步此time rver主機
rver 210.72.145.44 prefer # 這是中國國家授時中?的IP
rver iburst # iburst 加快時間同步
rver iburst
rver 127.0.0.1 # local clock
fudge 127.0.0.0 stratum 10**
systemctl restart ntpd
[root@centos7 ~]# ntpq -p #查看與172.16.0.1同步
client: 10.0.0.31,41,51
客戶端修改ntp配置?件 /etc/
vim /etc/
rver 10.0.0.61 iburst # 注釋掉其他的,添加要同步時間的客戶端主機ip
2、啟動ntpd服務,并設置為開機啟動
systemctl start ntpd
systemctl enable ntpd
驗證查看
[root@linux ~]# ntpq -p # 查看時間同步狀態,查看ntp服務器有?和上層ntp連通
ntp服務器配置完畢后,需要等待5-10分鐘才能與/etc/中配置的標準時間進?同步。
[root@linux ~]# ntptrace –n 127.0.0.1 # 列出?前NTP服務器(第?層)與上層NTP服務器(第?層)彼此之間的關系
ntpq -p 查看?絡中的NTP服務器,查看ntp服務器與上層ntp的狀態
remote:本機和上層ntp的ip或主機名,“+”表?優先,“*”表?次優先
refid:參考上?層ntp主機地址
st:stratum階層
when:上次更新在多少秒前,指出從輪詢源開始已過去的時間(秒)。
poll:下次更新在多少秒后,指出輪詢間隔時間。該值會根據本地時鐘的精度相應增加。
reach:是?個?進制數字,指出源的可存取性。已經向上層ntp服務器要求更新的次數
delay:?絡延遲
offt:時間補償,是源時鐘與本地時鐘的時間差(毫秒)。
jitter:系統時間與bios時間差
/etc/ 配置詳解
# 1. 先處理權限??的問題,包括放?上層服務器以及開放局域??戶來源:
restrict default kod nomodify notrap nopeer noquery # 拒絕所有 IPv4 的?戶
restrict -6 default kod nomodify notrap nopeer noquery # 拒絕所有 IPv6 的?戶
restrict 220.130.158.71 # 放? 進?本 NTP 的服務器
restrict 59.124.196.83 # 放? 進?本 NTP 的服務器
restrict 59.124.196.84 # 放? 進?本 NTP 的服務器
restrict 127.0.0.1 # 默認,放?本機來源
restrict -6 ::1 # 默認,放?本機來源 IPv6
restrict 192.168.100.0 mask 255.255.255.0 nomodify # 放?局域??戶來源,或者列出單獨IP
# 2. 設定主機來源,請先將原本的 [0|1|2]. 的設定批注掉:
rver 220.130.158.71 prefer # 以這部主機為最優先的rver
rver 59.124.196.83
rver 59.124.196.84
# 3.默認的?個內部時鐘數據,?在沒有外部 NTP 服務器時,使?它為局域??戶提供服務:
# rver 127.127.1.0 # local clock
# fudge 127.127.1.0 stratum 10
# 4.預設時間差異分析檔案與暫不?到的 keys 等,不需要更動它:
driftfile /var/lib/ntp/drift #系統時間與BIOS事件的偏差記錄
keys /etc/ntp/keys
===restrict選項格式===
restrict [ 客戶端IP ] mask [ IP掩碼 ] [參數]
“客戶端IP” 和 “IP掩碼” 指定了對?絡中哪些范圍的計算機進?控制,如果使?default關鍵字,則表?對所有的計算機進?控制,參數指定了具體的限制內容,沒有參數表?該
IP (或?域)"沒有任何限制",常見的參數如下:
ignore:拒絕連接到NTP服務器
nomodiy: 客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進??絡校時。
noquery: 不提供客戶端的時間查詢
notrap: 不提供trap遠程登錄功能,trap服務是?種遠程時間?志服務。
notrust: 客戶端除?通過認證,否則該客戶端來源將被視為不信任?? 。
nopeer: 提供時間服務,但不作為對等體。
kod: 向不安全的訪問者發送Kiss-Of-Death報?。
restrict -6 表?IPV6地址的權限設置。
===rver選項格式===
rver host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
其中host是上層NTP服務器的IP地址或域名,隨后所跟的參數解釋如下所?:
key: 表?所有發往服務器的報?包含有秘鑰加密的認證信息,n是32位的整數,表?秘鑰號。
version: 表?發往上層服務器的報?使?的版本號,n默認是3,可以是1或者2。
prefer: 如果有多個rver選項,具有該參數的服務器優先使?。
mode: 指定數據報?mode字段的值。
minpoll: 指定與查詢該服務器的最?時間間隔為2的n次?秒,n默認為6,范圍為4-14。
maxpoll: 指定與查詢該服務器的最?時間間隔為2的n次?秒,n默認為10,范圍為4-14。
iburst: 當初始同步請求時,采?突發?式接連發送8個報?,時間間隔為2秒。
===層次(stratum)===
stratum根據上層rver的層次?設定(+1)。
對于提供network time rvice provider的主機來說,stratum的設定要盡可能準確。
?作為局域?的time rvice provider,通常將stratum設置為10
0層的服務器采?的是原?鐘、GPS鐘等物理設備,stratum 1與stratum 0 是直接相連的,
往后的stratum與上?層stratum通過?絡相連,同?層的rver也可以交互。
ntpd對下層client來說是rvice rver,對于上層rver來說它是client。
ntpd根據配置?件的參數決定是要為其他服務器提供時鐘服務或者是從其他服務器同步時鐘。所有的配置都在/etc/?件中。
Linux 時間同步 chrony時間同步
實現NTP協議的的?由軟件。可使系統時鐘與NTP服務器,參考時鐘(例如GPS接收器)以及使??表和鍵盤的?動輸?進?同步。還可以作為NTPv4(RFC 5905)服務器和對等
體運?,為?絡中的計算機提供時間服務。設計?于在各種條件下良好運?,包括間歇性和?度擁擠的?絡連接,溫度變化(計算機時鐘對溫度敏感),以及不能連續運?或在虛擬機
上運?的系統。通過Internet同步的兩臺機器之間的典型精度在?毫秒之內,在LAN上,精度通常為??微秒。利?硬件時間戳或硬件參考時鐘,可實現亞微秒的精度。
chrony 的優勢:
更快的同步只需要數分鐘??數?時時間,從?最?程度減少了時間和頻率誤差,對于并?全天 24 ?時運?的虛擬計算機???常有?。
能夠更好地響應時鐘頻率的快速變化,對于具備不穩定時鐘的虛擬機或導致時鐘頻率發?變化的節能技術???常有?。
在初始同步后,它不會停?時鐘,以防對需要系統時間保持單調的應?程序造成影響。
在應對臨時?對稱延遲時(例如,在?規模下載造成鏈接飽和時)提供了更好的穩定性。
?需對服務器進?定期輪詢,因此具備間歇性?絡連接的系統仍然可以快速同步時鐘。
chrony包介紹
兩個主要程序:
chronyd:后臺運?的守護進程,?于調整內核中運?的系統時鐘和時鐘服務器同步。它確定計算機增減時間的?率,并對此進?補償。
chronyc:命令??戶?具,?于監控性能并進?多樣化的配置。它可以在chronyd實例控制的計算機上?作,也可在?臺不同的遠程計算機上?作。
服務unit?件: /usr/lib/systemd/system/e
監聽端?: 323/udp,123/udp
配置?件: /etc/
同步??服務器
systemctl stop firewalld
systemctl enable firewalld
d -i s'/SElinux=enabling/SElinux=disabled'/etc/linux/config
安裝chrony
yum -y install chrony
確認軟件是否成功安裝
yum list|grep chrony
.查看軟件的?件列表
rpm -qc chrony
rpm -ql chrony
systemctl start chronyd
systemctl enable chronyd
date -s "2020-10-10 10:10:10"
vim /etc/
rver 210.72.145.44 iburst # 這是中國國家授時中?的IP
rver iburst #中國
systemctl restart chronyd
date/timedatectl #查看時間是否同步
臨時指定NTP服務器
chronyd -q "rver iburst"
注:centos7 NTP和chrony都可使?
centos8只能使?chrony
?次修改以后,再次修改過段時間會??同步
centos8配置時間同步服務器
關閉防?墻和linux
配置軟件倉庫
軟件三部曲
a.安裝軟件
b.確認軟件是否成功安裝
c.查看軟件的?件列表(配置?件,程序本?,man?冊)
4.了解配置?件(man )
5根據需求通過修改配置?件來完成服務搭建
6.啟動服務,開機?啟動
7,測試驗證
時間同步服務器服務端:10.0.0.61 m01
systemctl stop firewalld
systemctl enable firewalld
d -i s'/SElinux=enabling/SElinux=disabled'/etc/linux/config
安裝chrony
yum -y install chrony
確認軟件是否成功安裝
yum list|grep chrony
.查看軟件的?件列表
rpm -qc chrony
rpm -ql chrony
systemctl start chronyd
systemctl enable chronyd
修改配置?件
vim /etc/
rver iburst
rver iburst # iburst代表快速同步時間
rver iburst
allow 172.16.1.0/24 # 允許此IP地址段訪問
allow 0.0.0.0/0 # 允許所有主機訪問
local stratum 10 # 本地局域?同步時間服務器(第?層的局域?主機),打開注釋即可。
systemctl restart chrony
在與上級時間服務器聯系時所花費的時間,記錄在driftfile參數后?的?件內。
remote: 它指的就是本地機器所連接的遠程NTP服務器
refid: 它指的是給遠程服務器(e.g. 193.60.199.75)提供時間同步的服務器
NTP ---->123/UDP
netstat -tnupl|grep chronyd
客戶端:
centos7 10.0.0.200
其他客戶端只需要與代表的客戶端(即與服務器端時間同步的客戶端主機)進?同步即可
修改chronyd配置?件 /etc/
date -s "+2 years"
systemctl stop firewalld
systemctl enable firewalld
d -i s'/SElinux=enabling/SElinux=disabled'/etc/linux/config
安裝chrony
yum -y install chrony
確認軟件是否成功安裝
yum list|grep chrony
.查看軟件的?件列表
rpm -qc chrony
rpm -ql chrony
systemctl start chronyd
systemctl enable chronyd
yum -y install chrony
systemctl start chronyd
systemctl enable chronyd
[root@centos7 ~]# route del default gw 10.0.0.2
[root@centos7 ~]# ping
ping: : Name or rvice not known
[root@centos7 ~]#vim /etc/
rver 10.0.0.61 iburst # 刪掉其他的,添加要同步時間的客戶端主機ip
[root@centos7 ~]# systemctl restart chronyd
[root@centos7 ~]# chronyc sources -y #查看同步情況
date/timedatectl 具體查看時間是否修改成功
2、啟動chronyd服務,并設置為開機啟動。
systemctl start chronyd
systemctl enable chronyd
chronyc命令
chronyc -a makestep ?即??同步
accheck 檢查是否對特定主機可訪問當前服務器
activity 顯?有多少NTP源在線/離線
sources [-v] 顯?當前時間源的同步信息
sourcestats [-v] 顯?當前時間源的同步統計信息
add rver ?動添加?臺新的NTP服務器
clients 報告已訪問本服務器的客戶端列表
delete ?動移除NTP服務器或對等服務器
ttime ?動設置守護進程時間
tracking 顯?系統時間信息
chrony配置?件詳解
rver 可以多次?于添加時鐘服務器,必須以"rver "格式使???商砑佣鄠€服務器
iburst 可加快初始同步速度 driftfile - 根據實際時間計算出計算機增減時間的?率,將它記錄到?個?件中。 rtcsync - 啟?內核模式,系統時間每11分鐘會拷貝到實時時鐘
(RTC) allow / deny - 指定?臺主機、??,或者?絡以允許或拒絕訪問本服務器 cmdallow / cmddeny - 可以指定哪臺主機可以通過chronyd使?控制命令 bindcmdaddress
- 允許chronyd監聽哪個接?來接收由chronyc執?的命令 makestep - 通常chronyd將根據需求通過減慢或加速時鐘,使得系統逐步糾正所有時間偏差。 local stratum 10 - 即使
rver指令中時間服務器不可?,也允許將本地時間作為標準時間授時給其它客戶端
timedatectl t-ntp true/fal #臨時開啟/關閉ntp服務
[root@centos7 ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Nov 15 00:59 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
[root@centos7 ~]# rm -rf /etc/localtime
[root@centos7 ~]# ln -s .. ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ln: target ‘/etc/localtime’ is not a directory
#寫腳本同步時區
[root@centos7 ~]# ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@centos7 ~]# date

本文發布于:2023-05-26 11:59:09,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/168507354955103.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:Linux時間同步.doc
本文 PDF 下載地址:Linux時間同步.pdf
| 留言與評論(共有 0 條評論) |