Ubuntu 16.04 NTP伺服器設置


參考

  1. Ubuntu 16.04 上的時間同步
    https://blog.burn-i.com/20170905/sync-time-on-ubuntu-16-04/
  2. 鳥哥 第十五章、時間伺服器: NTP 伺服器
    http://linux.vbird.org/linux_server/0440ntp.php

0. 關閉內建TimeSync服務

請將Time & Date中的Set the time設置成Manually
可使用指令關閉
$ sudo timedatectl set-ntp false
確認已關閉
$ timedatectl
...
Network time on: no
...

1. 安裝NTP伺服器

$ sudo apt install ntp

2. 設定NTP伺服器

改設定
$ sudo vim /etc/ntp.conf

加入server time.google.com prefer iburst
後面加上prefer是當作主要ntp server
後面加上iburst說是可以加速,一次打8包校時封包

察看還有哪些設定可用
$ man ntp.conf

Google public NTP server
https://developers.google.com/time

3. 套用NTP伺服器設定

重啟NTP伺服器
$ sudo systemctl restart ntp

4. 檢驗NTP伺服器

確認服務已啟動
$ systemctl status ntp
會包含啟動log

確認Process是否存在
$ ps auxww | grep '[n]tp'

確認伺服器是否已監聽port 123
$ sudo netstat -nlp | grep ntp

確認系統防火牆
$ sudo ufw status  # 桌面版預設是沒開(inactive)
$ sudo ufw allow 123/udp

5. 檢驗設定

5.1 查看目前的peer

$ ntpq -p

如果顯示No association ID's returned表示沒有sync的設定
st是階層(stratum),愈大愈末端,最多15階。顯示16表示沒sync過。
t是type,l是local, B是Broadcast, u是遠端
when是更新已過多久(秒)
poll是下一次更新在幾秒後;預設一開始是64。
如果要調整ntpd的poll的時間可設定minpoll,maxpoll兩者的數值設定為n表示是2的n次方(秒)。minpoll預設是6,表示64秒;maxpoll預設是14,約4.5小時;設定範圍是4~17。
reach是已經向上層請求更新的次數
delay,offset,jitter是時間延遲相關數值

5.2 查看本機時間

$ date
Wed Mar  4 10:07:24 CST 2020

$ timedatectl
      Local time: Wed 2020-03-04 11:25:14 CST
  Universal time: Wed 2020-03-04 03:25:14 UTC
        RTC time: Wed 2020-03-04 03:25:14
       Time zone: Asia/Taipei (CST, +0800)
 Network time on: no
NTP synchronized: yes
RTC in local TZ: no

5.3 看NTP伺服器log

$ grep ntpd /var/log/syslog
或是
$ systemctl status ntp

5.3 強制校時

需要安裝額外套件ntpdate
$ sudo apt install ntpdate


$ sudo ntpdate -u -b -v time.google.com
-u是不要用特權port開啟連線,若沒設定會跟ntpd打架而啟動失敗。
-b是立刻反應更新時間,通常是開機時使用。-B是逐漸的更新時間。
-v是顯示執行結果。-d可以顯示更多資訊,例如server ip、NTP時間封包的資料。

名詞解釋

CST=Central Standard Time, 中央標準時間。以國家所屬時區表示
GMT=Greenwich Mean Time, 格林威治時間。我都當作UTC的代名詞
UTC=Coordinated Universal Time, 協調世界時間。現在許多都是以UTC為標準+-時區,台灣是UTC+8時區
DST=Daylight Saving Time, 日光節約時間。

ntpd=Network Time Protocol daemon
ntpq=standard NTP query program
ntpdc=special NTP query program, 這個多數不建議使用了
sntp=Simple Network Time Protocol (SNTP) client

其他相關


留言