需求背景

此例中,我們要替電影院架設 TMS 系統,所以我們會有一台作為中控的 Windows 電腦,跟數台放在各個影廳的投影機伺服器。

一般來說,設備只要能上網,時間就能透過網際網路定時進行校準,一片蛋糕。但電影院的投影機伺服器為了做到內容保護,在 DCI 認證的規範之下,通常就只用封閉的內網來進行控制、傳輸與播放,於是我們就得迂迴地提供正確的時間給它們。

如果我們的中控電腦有兩張網卡,一張上網去讀時間,一張內網作為 NTP 伺服器,把時間資訊傳給投影機們如何?

挺不賴的,我們開搞。

安裝 NetTime

雖然 Windows 系統本身就自帶 NTP 的功能,但使用方式有點不直觀,本文選用簡單快速的第三方小工具 NetTime。

安裝開啟後,程式就可以開始從網路上抓取時間進行校準。此時我們進入設定:

ntp1

Allow other computers to sync to this computer 的選項打開,化身為 server:

ntp2

噠啦,就是那麼簡單。

防火牆設定

至此,Windows 電腦已經可以作為 client 從外網讀取正確時間,並同時作為 server 提供該時間給內網中的其他設備。

說是這樣說,但我們此處需要的 port 在防火牆設置中並沒有預設開啟。為了讓投影機伺服器們可以傳 request 進來,我們要去手動打通這條路。

設定位置以 Win11 為例,在控制台 > 系統及安全性 > Windows Defender 防火牆 > 進階設定 > 輸入規則 > 新增規則。

ntp3

NTP 走的是 UDP 的 123 port,透過新增規則的精靈即可簡單地設置完成。

但我們選擇裝逼一波,用命令提示字元來搞定:

1
2
netsh advfirewall firewall add rule name="Allow NTP Server" dir=in action=allow protocol=UDP localport=123

此時我們就可以在規則中看到我們開通的 port 了:

ntp4

client 端設定

最後,我們到各個投影機伺服器的後台,把中控電腦的 IP 位置設為 NTP Server 即告完成。

你問為何不用特別設定走 UDP 或是特別指定埠號?因為 NTP 幾乎都走 UDP 123,就不費心讓你設定了。

以上!