防火牆
防火牆頁把你的機器畫成一張拓撲圖:每條線都是防火牆允許的一條連線,例如開放給外部的服務、可以上網的機器,或彼此能互通的兩台機器。你可以在這裡新增與刪除連線、以網址或對外 port 發布服務,並查看或修改每台機器自己的防火牆規則。側欄:網路 → 防火牆。路徑:/firewall。
誰可以使用
所有登入的使用者都能開啟,但看到的機器範圍不同:
| 角色 | 圖上的機器 | 可以修改的範圍 |
|---|---|---|
| 學生 | 自己的機器,包含分配給自己的課堂機器 | 自己的個人機器。課堂機器只能查看規則,不能修改,也不能拿來建立新連線 |
| 老師 | 自己的機器,加上自己任教班級中所有學生的機器 | 自己的機器與任教班級的機器 |
| 管理員 | 所有機器 | 所有機器 |
學生想從課堂機器拉線、或拉線到課堂機器時,會出現提示說明這台機器的防火牆由班級老師管理。
開始之前
- 至少要有一台 VM 或 LXC;一台都沒有時,圖上會顯示「目前沒有可顯示的防火牆資源」。
- 管理員完成 Cloudflare 與 Gateway 設定後(見 網域管理 與 閘道 VM),發布服務時才會出現「用網址」;在那之前只有「用對外 port」與「僅開放防火牆」。
操作步驟
看懂拓撲圖
- 每個方塊是一台機器;「網際網路」方塊代表實驗室外的一切。
- 線的顏色請對照左下角的圖例:「對外開放」(網際網路連進機器)、「對外連線」(機器連到網際網路)與「內部互通」(機器之間)。線上的標籤是它開放的 port。
- 對外連線(上網線)預設隱藏,因為幾乎每台機器都有一條;按「上網線」即可顯示。
- 點一條線會開啟「連線內容」:兩端機器、連線種類、「單向」或「雙向」,以及「開放內容」中每個 port 的開放方式(「網址發布」、「通訊埠轉發」或「僅開放防火牆」)與協定。網址發布的項目有「開啟網址」連結。
- 點一台機器會開啟它的規則面板。選取機器時,圖上只畫出跟它有關的線;按「取消選取」(或點圖上空白處)即可恢復顯示全部。
拓撲圖約每 30 秒自動更新一次。

用拖曳建立連線
- 把游標移到來源機器上,邊緣會出現連接點。
- 在圓點上按住滑鼠左鍵不放,拖到目標機器(或「網際網路」方塊)邊緣的圓點上再放開。
- 「新增連線」對話框會自動選好種類:機器拉到機器是「讓兩台機器互通」,「網際網路」拉到機器是「開放服務給外部」,機器拉到「網際網路」是「讓機器能上網」。
- 填好 port 後按「建立連線」(或「發布」)。

用按鈕建立連線
- 按頁首的「新增連線」。
- 在「你要做什麼?」選擇下方四種之一,再填寫表單。

讓機器能上網
- 選「讓機器能上網」。
- 在「哪台機器」選擇機器。
- 按「建立連線」。之後這台機器就能主動連到網際網路,不限 port。

讓兩台機器互通
- 選「讓兩台機器互通」。
- 選擇「從哪台」與「連到哪台」。
- 選擇「方向」:「單向」(只有「從哪台」能連到「連到哪台」)或「雙向」。
- 至少填一個 port 與協定;需要更多列時按「新增 port」。ICMP 類協定不需要 port。
- 按「建立連線」。

開放服務給外部
- 選「開放服務給外部」,並在「哪台機器」選擇機器。
- 在「怎麼開放」選擇其中一種:
- 「用網址」:填寫「你的服務跑在哪個 port?」(預設 80),決定是否保留勾選「啟用 HTTPS(使用管理員設定的憑證)」,輸入「網址開頭(自己取名)」(留空代表直接用主網址),再選「網址結尾」。對話框會立即檢查這個網址能不能用;不論是 SkyLab 建立的,還是 Cloudflare 上原本就有的紀錄,撞名都會被擋下。
- 「用對外 port」:每一列填寫別人要用的「對外 port」、服務實際在聽的「內部 port」與「協定」(tcp 或 udp);需要更多列時按「新增對應」。別人會用「校園入口 IP:對外 port」連進來;對外 port 已被使用時會提示你換一個。
- 「僅開放防火牆」:填寫要在機器防火牆開放的 port 與協定,不做網址或 port 轉發。
- 按「發布」。
一次發布多個 port 時若其中一個失敗,已成功的會保留並從表單移除,訊息會告訴你是哪個 port 失敗。

