A. 配置linux的時鍾同步
Ubuntu系統默認的時鍾同步伺服器是ntp.ubuntu.com,Debian則是0.debian.pool.ntp.org等, 各Linux發行版都有自己的NTP官方伺服器。身在中國,使用這些都會有高延遲,但對時鍾同步這件事來說影響不大。
在某些環境下,比如公司內網、雲上子網等,是與互聯網隔絕的。這時要想做時鍾同步,就只能自己配置了。
本文介紹如何自己配置時鍾同步,不介紹如何自建NTP伺服器。
一般timesync是預裝的。如果沒有,可以使用以下命令手動安裝。
sudo apt install systemd-timesyncd 它和ntp是沖突的,二者只能安裝一個。
修改/etc/systemd/timesyncd.conf,把NTP設為華為內綠區可達的NTP伺服器。
修改完成後,需要restart後這個配置才生效。
如果以上systemd-timesyncd.service因為什麼原因而不存在,則可通過以下命令修復:
一般查看日期與時間是使用date。使用timedatectl可以查看到更多時鍾同步相關信息。
以下給出一些阿里雲的NTP列表,可以通過ping擇優使用。
以上就是 良許教程網 為各位朋友分享的配置Linux的時鍾同步。
最後,最近很多小夥伴找我要 Linux學習路線圖 ,於是我根據自己的經驗,利用業余時間熬夜肝了一個月,整理了一份電子書。無論你是面試還是自我提升,相信都會對你有幫助!目錄如下:
免費送給大家,只求大家金指給我點個贊!
電子書 | Linux開發學習路線圖
也希望有小夥伴能加入我,把這份電子書做得更完美!
推薦閱讀:
B. linux中的時間是哪個時區的
1、more /etc/sysconfig/clock
ZONE="Asia/Shanghai"
2、GMT + 8 = UTC + 8 = CST ,我們的linux系統時間和計算機硬體時間應該是cst時間,上海時區。
3、安裝CentOS/RHEL時候,應當取消」系統時鍾使用UTC時間」這個選項,如果忘了取消,系統時鍾會差8小時
#vi /etc/sysconfig/clock
把UTC=true 修改為 UTC=false,保存後重啟即可。
4、#ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、系統時鍾
date -R
6、zmp – This utility prints the current time and date in the specified time zone. Example:
# zmp Japan
Japan Tue Feb 28 17:52:18 2017 JST
# zmp Iceland
Iceland Tue Feb 28 08:52:45 2017 GMT
zmp China
China Tue Feb 28 08:53:02 2017 China
7、CST/GMT/UTC/DST縮寫
CST China Standard Time UT+8:00
GMT 格林威治標准時間(Greenwich Mean Time,簡稱G.M.T.)
UTC 世界協調時間UTC比GMT來得更加精準
DST 夏日節約時間:所謂「夏日節約時間」Daylight Saving Time(簡稱D.S.T.),
RTC 硬體時鍾(Real Time Clock,簡稱RTC),相對應的系統時鍾(System Clock)。
C. Linux如何伺服器作時間源
一、執行步驟:
1.以root身份登錄
2.查看系統時間(date)和系統bios時間(hwclock或/sbin/hwclock)
3.在/usr/sbin下,使用命令ntpdate132.163.4.102使系統時間和時間伺服器時間同步.
4.將系統時間寫入bios(hwclock-w)
5.再次查看系統時間和系統bios時間
6.以上工作僅是當前的時間同步,所以還需執行以下工作:
使用crontab-e命令將每小時執行一次/usr/sbin/ntpdate132.163.4.102;/sbin/hwclock-w;的任務加入到任務管理器。
假如以下內容:01***/usr/sbin/ntpdate132.163.4.102;/sbin/hwclock-w;
二、加入計劃任務:
1.使用以下命令編輯任務管理器
crontab-e
2.將以下語句加入到任務管理器中,其用途是:每小時執行一次/usr/sbin/ntpdate132.163.4.102;/sbin/hwclock-w;
註:執行任務計劃的時間隨機訂
之上是總結,按之上步驟來即可,以下參考就行:
先進入到路徑:
/usr/sbin/下
使用其中的同步工具ntpdate,同步的時間伺服器為:asia.pool.ntp.org
使用方法:
./ntpdateasia.pool.ntp.org
標准時間同步方法:
分布操作:
察看bios時間與系統時間
hwclock
察看系統時間
date
使用ntpdate命令使系統時間與時間伺服器同步
ntpdatentp1.nl.net
將系統時間寫入bios
hwclock-w
三、解決辦法使用:
1.使用以下命令編輯任務管理器
crontab-e
2.將以下語句加入到任務管理器中,其用途是:每小時執行一次/usr/sbin/ntpdate132.163.4.102;/sbin/hwclock-w;
01***/usr/sbin/ntpdate132.163.4.102;/sbin/hwclock-w;
01***/usr/sbin/ntpdate132.163.4.102;/sbin/hwclock-w;
Linux下crontab命令的功能是在一定的時間間隔調度一些命令的執行。在/etc目錄下有一個crontab文件,這里存放有系統運行的一些調度程序。每個用戶可以建立自己的調度crontab。
cron的主配置文件是/etc/crontab,它包括下面幾行:
前四行是用來配置cron任務運行環境的變數。SHELL變數的值告訴系統要使用哪個shell環境(在這個例子里是bashshell);PATH變數定義用來執行命令的路徑。cron任務的輸出被郵寄給MAILTO變數定義的用戶名。如果MAILTO變數被定義為空白字元串(MAILTO=""),電子郵件就不會被寄出。HOME變數可以用來設置在執行命令或腳本時使用的主目錄。
D. linux中ntp時鍾伺服器怎麼配
執行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 默認單位為妙,修改後重新啟動即可生效。
E. 如何修改linux tsc時鍾源
編譯linux內核步驟:1、安裝內核
如果內核已經安裝(/usr/src/目錄有linux子目錄),跳過。如果沒有安裝,在光碟機中放入linux安裝光碟,找到kernel-source-2.xx.xx.rpm文件(xx代表數字,表示內核的版本號),比如RedHat linux的RPMS目錄是/RedHat/RPMS/目錄,然後使用命令rpm -ivh kernel-source-2.xx.xx.rpm安裝內核。如果沒有安裝盤
2、清除從前編譯內核時殘留的.o 文件和不必要的關聯 cd /usr/src/linux
make mrproper
3、配置內核,修改相關參數,請參考其他資料
在圖形界面下,make xconfig;字元界面下,make menuconfig。在內核配置菜單中正確設置個內核選項,保存退出
4、正確設置關聯文件
make dep
5、編譯內核
對於大內核(比如需要SCSI支持),make bzImage
對於小內核,make zImage
6、編譯模塊
make moles
7、安裝模塊
make moles_install
8、使用新內核
把/usr/src/linux/arch/i386/boot/目錄內新生成的內核文件bzImage/zImage拷貝到/boot目錄,然後修改/etc/lilo.conf文件,加一個啟動選項,使用新內核bzImage/zImage啟動。格式如下:
F. linux配置ntp時鍾源
(一)確認ntp的安裝
1)確認是否已安裝ntp
【命令】rpm –qa | grep ntp
若只有ntpdate而未見ntp,則需刪除原有ntpdate。如:
ntpdate-4.2.6p5-22.el7_0.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
python-ntplib-0.3.2-1.el7.noarch
2)刪除已安裝ntp
【命令】yum –y remove ntpdate-4.2.6p5-22.el7.x86_64
3)重新安裝ntp
【命令】yum –y install ntp
(二)配置ntp服務
1)修改所有節點的/etc/ntp.conf
【命令】vi /etc/ntp.conf
【內容】
restrict 192.168.6.3 nomodify notrap nopeer noquery //當前節點IP地址
restrict 192.168.6.2 mask 255.255.255.0 nomodify notrap //集群所在網段的網關(Gateway),子網掩碼(Genmask)
2)選擇一個主節點,修改其/etc/ntp.conf
【命令】vi /etc/ntp.conf
【內容】在server部分添加一下部分,並注釋掉server 0 ~ n
server 127.127.1.0
Fudge 127.127.1.0 stratum 10
3)主節點以外,繼續修改/etc/ntp.conf
【命令】vi /etc/ntp.conf
【內容】在server部分添加如下語句,將server指向主節點。
server 192.168.6.3
Fudge 192.168.6.3 stratum 10
===修改前===
image
===修改後===
節點1(192.168.6.3):
image
節點2(192.168.6.4):
image
節點3(192.168.6.5):
image
(三)啟動ntp服務、查看狀態
1)啟動ntp服務
【命令】service ntpd start
2)查看ntp伺服器有無和上層ntp連通
【命令】ntpstat
image
查看ntp狀態時,可能會出現如下所示情況
① unsynchronised time server re-starting polling server every 8 s
image
② unsynchronised polling server every 8 s
image
這種情況屬於正常,ntp伺服器配置完畢後,需要等待5-10分鍾才能與/etc/ntp.conf中配置的標准時間進行同步。
等一段時間之後,再次使用ntpstat命令查看狀態,就會變成如下正常結果:
image
3)查看ntp伺服器與上層ntp的狀態
【命令】ntpq -p
image
remote:本機和上層ntp的ip或主機名,「+」表示優先,「*」表示次優先
refid:參考上一層ntp主機地址
st:stratum階層
when:多少秒前曾經同步過時間
poll:下次更新在多少秒後
reach:已經向上層ntp伺服器要求更新的次數
delay:網路延遲
offset:時間補償
jitter:系統時間與bios時間差
4)查看ntpd進程的狀態
【命令】watch "ntpq -p"
【終止】按 Ctrl+C 停止查看進程。
image
第一列中的字元指示源的質量。星號 ( * ) 表示該源是當前引用。
remote:列出源的 IP 地址或主機名。
when:指出從輪詢源開始已過去的時間(秒)。
poll:指出輪詢間隔時間。該值會根據本地時鍾的精度相應增加。
reach:是一個八進制數字,指出源的可存取性。值 377 表示源已應答了前八個連續輪詢。
offset:是源時鍾與本地時鍾的時間差(毫秒)。
(四)設置開機啟動
【命令】chkconfig ntpd on
(五)從其他博客的一些參考摘錄
===/etc/ntp.conf 配置內容===
[
復制代碼
](javascript:void(0); "復制代碼")
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"># 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 ::1 restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行區域網用戶來源,或者列出單獨IP
2. 設定主機來源,請先將原本的 [0|1|2].centos.pool.ntp.org 的設定批註掉:
server 220.130.158.71 prefer <==以這部主機為最優先的server
server 59.124.196.83 server 59.124.196.84 # 3.默認的一個內部時鍾數據,用在沒有外部 NTP 伺服器時,使用它為區域網用戶提供服務:
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 # 4.預設時間差異分析檔案與暫不用到的 keys 等,不需要更動它:
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys </pre>
[
復制代碼
](javascript:void(0); "復制代碼")
===restrict選項格式===
restrict [ 客戶端IP ] mask [ IP掩碼 ] [參數]
「客戶端IP」 和 「IP掩碼」 指定了對網路中哪些范圍的計算機進行控制,如果使用default關鍵字,則表示對所有的計算機進行控制,參數指定了具體的限制內容,常見的參數如下:
◆ ignore:拒絕連接到NTP伺服器
◆ nomodiy: 客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網路校時。
◆ noquery: 不提供客戶端的時間查詢
◆ notrap: 不提供trap遠程登錄功能,trap服務是一種遠程時間日誌服務。
◆ notrust: 客戶端除非通過認證,否則該客戶端來源將被視為不信任子網 。
◆ nopeer: 提供時間服務,但不作為對等體。
◆ kod: 向不安全的訪問者發送Kiss-Of-Death報文。
===server選項格式===
server 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: 如果有多個server選項,具有該參數的伺服器有限使用。
◆ mode: 指定數據報文mode欄位的值。
◆ minpoll: 指定與查詢該伺服器的最小時間間隔為2的n次方秒,n默認為6,范圍為4-14。
◆ maxpoll: 指定與查詢該伺服器的最大時間間隔為2的n次方秒,n默認為10,范圍為4-14。
◆ iburst: 當初始同步請求時,採用突發方式接連發送8個報文,時間間隔為2秒。
===查看網關方法===
【命令1】route -n
【命令2】ip route show
【命令3】netstat -r
===層次(stratum)===
stratum根據上層server的層次而設定(+1)。
對於提供network time service provider的主機來說,stratum的設定要盡可能准確。
而作為區域網的time service provider,通常將stratum設置為10
image
0層的伺服器採用的是原子鍾、GPS鍾等物理設備,stratum 1與stratum 0 是直接相連的,
往後的stratum與上一層stratum通過網路相連,同一層的server也可以交互。
ntpd對下層client來說是service server,對於上層server來說它是client。
ntpd根據配置文件的參數決定是要為其他伺服器提供時鍾服務或者是從其他伺服器同步時鍾。所有的配置都在/etc/ntp.conf文件中。
[圖片上傳失敗...(image-f2dcb9-1561634142658)]
===注意防火牆屏蔽ntp埠===
ntp伺服器默認埠是123,如果防火牆是開啟狀態,在一些操作可能會出現錯誤,所以要記住關閉防火牆。ntp採用的時udp協議
sudo firewall-cmd --zone=public --add-port=123/udp --permanent
===同步硬體時鍾===
ntp服務,默認只會同步系統時間。
如果想要讓ntp同時同步硬體時間,可以設置/etc/sysconfig/ntpd文件,
在/etc/sysconfig/ntpd文件中,添加【SYNC_HWCLOCK=yes】這樣,就可以讓硬體時間與系統時間一起同步。
允許BIOS與系統時間同步,也可以通過hwclock -w 命令。
===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)——記錄下來。
這樣即使網路有問題,本機仍然能維持一個相當精確的走時。
===國內常用NTP伺服器地址及IP===
210.72.145.44 (國家授時中心伺服器IP地址)
133.100.11.8 日本 福岡大學
time-a.nist.gov 129.6.15.28 NIST, Gaithersburg, Maryland
time-b.nist.gov 129.6.15.29 NIST, Gaithersburg, Maryland
time-a.timefreq.bldrdoc.gov 132.163.4.101 NIST, Boulder, Colorado
time-b.timefreq.bldrdoc.gov 132.163.4.102 NIST, Boulder, Colorado
time-c.timefreq.bldrdoc.gov 132.163.4.103 NIST, Boulder, Colorado
utcnist.colorado.e 128.138.140.44 University of Colorado, Boulder
time.nist.gov 192.43.244.18 NCAR, Boulder, Colorado
time-nw.nist.gov 131.107.1.10 Microsoft, Redmond, Washington
nist1.symmetricom.com 69.25.96.13 Symmetricom, San Jose, California
nist1-dc.glassey.com 216.200.93.8 Abovenet, Virginia
nist1-ny.glassey.com 208.184.49.9 Abovenet, New York City
nist1-sj.glassey.com 207.126.98.204 Abovenet, San Jose, California
nist1.aol-ca.truetime.com 207.200.81.113 TrueTime, AOL facility, Sunnyvale, California
nist1.aol-va.truetime.com 64.236.96.53 TrueTime, AOL facility, Virginia
————————————————————————————————————
ntp.sjtu.e.cn 202.120.2.101 (上海交通大學網路中心NTP伺服器地址)
s1a.time.e.cn 北京郵電大學
s1b.time.e.cn 清華大學
s1c.time.e.cn 北京大學
s1d.time.e.cn 東南大學
s1e.time.e.cn 清華大學
s2a.time.e.cn 清華大學
s2b.time.e.cn 清華大學
s2c.time.e.cn 北京郵電大學
s2d.time.e.cn 西南地區網路中心
s2e.time.e.cn 西北地區網路中心
s2f.time.e.cn 東北地區網路中心
s2g.time.e.cn 華東南地區網路中心
s2h.time.e.cn 四川大學網路管理中心
s2j.time.e.cn 大連理工大學網路中心
s2k.time.e.cn CERNET桂林主節點
s2m.time.e.cn 北京大學</pre>
G. 為什麼linux上的時間不準
每台機器都可能有時間不準的情況的。windows也一樣,你可以在linux下輸入時間同步命令來與Internet上的時間伺服器同步一下就可以了:
ntpdate pool.ntp.org