以前學校網路出問題,最怕聽到一句:「老師,那台電腦不能上網。」因為你不知道問題在 Mac、網路線、IP、VLAN、交換器 port,還是設備被搬走但清冊沒更新。School IT Toolkit 最厲害的地方,不只是可以一句話管理 Mac,而是當 Mac 和 Switch 都被納管後,資訊組長可以從端點一路追到交換器連接埠,把原本看不見的校園網路,整理成一張可以查、可以修、可以交接的地圖。
1. 這套工具真正迷人的地方:把校園網路變成地圖
School IT Toolkit 是一套以學校資訊現場為出發點的開源工具包。它不是商品、不是 SaaS、也不是把所有學校硬塞進同一個平台的封閉系統。它更像一位有經驗的校園系管師,把 Mac 機房納管、SSH 批量管理、Homebrew 軟體維護、Switch 探測、IP 話機盤點、LLDP 拓撲、本地 AI 輔助與資安去敏流程整理成一套可以參考、可以修改、可以交接的方法。
如果只把它介紹成「可以批量管理 Mac」,其實還不夠。因為這套工具更有價值的地方,是它能把校園資訊現場最難掌握的那一塊,也就是「設備到底在哪裡、接在哪個 port、走哪個 VLAN、上游是哪台 Switch、哪段鏈路可能出問題」慢慢整理出來。以前網路拓撲常常只存在某位資深資訊人員腦中;一旦人離職、換單位,整張網路地圖就跟著消失。School IT Toolkit 的思路,是把這些現場知識變成清冊、指令、報表與 SOP。
它最有感的地方不是「多一支腳本」,而是讓資訊組長可以用校園語言處理任務:查全校 OS、幫整間教室裝上課軟體、確認哪些 Mac 沒有完整納管、從 Switch 找出某台設備實際接在哪個 port、用 LLDP 畫出核心交換器到教室交換器的上下游關係。這些事情一旦變成可執行流程,學校 IT 就不再只是靠臨場反應救火,而是可以被驗證、被追蹤、被交接。
School IT Toolkit 讓資訊組長不只管理 Mac,而是把 Mac、Switch、IP 話機、連接埠、VLAN、拓撲與報表串成一張校園網管地圖。
2. 一句話管理 Mac:先把端點狀態看清楚
校園資訊維運的第一步,通常不是馬上修,而是先知道現場到底長什麼樣。以前要查 Mac 教室的狀態,可能要打開 Apple Remote Desktop,一台一台點進去看,或是憑印象猜。School IT Toolkit 的 Mac fleet 工具,則可以透過清冊與 SSH 把這些檢查變成一句話。
| 校園任務 | 以前怎麼做 | 現在可以怎麼做 |
|---|---|---|
| 查全校 macOS 版本 | 逐台開 ARD 或現場查看 | 對 all 群組下版本查詢指令 |
| 整間教室安裝上課工具 | 逐台下載、逐台安裝 | 用 Homebrew 對群組批量安裝 |
| 查硬碟空間 | 每台登入慢慢看 | 一句話查整間教室 df -h |
| 找出未完整納管設備 | 靠 ARD 清單和印象判斷 | 跑 audit 產出異常報表 |
| 密碼輪替或帳號維護 | 逐台改,容易漏 | 用受控腳本分批執行並留下紀錄 |
例如,要查全校 Mac 版本,可以先用這種方式取得狀態:
tools/mac-fleet/school-ssh --group all -- "sw_vers -productVersion"
老師臨時說明天資訊課要用 git、wget、tree,也不用一台一台裝,可以對指定教室群組批量處理:
tools/mac-fleet/school-brew --group LAB-A install git wget tree
硬碟快滿也是學校 Mac 常見痛點,可以先查容量,不要一開始就亂刪:
tools/mac-fleet/school-ssh --group LAB-A -- "df -h /"
真正讓人安心的是 audit。清冊裡有,不代表真的管得到;ARD 曾經看過,不代表 SSH 還通。透過稽核,你可以把「感覺應該可以」變成「報表顯示真的可以」。
tools/mac-fleet/school-audit --group LAB-A
這些指令本身不花俏,但非常實用。它們讓資訊組長先看見整間教室的狀態,知道哪裡正常、哪裡異常、哪裡需要現場處理。接下來,才有辦法把 Mac 端資料和 Switch 端資料對起來。
3. SSH 管 Switch:校園網路從黑盒子變透明
前面講 Mac 管理,已經能省下很多時間;但 School IT Toolkit 真正厲害的地方,是它沒有停在端點。當 Switch 也能透過 SSH 或 telnet 納入清冊,資訊組長就能從 Mac 一路追到交換器 port。這時候校園網路不再是一團迷霧,而是可以被採集、比對、定位的資料。
School IT Toolkit 的 network-discovery 方向,就是針對交換器探測、LLDP 拓撲與連接埠對應。像 switch-collect 這類工具,可以依照交換器清冊登入設備,抓取常見 show 指令輸出,例如 version、system、MAC address table、ARP、LLDP remote device、interface status、running-config。不同廠牌 Switch 的指令和 prompt 可能不同,所以它不是萬用魔法,而是一個可以依照校內設備調整的採集骨架。
| Switch 採集資料 | 代表什麼 | 現場可以解決什麼問題 |
|---|---|---|
| MAC address table | 某個 MAC 出現在哪台 Switch、哪個 port | 找出 Mac、印表機、IP 話機實際接在哪裡 |
| ARP table | IP 與 MAC 的對應關係 | 查出某個 IP 到底是哪台設備,不再靠猜 |
| LLDP | 交換器上下游鄰居資訊 | 建立核心交換器、樓層交換器、教室交換器拓撲 |
| Interface status | port 是否 up/down、速率、狀態 | 快速判斷線路、port、設備電源或速率異常 |
| Running-config | 交換器設定快照 | 比對異動、保留交接紀錄、避免設定只存在腦中 |
這些資料一旦收集起來,價值非常高。因為你不只知道「某台 Mac 連不上」,你還能查「它的 MAC 有沒有出現在 Switch table」、「它出現在哪個 port」、「那個 port 現在是 up 還是 down」、「那個 port 屬於哪個 VLAN」、「上游是哪台交換器」。這種從端點追到交換器的能力,是校園排查問題時最救命的一段。
# 採集全部交換器資料;tools/network-discovery/switch-collect;# 只採集指定核心交換器;tools/network-discovery/switch-collect --device CORE-SW
要注意的是,Switch 管理權限非常敏感。建議先使用唯讀或低風險帳號做採集,先抓 show 類資料,不要一開始就做寫入設定。等到校內 SOP 成熟、權限控管清楚,再考慮更進一步的自動化。
4. Mac + Switch 雙邊對照,才是真的強
單獨管理 Mac 很有用,單獨採集 Switch 也很有用;但真正強的是兩邊資料對起來。Mac 端可以告訴你自己的 IP、MAC、預設閘道、DNS、網卡狀態;Switch 端可以告訴你某個 MAC 出現在哪個 port、那個 port 屬於哪個 VLAN、上游鄰居是誰。兩邊一對,很多問題就不必靠猜。
舉例來說,Mac 端可以先查這些資訊:
tools/mac-fleet/school-ssh --host LAB-A-12 -- "ifconfig; netstat -rn; arp -a; scutil --dns"
Switch 端則可以採集 MAC table、ARP、LLDP 和 interface status。接著把兩邊資料比對,就能回答很多過去很難快速回答的問題。
這台設備在哪裡?
用 Mac 端 MAC address 對 Switch MAC table,找出實際 port。
是不是接錯 VLAN?
對照 IP 網段、Switch port VLAN 與清冊位置,快速縮小原因。
設備有沒有被搬走?
如果 MAC 出現在非預期 port,可能是設備被移動或清冊過期。
問題在電腦還是網路?
Mac 端無 IP、Switch port down、ARP 不一致,都能指向不同排查方向。
這就是 School IT Toolkit 很適合校園的原因。它不是只管理單台裝置,而是讓你把端點、網路、清冊、位置、教室與報表放在同一個維運脈絡裡。對資訊組長來說,這比單純看到一排裝置列表更有幫助。
5. 故障定位案例:老師說電腦不能上網,怎麼查?
來看一個很真實的場景。老師反映電腦教室 A 的 LAB-A-12 不能上網。以前的做法可能是:跑去現場,看網路線、重開機、換孔、猜 DHCP、猜 Switch、再問有沒有人動過線。這種方式不是不能解決,但很耗時間,而且經驗很難交接。
用 School IT Toolkit 的思路,可以把排查變成一條路徑。
- 先看 Mac 端:確認它有沒有 IP、預設路由、DNS、網卡是否正常。
- 找出 Mac 的 MAC address:這是對照 Switch table 的關鍵。
- 到 Switch 端查 MAC table:確認這個 MAC 出現在哪台 Switch、哪個 port。
- 看 interface status:確認 port 是 up/down、速率是否異常、有沒有被 shutdown。
- 查 ARP 與 VLAN:確認 IP 和 MAC 是否對得起來,是否落在正確網段或 VLAN。
- 對照 LLDP 與清冊:確認這台設備的實際連接位置和清冊位置是否一致。
# 從 Mac 端先看網路狀態;tools/mac-fleet/school-ssh --host LAB-A-12 -- "ifconfig; netstat -rn; arp -a";# 從 Switch 端採集資料;tools/network-discovery/switch-collect --device LAB-A-SW
| 查到的現象 | 可能原因 | 下一步 |
|---|---|---|
| Mac 沒有拿到 IP | DHCP、VLAN、線路或 port 問題 | 查 Switch port 與 VLAN 設定 |
| Switch port down | 網路線、設備電源、資訊孔或 port 故障 | 現場檢查線路與資訊孔 |
| MAC 出現在錯誤 port | 設備被搬動或清冊過期 | 更新清冊與位置紀錄 |
| IP 和 MAC 對不起來 | IP 衝突、舊 ARP、設備替換 | 清 ARP、查 DHCP lease、確認設備身份 |
| LLDP 拓撲不符合預期 | 上游接線改過或設備位置調整 | 更新拓撲圖與上游連接紀錄 |
這樣排查的好處是很明顯的:你不再只是「去現場看看」,而是先用資料把問題縮小。也許你最後還是要去現場換線,但你會知道是要去 LAB-A 的哪個 port、哪個座位、哪台 Switch,而不是整間教室亂翻。
6. 建立校園網路拓撲:不再只靠老系管的記憶
很多學校的網路拓撲,其實不是沒有,而是藏在某個人的腦袋裡。誰知道核心交換器在哪、哪一台接到二樓、哪一台接電腦教室、哪個 port 接 IP 話機、哪個 port 接無線基地台。只要人一換,整張網路地圖就開始模糊。
School IT Toolkit 透過 Switch 清冊、LLDP、MAC table、ARP 與 interface status,可以協助學校慢慢建立自己的網路拓撲資料。這不一定一開始就要做成漂亮網站,先能回答三個問題就很有價值:哪台 Switch 接哪台 Switch?哪台設備接在哪個 port?哪些資料和清冊不一致?
第一層:Switch 清冊
列出核心交換器、樓層交換器、教室交換器、管理 IP、位置與登入方式。
第二層:LLDP 關係
看出上游、下游與鄰居設備,建立核心到教室的連線輪廓。
第三層:Port 對應
用 MAC table 與 ARP 找出端點實際位置,對照教室座位與資訊孔。
第四層:異常報表
列出清冊不一致、port down、未知設備、疑似搬移設備與需現場確認項目。
一旦拓撲資料開始累積,學校 IT 的品質會差很多。新同事接手時,不用從零猜;設備搬遷時,可以知道哪些 port 需要更新;網路故障時,可以先看資料縮小範圍;資安稽核時,也能更快提供設備位置與管理紀錄。這種「把校園網路畫出來」的能力,是 School IT Toolkit 很值得放大介紹的核心價值。
7. 和 MDM 的差異:它更懂校園現場任務
這裡不用把 School IT Toolkit 和 MDM 寫成對立。MDM 很擅長裝置註冊、描述檔、政策派送、App 管理與合規控管;這些是正式裝置管理平台很重要的能力。但學校現場常常還有另一種需求:我要知道這間教室能不能上課、這台 Mac 接在哪個 port、哪台 Switch 上游怪怪的、哪幾台設備清冊過期、哪幾個 IP 話機可能還用預設帳密。
MDM 常常回答「這台裝置有沒有被政策管到」;School IT Toolkit 更常回答「這個校園任務能不能被完成」。這是視角差異,不是誰比較高級。甚至很多環境可以兩者並用:MDM 負責政策與合規,School IT Toolkit 負責現場稽核、批量指令、Switch 採集、拓撲盤點、報表與交接 SOP。
| 問題 | MDM 常見視角 | School IT Toolkit 視角 |
|---|---|---|
| 這台 Mac 有被管理嗎? | 看裝置註冊與合規狀態 | 看 SSH、ARD、audit 是否真的可用 |
| 這間教室能不能上課? | 不一定是主要任務語言 | 用群組查 OS、工具、硬碟、連線狀態 |
| 電腦不能上網原因在哪? | 多半看端點狀態 | 從 Mac 追到 Switch port、VLAN、LLDP |
| 設備搬移後清冊準不準? | 不一定看實體連接位置 | 用 MAC table 與 ARP 對照實際位置 |
| 交接給下一任怎麼辦? | 平台狀態紀錄 | 清冊、報表、拓撲、踩雷文件、SOP 一起保存 |
8. 資料留校內:清冊、金鑰、拓撲、報表都不亂跑
校園 IT 的資料其實非常敏感。全校 Mac 清冊、Switch 管理 IP、SSH 私鑰、管理帳號、交換器 running-config、ARP、MAC table、LLDP 拓撲、IP 話機位置,這些資料如果外流,外人可以看出你的內網結構、設備命名規則、管理習慣與潛在弱點。
School IT Toolkit 的設計很重視這件事:公開的是工具、文件與範本;真實清冊、金鑰、密碼、reports、Switch raw output、running-config,都應該只存在校內管理端。這讓資訊組長可以把維運資料留在學校,不一定要把內網拓撲和設備狀態交給外部平台或雲端服務。
可以公開分享
- GitHub 專案網址
- 不含真實資料的範例清冊
- 通用 SOP 與踩雷心得
務必留在校內
- SSH 私鑰與交換器密碼
- 真實 inventory 清冊
- Switch running-config
- ARP、MAC table、LLDP 報表
- 內網拓撲與設備位置
這也是為什麼分享工具時,要給網址,不要給資料夾。只要你跑過初始化,本機資料夾就可能含有私鑰、密碼與真實清冊。.gitignore 可以避免機密被提交到 Git,但無法阻止你把整包資料夾壓縮或 AirDrop 給別人。
9. 實際怎麼開始?從三台 Mac、一台 Switch 做起
這套工具很強,但越強的工具越需要穩穩導入。最好的起點不是全校開跑,而是一台管理端 Mac、三台測試 Mac、一台可以合法登入的 Switch。先把最小流程跑通,再慢慢擴大。
步驟一:取得乾淨專案
git clone [https://github.com/polik18/school-it-toolkit.git](https://github.com/polik18/school-it-toolkit.git) school-it-toolkit;cd school-it-toolkit
步驟二:執行初始化
python3 setup/init-wizard.py
步驟三:建立 Mac 測試清冊
name,host,group,location,notes;LAB-A-01,192.168.10.101,LAB-A,電腦教室A,測試機1;LAB-A-02,192.168.10.102,LAB-A,電腦教室A,測試機2;LAB-A-03,192.168.10.103,LAB-A,電腦教室A,測試機3
步驟四:用 ARD 打通 SSH
透過 Apple Remote Desktop 對測試 Mac 做第一次 bootstrap,建立管理帳號、開啟 Remote Login、佈署 SSH 公鑰。完成後,用 school-ssh 驗證。
tools/mac-fleet/school-ssh --group LAB-A -- "whoami; hostname; sw_vers -productVersion"
步驟五:加入一台 Switch 做採集測試
先準備一台合法可登入的交換器,例如教室交換器或測試用 Switch。確認帳號權限只做 show 類資料採集,不要一開始就做寫入設定。
tools/network-discovery/switch-collect --device LAB-A-SW
步驟六:把 Mac 與 Switch 報表對起來
從 Mac 端取得 IP、MAC、路由與 ARP,再從 Switch 端取得 MAC table、ARP、LLDP 和 interface status。只要能對出一台 Mac 實際接在哪個 port,這個流程就已經開始有價值。
步驟七:擴大到整間教室
等三台測試機和一台 Switch 流程穩定,再把 LAB-A 的所有 Mac 和教室 Switch 加入清冊。這時候你會開始看到一張真正屬於學校的網路地圖慢慢長出來。
10. 日常維運怎麼排?讓系管工作不再救火
School IT Toolkit 最適合變成固定節奏,而不是想到才用。你可以把校園維運分成每天、每週、每月、學期初、寒暑假幾個層級,讓問題在變大之前就被看見。
| 頻率 | Mac 任務 | Switch / 網路任務 | 好處 |
|---|---|---|---|
| 上課前 | 查教室 Mac 是否在線、硬碟是否爆滿 | 確認教室 Switch port 狀態 | 避免上課才發現不能用 |
| 每週 | 跑 audit 找出未完整納管設備 | 採集 MAC table、ARP、interface status | 異常不會越積越多 |
| 每月 | 檢查 Homebrew outdated、安排更新 | 比對 running-config 與 LLDP 拓撲 | 軟體與網路設定都有紀錄 |
| 學期初 | 補齊課程工具與教室群組 | 更新教室資訊孔與 Switch port 對照 | 讓課程環境穩定 |
| 寒暑假 | OS 升級、密碼輪替、清理磁碟 | 拓撲盤點、設備汰換、設定備份 | 把大型維護留在低風險時段 |
如果再加上本地 AI,可以讓 AI 幫忙讀報表、整理異常、產生維護公告草稿,甚至把「這週哪些教室最需要處理」整理出優先順序。但最後按下去的人還是資訊人員,尤其涉及刪檔、改密碼、改設定、升級系統或修改 Switch 設定時,一定要先測試再分批。
11. FAQ:常見問題一次整理
Q1:School IT Toolkit 最適合解決什麼問題?
它最適合解決校園 IT 裡「重複、分散、難查、難交接」的問題。像是批量查 Mac 狀態、安裝上課軟體、稽核哪些設備真的管得到、採集 Switch 狀態、建立 port 對照、整理網路拓撲與留下 SOP。
Q2:它可以做一句話全校 OS 升級嗎?
可以把 OS 升級整理成批量任務,但大型升級風險高,不建議第一次就對全校執行。比較好的方式是先查版本、選測試機、分批升級、再用 audit 和版本查詢驗收。升級要排在非上課時段,並準備回復方案。
Q3:它可以一句話改密碼嗎?
可以用受控腳本分批做密碼輪替,但密碼絕對不要明文留在文章、聊天紀錄或 shell history 裡。建議用安全憑證檔、環境變數或校內密碼管理流程,並記錄成功與失敗主機。
Q4:Switch SSH 納管可以直接改設定嗎?
技術上可以,但不建議一開始就做寫入操作。剛導入時先以 show 類採集為主,例如 MAC table、ARP、LLDP、interface status、running-config。等清冊、權限、備份與回復 SOP 都成熟後,再討論是否要自動化設定變更。
Q5:它和 MDM 可以一起用嗎?
可以。MDM 負責裝置政策、描述檔、App 與合規;School IT Toolkit 負責現場任務、SSH 批量維護、Switch 探測、拓撲盤點、報表與交接 SOP。兩者不是一定要互相取代。
Q6:本地 AI 可以幫什麼?
可以協助閱讀 audit 報表、整理 Switch 採集結果、產生維護公告、解釋錯誤訊息、提出排查順序。但 AI 不應直接對正式設備執行破壞性指令,所有內容都要由資訊人員審查。
Q7:最小怎麼開始?
一台管理端 Mac、三台測試 Mac、一台測試 Switch 就可以開始。先讓 Mac 端 SSH 可用,再讓 Switch 端採集成功,最後試著把一台 Mac 的 MAC address 對到 Switch port。這一步跑通,就代表整套方法開始有價值。
結語:真正厲害的,是把校園網路看清楚
School IT Toolkit 最值得推薦的地方,不只是它能批量管理 Mac,也不是它能跑幾條指令,而是它幫學校建立了一種新的維運視角:從端點看到 Switch,從 Switch 看到連接埠,從連接埠看到 VLAN,從 LLDP 看到上下游拓撲,最後把這些資料整理成清冊、報表和 SOP。
以前,校園網路可能是一團只有資深資訊人員才看得懂的線路與記憶;現在,它可以慢慢變成一張可以查、可以修、可以交接的地圖。當老師說電腦不能上網,你不用再從頭猜起;當設備被搬走,你可以用 MAC table 找到它;當交接到下一任,你可以留下清楚的拓撲和維護紀錄。
這就是 School IT Toolkit 的真正價值:它不是讓工具取代人,而是讓資訊人員不用再靠記憶硬撐。Mac、Switch、IP 話機、拓撲、報表、本地 AI,全都可以被放進同一套校園維運脈絡裡。對學校來說,這不只是自動化,而是讓整個資訊環境終於看得見。
- 一句話查全校或整間教室的 Mac 狀態。
- 一句話安裝上課需要的軟體工具。
- 一句話稽核哪些設備真的管得到。
- 透過 Switch 採集 MAC table、ARP、LLDP、port 狀態。
- 把 Mac 端資料和 Switch 端資料對起來,快速定位問題。
- 建立校園網路拓撲,不再只靠人腦記憶。
- 讓清冊、報表、拓撲與 SOP 成為下一任也看得懂的交接資料。
- 讓敏感資料留在校內,不必把內網資訊亂丟到外部平台。