自己寫一條防火牆規則
- 選「自己寫規則」(或在機器的規則面板按「新增規則」,會直接開啟這個選項並鎖定該機器)。
- 設定「方向」(「進站」或「出站」)、「動作」(「允許」、「丟棄」或「拒絕」)、「協定」(「任意」、tcp、udp 或 icmp)與「Port」(例如
22或8000:8010;icmp 與「任意」不需要 port)。 - 視需要填寫「來源 IP 或網段」(進站)或「目的 IP 或網段」(出站),例如
10.10.0.0/24;留空代表不限制。也可以填寫「備註」。 - 按「新增規則」。
自己寫的規則會直接寫進機器的 Proxmox 防火牆,不會出現在拓撲圖上。寫的是進站、允許、不限來源的規則時,對話框會建議「改用「開放服務給外部」」,因為只有走那條路建立的連線才會被系統追蹤並畫在圖上。

管理單台機器的規則
- 在圖上點選機器,規則面板會從旁邊滑出。
- 「防火牆設定」顯示防火牆「狀態」,以及「預設入站」與「預設出站」政策。
- 「規則清單」依順序列出每條規則:位置編號、IN 或 OUT、動作(或「停用」)、來源與目的、協定與 port,以及備註。
- 有鎖頭圖示的規則由 SkyLab 管理(連線、對外發布、封鎖網段及其他平台規則),請透過連線與發布來調整,不要在這裡改。
- 自己寫的規則可以用「啟用」開關停用或啟用,或按刪除按鈕並確認後刪除。
- 「前往資源詳情(迷你拓撲與對外服務)」會開啟這台機器的詳情頁。
學生點選課堂機器時,會看到「這是課堂機器,規則只能查看;要調整防火牆請找班級老師」,而且沒有任何操作按鈕。

刪除連線
- 點那條線開啟「連線內容」。
- 按「刪除連線」,再按「刪除」確認。這條連線開放的所有 port 都會一併移除。
標示「由環境模板管理」的連線屬於教學環境,無法在這裡刪除。

整理與篩選拓撲圖
- 「自動排列」會把機器排成一欄,「網際網路」方塊放在旁邊。你拖曳過的位置會被保存,下次進來仍維持。
- 「分組」會依班級或機器類型把機器包成群組框;機器有 12 台以上時預設開啟。按群組標題上的按鈕可收合或展開。分組模式下按鈕會變成「重設位置」,用來丟掉你拖過的群組位置(群組位置只存在目前的瀏覽器)。
- 「連線標籤」顯示或隱藏 port 標籤,「地圖」顯示或隱藏縮圖,「只看對外開放」只保留能從網際網路連進來的機器。
- 用搜尋框(「搜尋機器名稱或 IP」),以及有多個群組時出現的「全部群組」清單縮小範圍。圖的下方會提示還有幾台未顯示,按「清除篩選」即可全部顯示。
這些按鈕都不會修改任何防火牆規則。

欄位與選項
| 欄位 | 意義 | 備註 |
|---|---|---|
| Port | 1 到 65535 的 port 號碼 | 範圍請寫成 8000:8010 |
| 協定 | 連線可用 tcp、udp、icmp、icmpv6 或 sctp;對外 port 只能用 tcp 或 udp | ICMP 類協定不需要 port |
| 方向(連線) | 「單向」或「雙向」 | 只有「讓兩台機器互通」有 |
| 怎麼開放 | 「用網址」、「用對外 port」或「僅開放防火牆」 | 管理員完成網域與 Gateway 設定後才有「用網址」 |
| 啟用 HTTPS | 用管理員的憑證以 HTTPS 提供網址 | 預設勾選 |
| 網址開頭/網址結尾 | 發布的網址是開頭加上結尾,例如 myapp.example.com | 結尾清單是 Cloudflare 上啟用中的 Zone |
| 動作(自訂規則) | 「允許」、「丟棄」或「拒絕」 | — |
| 來源/目的 IP 或網段 | 把自訂規則限制在某個位址或網段 | 留空代表不限制 |
限制與注意事項
- 學生無法修改課堂機器的防火牆,對話框的機器清單也不會列出這些機器。
- 一條連線會同時寫入兩端機器的規則,所以兩台機器你都必須有管理權。
- 管理員可以在 IP 管理 頁設定「預設封鎖網段 / IP」。它們會變成每台機器上鎖的出站丟棄規則,排在允許一般出站流量的規則之前,所以即使有對外連線,機器也連不到這些網段。
- IP 管理有設定主系統 IP 時,每台機器還會有一條上鎖的規則,允許 SkyLab 主系統以 SSH(port 22)連入。
- 已被其他機器使用、屬於平台本身網域,或 Cloudflare 上已有紀錄的網址,都無法發布。
- 群組位置與收合狀態存在目前的瀏覽器;單台機器的位置則存在伺服器。