安裝NTP
wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p3.tar.gz
tar ntp-4.2.6p3.tar.gz
cd ntp-4.2.6p3
./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make
make install
cp /usr/local/ntp/bin/* /usr/bin/
修改ntp.conf配置文件
首先先了解一下ntp.conf裡面涉及到參數說明
關於權限設定部分; 權限的設定主要以 restrict 這個參數來設定
格式如下:
restrict IP地址 mask 子網掩碼 參數; 其中 IP 可以是IP地址,也可以是 default ,default
就是指所有的IP參數有以下幾個:
ignore :關閉所有的 NTP 聯機服務
nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網絡校時
notrust:客戶端除非通過認證,否則該客戶端來源將被視為不信任子網
noquery :不提供客戶端的時間查詢
注意:如果參數沒有設定,那就表示該 IP (或子網)沒有任何限制
用server這個參數設定上級時間服務器
格式如下: server IP地址或域名 [prefer]
IP地址或域名就是我們指定的上級時間服務器,如果 Server 參數最後加上 prefer,表示我們的 NTP
服務器主要以該部主機時間進行校准
driftfile格式如下:driftfile 文件名
在與上級時間服務器聯系時所花費的時間,記錄在driftfile參數後面的文件內 注意: driftfile
後面接的文件需要使用完整的路徑文件名,不能是鏈接文件,並且文件的權限需要設定成 ntpd守護進程可以寫入。
vi /etc/ntp.conf
1.允許任何IP的客戶機都可以進行時間同步
將“restrict default kod nomodify notrap nopeer noquery”這行修改成:
restrict default nomodify
2.只允許192.168.0.0網段的客戶機進行時間同步
restrict 192.168.0.0 mask 255.255.0.0 nomodify
URL:http://www.bianceng.cn/OS/Linux/201410/45692.htm
源文件安裝是沒有ntp.conf (閒麻煩的話,大家可以選擇yum -y install ntp) 手動添加,touch /etc/ntp.conf,復制以下
======================================================================
restrict default nomodify notrap noquery
restrict 127.0.0.1
restrict 192.168.0.0 mask 255.255.0.0 nomodify
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #調整為8,表示將使用local時間作為ntp服務提供給ntp客戶端
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
=====================================================================
讓本服務器時間與time.nist.gov時間同步,使服務器為標准時間
使用ntpd同步時間(注意:使用ntpd時,本機與上源的時間相差不能太大,否則不運行,所以應
該先用ntpdate取得時間初值後在啟動ntpd)
[root@localhost ~]# ntpdate time.nist.gov
以守護進程啟動ntpd
[root@localhost ~]#/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid
如果是yum安裝ntp 使用 chkconfig --level 35 ntpd on
[root@localhost ~]#netstat -nul |grep 123
udp 0 0 192.168.50.91:123 0.0.0.0:*
udp 0 0 127.0.0.1:123 0.0.0.0:*
udp 0 0 0.0.0.0:123 0.0.0.0:*
[root@localhost ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
114.80.81.1 204.152.184.72 2 u 5 64 1 13.142 -287655 0.001
218.75.4.130 216.218.192.202 2 u 4 64 1 15.109 -287655 0.001
*LOCAL(0) .LOCL. 10 l 3 64 1 0.000 0.000 0.001
remote:響應這個請求的NTP服務器的名稱。
refid:NTP服務器使用的上一級ntp服務器。
st :remote遠程服務器的級別.由於NTP是層型結構,有頂端的服務器,多層的Relay Server再到客戶端.所以服 務器從高到低級別可以設定為1-16.為了減緩負荷和網絡堵塞,原則上應該避免直接連接到級別為1的服務器
when: 上一次成功請求之後到現在的秒數。
poll : 本地機和遠程服務器多少時間進行一次同步(單位為秒).在一開始運行NTP的時候這個poll值會比較小,那 樣和服務器同步的頻率也就增加了,可以盡快調整到正確的時間范圍,之後poll值會逐漸增大,同步的頻率 也就會相應減小
reach:這是一個八進制值,用來測試能否和服務器連接.每成功連接一次它的值就會增加
delay:從本地機發送同步要求到ntp服務器的round trip time
offset:主機通過NTP時鐘同步與所同步時間源的時間偏移量,單位為毫秒(ms)。offset越接近於0,主機和 ntp服務器的時間越接近
jitter:這是一個用來做統計的值.它統計了在特定個連續的連接數裡offset的分布情況.簡單地說這個數值的絕對 值越小,主機的時間就越精確
兩個問題:
第一 設置ntp連接的是server 0.pool.ntp.org ,為什麼和remote server不一樣
因為NTP提供給我們的是一個cluster server所以每次連接的得到的服務器都有可能是不一樣.同樣這也告訴我們了在指定NTP Server的時候應該使用hostname而不是IP
第二 最前面的+和*都是什麼意思
和第一個相關,既然有這麼多的服務器就是為了在發生問題的時候其他的服務器還可以正常地給我們提供服務.那麼如何知道這些服務器的狀態呢? 這就是第一個記號會告訴我們的信息
*
它告訴我們遠端的服務器已經被確認為我們的主NTP Server,我們系統的時間將由這台機器所提供
+
它將作為輔助的NTP Server和帶有*號的服務器一起為我們提供同步服務. 當*號服務器不可用時它就可以接管
-
遠程服務器被clustering algorithm認為是不合格的NTP Server
x
遠程服務器不可用
==========================================================================
如果之後從ntp客戶端同步ntp server還失敗的話,用ntpdate –d來查詢詳細錯誤信息,再做判斷)
[root@localhost ~]# ntpdate -d
iptables設置:
安全設置,開放192.168.0.0訪問本機123端口
/sbin/iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24 --dport 123 -j ACCEPT
linux客戶端設置NTP
目前 Linux 系統上面有兩個時間,一個是 Linux 系統,另一個則是 BIOS 時間(真正的硬件記錄的時間)
可以使用 date 這個指令來手動修正目前主機的時間,date 這個指令僅修正 Linux 時間而已,所以需要以 hwclock 這個指令來將 BIOS 時間也更新才行
[root@test root]# date MMDDhhmmYYYY
MM:月份
DD:日期
hh:小時
mm:分鐘
YYYY:公元年
[root@test root]# hwclock [-rw]
-r:檢視目前的 BIOS 時間
-w:將目前 Linux 的時間寫入 BIOS 當中!
[root@localhost ~]# date ; hwclock -r
2011年 03月 23日 星期三 01:03:59 CST
2011年03月23日 星期三 03時05分00秒 -0.914570 seconds
# date 與 hwclock -r 所顯示的時間是『不一致的』!
# 因為 Linux 時間與 BIOS 時間不一致所導致的一個問題!
# 需要以 hwclock -w 來將 Linux 時間寫入 BIOS
[root@localhost ~]# hwclock -w
[root@localhost ~]# date ; hwclock -r
2011年 03月 23日 星期三 01:03:59 CST
2011年03月23日 星期三 01時04分00秒 -0.814770 seconds
#自動同步服務器時鐘
[root@localhost ~]# crontab -e
# 加入這一行:
10 5 * * * root /usr/sbin/ntpdate 192.168.50.91;/sbin/hwclock -w
[root@localhost ~]# service crond restart
windows客戶端設置NTP
直接在控制面板--日期和時間 修改
也可以下載以下軟件修改
http://www.stdtime.gov.tw/chinese/exe/NTPClock.exe
關於域控NTP同步請看以下另外一篇文章:
http://viong.blog.51cto.com/844766/1053276
viong
本文出自 “技術在於折騰” 博客,請務必保留此出處http://viong.blog.51cto.com/844766/522799