ntp(linux)

ysping發表於2009-08-05

linux配置時間伺服器

在linux下,我們可以透過自帶的NTP(Network Time Protocol)協議透過網路使自己的系統保持精確的時間。可用的公共時間伺服器列表可以從下面的地址獲取:

  

  NTP是用來使系統和一個精確的時間源保持時間同步的協議。建議大家在自己管理的網路中建立至少一臺時間伺服器來同步本地時間,這樣可以使得在不同的系統上處理和收集日誌和管理更加容易。

  介紹一下環境:179為本地時間伺服器,其他伺服器和179同步。179和網上時間伺服器同步。

[@more@]

  一、配置179時間伺服器

  1、首先查詢NTP軟體版本

  rpm -qa|grep ntp

  ntp-4.1.2-4.EL3.1

  如果沒有可以從linux安裝盤上查詢,安裝此ntp包

  2、編輯配置檔案 vi /etc/ntp.conf

ntp.conf裡主要可以使用如下幾個命令:restrict,server,driftfile,keys

其中server是設定上級時間伺服器用的,而restrict是設定哪臺伺服器可以和ntp server進行時間同步,具有什麼樣的許可權。driftfile是用來指定記錄時間差異的檔案,keys是用來指定認證key檔案的(這裡不用)。

先來看restrict的格式為:
restrict [客戶端IP] mask [netmask_IP] [parameter]

客戶端IP,就是都是哪幾臺伺服器要和這臺ntp server進行同步的ip地址
最後的parameter可以有如下幾個引數:
ignore:拒絕連線到ntp server
nomodiy:可以連線到ntp server,但是不能對ntp server進行時間上的修改
noquery:不提供對ntp server查詢時間,也就是拒絕和ntp server進行時間同步
notrap:不提供 trap 遠端登入功能
notrust:對沒有認證的客戶端不提供服務

restrict default nomodify notrap noquery
此項設定的含義是不允許其他計算機修改或查詢配置在本機linux系統上的NTP服務。其中default表示所有IP.

restrict default nomodify notrap noquery
此項設定的含義是不允許其他計算機修改或查詢配置在本機linux系統上的NTP服務。其中default表示所有IP.

restrict 127.0.0.1
開放本機內部迴環網路介面,以便於在本地對NTP服務進行監控及配置。

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
允許192.168.1.0網路段的NTP客戶端使用本NTP伺服器進行網路校進,但不允許它們修改本機的NTP服務配置。如想開放此項功能需要根據實際網路情況修改網路段及掩碼,並把註釋符"#"去掉。

server 0.pool.ntp.org
...
指定上層的NTP伺服器。linux系統中預設指定Internet上的時間伺服器池中的時間伺服器作為上層NTP伺服器。NTP伺服器池pool.ntp.org中擁有三百多臺自願加入其中的公共NTP伺服器。如果想更準確的校時也可以自己指定上層NTP伺服器。

server命令的格式是:
server [IP or hostname] [prefer]
其中[IP or hostname]為上級時間伺服器的IP或者域名,主機名:
可以是192.168.12.177形式,或者time.nist.gov再或者ntpserver這樣的形式。
後面的[prefer]引數是可選的,加上prefer後,ntp server和上級時間伺服器同步時會優先先訪問加了prefer這行的進行同步。

server 127.127.1.0
fudge 127.127.1.0 stratum 10
127.127.1.0是一個特殊的地址,代表本機的系統時鐘。fudge是指定本地時間源的層號,數字越大,優先順序越低。所以當有外部時間源時會優先使用外部時間源。

driftfile /var/lib/ntp/drift
指定記錄與上層NTP伺服器聯絡時所花費時間的檔案,指定了用來儲存系統時脈頻率偏差的檔案, ntpd程式使用它來自動地補償時鐘的自然漂移, 從而使時鐘即使在切斷了外來時源的情況下,仍能保持相當的準確度。

還可以在/etc/ntp.conf檔案中還可以進行如下設定
peer 192.168.16.100 #設定IP地址為192.168.16.100的NTP伺服器可以與本機的NTP伺服器相互進行網路校時
broadcast 224.0.1.1 #224.0.1.1是多播網址,設定該NTP伺服器可對所有能訪問到的網段進行多播
broadcast 192.168.1.255 #設定該NTP伺服器可對子網192.168.1.0/24中的所有計算機定期廣播正確的時間

為了讓本機的NTP伺服器能夠到指定的時間源那進行同步,還必須修改/etc/ntp/step-tickers檔案,在該檔案中把所用的上層NTP伺服器的IP地址或域名加入即可。

為了每天與NTP伺服器保持時間同步,可以將命令寫入到cron中。

  
  3、啟動、停止NTP伺服器

  #chkconfig ntpd on

  #/etc/init.d/ntpd start

  #/etc/init.d/ntpd stop

  #/etc/init.d/ntpd restart

要讓NTP服務自動啟動:
chkconfig --level 1235 ntpd on

  預設情況下,我們配置的NTP伺服器不會去時間源那裡同步時間,所以必須修改/etc/ntp/step-tickers檔案,加入我們的時間源,這樣每次透過/etc/init.d/ntpd 來啟動服務的時候就會自動更新時間了

  檢查伺服器同步狀態:

  ntpq -p

  ntptrace 192.168.0.179

  如果輸出正確,則說明時間伺服器成功。每次啟動伺服器,會自動同步時間。

  4、配置LINUX客戶端

  #chkconfig ntpd on

  #/etc/init.d/ntpd start

  #/etc/init.d/ntpd stop

  #/etc/init.d/ntpd restart

要讓NTP服務自動啟動:
chkconfig --level 1235 ntpd on

  在linux客戶端上執行ntpdate ntp_server_ip 就可以根據時間伺服器統一區域網的時間了,將上面的命令放到cron裡每天早上3點定期執行,crontab –e 然後輸入

  0 3 * * * /usr/sbin/ntpdate 192.168.0.179

注:
[root@RHAS4-2 ~]# ntpdate 192.168.0.21
27 Mar 16:52:54 ntpdate[7630]: the NTP socket is in use, exiting

[root@RHAS4-2 ~]# cd /etc/rc.d/init.d

[root@RHAS4-2 init.d]# pwd
/etc/rc.d/init.d
[root@RHAS4-2 init.d]# ./ntpd stop
Shutting down ntpd: [ OK ]
[root@RHAS4-2 init.d]# ntpdate 192.168.0.21
27 Mar 16:56:33 ntpdate[7708]: step time server 192.168.0.21 offset 47.444162 sec

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/670493/viewspace-1024908/,如需轉載,請註明出處,否則將追究法律責任。

相關文章