我需要找出一堆不同的網絡上是否有OSX / iOS緩存服務器-並在需要的地方放入緩存服務器。但是,由於Mac服務器上的緩存服務是一個非常黑的盒子,因此沒有太多有關其工作方式的信息。
我知道,如果我可以訪問服務器,那麼檢查緩存是否很簡單在服務器軟件中。我正在尋找要掃描的端口,或在客戶端設備的App Store上設置的標誌(可以檢查的標誌),或在防火牆日誌中尋找的標誌。那裡的信息很少,我無法確切說出從哪裡開始。
我可以遠程訪問每個網絡上至少一個無頭Mac Mini。
我需要找出一堆不同的網絡上是否有OSX / iOS緩存服務器-並在需要的地方放入緩存服務器。但是,由於Mac服務器上的緩存服務是一個非常黑的盒子,因此沒有太多有關其工作方式的信息。
我知道,如果我可以訪問服務器,那麼檢查緩存是否很簡單在服務器軟件中。我正在尋找要掃描的端口,或在客戶端設備的App Store上設置的標誌(可以檢查的標誌),或在防火牆日誌中尋找的標誌。那裡的信息很少,我無法確切說出從哪裡開始。
我可以遠程訪問每個網絡上至少一個無頭Mac Mini。
不是緊接在macOS上的Sierra之前。在Sierra及更高版本上,從任何Unix Shell(在終端或其他應用程序中)運行 AssetCacheLocatorUtil
我們甚至發現一種通過查看日誌而不是嗅探網絡連接和流量來判斷事實是來自緩存還是來自客戶端的Apple的方法。
此處是Sierra及更高版本的詳細信息。
查詢Apple的更新基礎結構,並檢查是否存在用於更新,應用下載和/或iCloud數據的本地緩存點,並且還檢查連接性和服務
AssetCacheLocatorUtil
手冊頁寫得很好,涵蓋了很多細節。以下是該工具開始提供幫助之前的一些觀察結果。
服務器偵聽某些隨機端口-我的兩個緩存服務器當前偵聽的端口49558和51858
我想您可以端口掃描所有服務器,並嘗試推斷一般使用OS X服務器的服務器,然後以單個較高端口打開可能是緩存服務器為前提,窮舉探測所有較高端口。
您可以請求服務器告訴您它正在運行的端口:
sudo serveradmin fullstatus緩存| grep端口
客戶端直接與Apple簽入,Apple注意到發出請求的公共IP地址。然後進行兩次檢查:
然後,它響應客戶端,從IP本地的服務器請求資產。如果該緩存服務器沒有該資產,它將請求該資產並將其傳遞給客戶端。如果客戶端沒有獲得其資產,則有一種重試機制可以直接從Apple的CDN獲得資產,因此根據我的經驗,您並不總是從緩存服務器中獲得資產。
您也可能是能夠列出啟用了遠程訪問的服務器的列表-在端口311 / asip-webadmin上監聽,或者通過定期收集每個服務器的狀態:
sudo serveradmin設置信息|grep enableRemoteAdministration
打開一個終端並嘗試使用AssetCacheLocatorUtil-我認為它只是在Sierra中引入的。
NAME
AssetCacheLocatorUtil-用於報告緩存服務信息的實用程序
概要
AssetCacheLocatorUtil
描述
AssetCacheLocatorUtil報告與在計算機或本地網絡上運行的OS X Server緩存服務器有關的信息。
AssetCacheLocatorUtil報告的信息取決於運行它的用戶。對於不同的對象,可能會產生不同的結果-
ent用戶,包括超級用戶。它還取決於當前的網絡配置以及它是否在GUI中運行。
還是不行。
AssetCacheLocatorUtil報告以下信息:
可用性提示
系統可以保存有關本地網絡上是否可能存在緩存服務器的提示。
AssetCacheLocatorUtil打印保存的提示(如果可用)。
保存的服務器
系統可以保存有關先前在本地網絡上找到的緩存服務器的信息。
AssetCacheLocatorUtil將打印保存的信息(如果可用)。
刷新服務器
AssetCacheLocatorUtil強制系統在本地網絡上查找緩存服務器並刷新保存的
以上信息。然後打印結果。