最近弄了一台迷你工控電腦,跑了很多網路應用、P2P、Aria2 下載機跟一堆 Docker 應用通通都遷進去,跑了幾個禮拜後,發現超穩!

長時間下來機器本體還冰冷冷的,而且最讓我煩惱就是 CPU 佔用居然還很低,實在太浪費這台迷你電腦了

於是就開始構思如何給他更多的工作。。(沒錯!這就是慣老闆思維~)

因爲買這台迷你電腦時候有特別挑雙網口的,原本就想著讓他做更多事情~

我虛擬機系統則是採用免費開源的 Proxmox VE (PVE)來搭建,另外也有蠻多人在使用 VMware ESXi

不過 PVE 核心是 Debian 系統,佔用的系統資源會比較低,對於硬體的要求也比較低

而且我後面也要跑一台 Debian 虛擬機,當然就首選 PVE 囉~

接著就乾脆一不做二不休把 UniFi USG 網關的工作也給迷你電腦算了,直接跑個軟路由

網路上搜一下,這種軟體路由的種類還蠻多的,討論比較多比較常見的有 OpenWRTRouterOS

OpenWRT 是免費且開放原始碼的, 開發者也蠻積極活絡的一直在更新

RouterOS 則是大名鼎鼎 MikroTik 的商業公司,根據不同等級有不同授權金額,最高級授權價值不斐

原本我是直接使用 OpenWRT,用了一段時間蠻穩定的,而且記憶體佔用長時間只有 40MB 左右

所以在分配時候給 OpenWRT 128M or 256M 就非常夠用

然後就算跑滿我光世代的 300M 下載,CPU 也才出現 15% 左右的佔用而已

以這個比例來推算,就算破 1000M 的話,CPU 可能也就在 60% 左右,真是超夠用的~

一開始沒直接用 RouterOS 是因為這系統的授權價格與設定複雜難度實在讓我望之卻步

光是防火牆的設定我有看就沒有懂過。。。

不過後面經過不斷爬文之後,雖然達不到清楚明白,但也算是足夠使用

還發現他們有推出一個虛擬機專用的 CHR(Cloud Hosted Router)版本

只能安裝在虛擬機或者 VPS 上面,而且是全功能的,授權金額是根據「上傳速度」來決定的

Free:上傳限速 1Mbit、免費

P1:上傳限速 1Gbit、$45

P10:上傳限速 10Gbit、$95

P-Unlimited:上傳不限速、$250

CHR 授權比起之前實體主機上面的傳統授權寬鬆許多(以前只要硬碟壞掉、換掉,ROS 授權就沒了)

CHR 授權是跟你在官網的帳號捆綁的,如果你原先虛擬機不用了,可以隨時換去其他虛擬機內

只要注意同一時間一個授權只能啟用一台虛擬機即可,相當方便,再也不怕授權會失效了~

這次我是買 P1 授權,上傳可以達到 1GB,以目前台灣家庭光世代發展速度來看

起碼還能用好幾年都不用擔心會達到上傳 1GB 的頻頸。。。🤦‍♂️

而 ROS CHR 授權在淘寶上面很多商家都在販售,P1 售價大約在 150~170 人民幣左右

擔心買到假授權的話,可以到 MikroTik 官網查亞洲經銷公司,然後依照公司名稱到淘寶上面搜索

淘寶上的售價比起官方的建議價格 45 美金要便宜一半,而且授權終身有效,算是蠻超值的

在同樣硬體環境下 ROS 平常佔用的記憶體就比 OpenWRT 高快一倍,平常大概會維持在 74MB 左右

而 CPU 使用率兩個軟路由都差不多,跟當前網路使用速度來決定的,使用頻寬越高 CPU 使用率就會越高

好了,講太多廢話了,以下來記錄一下安裝(踩坑)過程

Proxmox VE 小修改

Proxmox VE 安裝過程超簡單,官網下載映像檔,寫到 USB 隨身碟裡面,開機一直點點點就搞定了

PVE 安裝後系統預設是使用企業訂閱的更新源,這導致沒有去訂閱的免費版無法正常更新系統

不過因為 PVE 是採取 Debian 架構,我們可以很輕鬆自己新增或者移除修改系統更新源

首先使用網頁管理後台的 Shell 進入終端機

# 使用 nano 文字編輯器或者 vim 都可以,直接打開更新源檔案
$ nano /etc/apt/sources.list

複製粘貼以下內容到檔案裡面(新增無訂閱的普通源到系統裡面,這個源是 PVE 官方維護的,安全)

deb http://download.proxmox.com/debian/pve buster pve-no-subscription

之後記得保存之後退出,接著我們要註釋掉企業訂閱的源

# 同樣用文字編輯器打開企業訂閱源
$ nano /etc/apt/sources.list.d/pve-enterprise.list

打開後應該只會看見一行更新源,直接在這行最前面加上一個 # 註釋掉即可

完成後應該會跟下圖一樣

同樣記得保存之後退出,然後直接輸入更新指令更新一下系統即可

$ apt update
$ apt full-upgrade -y
# 更新完可以重開機一下
$ reboot

另外一個就是全新安裝後,每次登入網頁管理後台都會有個「無有效訂閱」的提醒很煩

如果是個人非商業使用用免費版就行,大部分問題自己上網搜索搞定,所以就沒去訂閱企業服務

這個煩人的提醒視窗也是可以有方法關閉的

# 直接 nano 打開該檔案
$ nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

在 nano 中按下鍵盤的「Ctrl + W」,可以快速搜尋以下字串

if (data.status !== 'Active') {

找到後把這行改成以下:

if (false) {

接著保存退出,然後輸入以下指令重啟服務

$ systemctl restart pveproxy.service

你清除瀏覽器上網記錄以後,再去登入 PVE 管理後台就會發現這個提醒視窗消失了~

搞定 PVE 以後,我們接下來要安裝 RouterOS CHR 版

在 PVE 中安裝 RouterOS CHR

RouterOS 官網沒有提供 iso 映像檔,所以需要我們手動在 PVE 裡面完成映像檔的掛載

首先先在 PVE 裡面建立一個新的虛擬機

記住上圖的 VM ID 數字,這個數字很重要,後面會需要用到

上圖 OS 部分,左邊選項改到「Do not use any media」即可

上圖保持預設即可,不用動

上圖在設定虛擬機的硬體大小,這裡也不重要,保持預設就可以了,因為等下要刪掉

上圖 CPU 請根據自己硬體條件來設定,看是要配給他幾核(Cores)

上圖記憶體請隨意,ROS 日常使用大約只有消耗 74MB 左右而已,所以設定 128MB 或者 256MB 都很充裕

上圖網路卡直接保持預設即可,後續可以在後台新增網卡

如上圖,最後重新看一次剛剛設定所有內容,沒問題之後按下右下角的 Finish 按鈕即可

接下來我們要刪掉剛剛新建虛擬機裡面配的硬碟,並把 ROS CHR 映像檔加載上去

找到新建的虛擬機裡面,點左邊「Hardware」,然後選擇 Hard Disk,先把它拆離(Detach)

拆離以後,繼續點一下「Unused Disk」,然後直接 Remove 這個硬碟

接著我們去 ROS 官網複製一下目前最新穩定版的下載連結: https://mikrotik.com/download

如上圖,我們要下載 Raw disk image 這個檔案,然後看你要下載穩定版還是測試版都可以

複製好之後,打開 PVE 的 Shell 進入終端機,準備下載以及掛載 ROS 映像檔到虛擬機裡面

# 下載剛剛複製的 ROS 映像檔
$ wget https://download2.mikrotik.com/routeros/6.45.7/chr-6.45.7.img.zip
# 解壓縮之後會獲得 chr-6.45.7.img
$ unzip chr-6.45.7.img.zip
# 幫映像檔加一點空間,此處看你要加多少,通常 1GB 左右足夠使用,硬碟大你加 10GB 也可以
$ qemu-img resize chr-6.45.7.img +1G
# 掛載到虛擬機 VM ID 103 裡面(如果你不是 103 的話,請自己修改為自己的實際編號)
$ qm importdisk 103 chr-6.45.7.img local-lvm

輸入完以上指令後,最後應該就會看見 Successfully 的字樣,表示已經正常掛載進去指定的虛擬機 回到網頁上面虛擬機的 Hardware,就會發現多了一個 unused 的硬碟已經掛載上去了

找到之後,滑鼠左鍵直接點兩下

接著直接點「Add」新增進去即可

掛載 ROS CHR 映像檔以後,我們還要再添加一個網卡進去虛擬機裡面

在同樣的「Hardware」頁面「Add」、「Network Device」

加入第二張網路卡

加完網路卡以後,最後應該會是上圖這樣,有兩張網路卡,一個硬碟

沒問題之後就直接點右上角的 Start 即可啓動虛擬機囉!

最後你只要打開 Winbox 即可看見區域網內的 RouterOS 虛擬機了

此時雖然 ROS 還沒有配 IP,但是 Winbox 可以直接掃描區域網內的 ROS Mac 地址直接進入管理設定

Winbox 官網有 Windows 版的: https://mikrotik.com/download

macOS 的有第三方的: https://github.com/nrlquaker/winbox-mac

至於 ROS 怎麼設定,我這裡就不多說了,網路上相關的介紹教學實在太多了,不管是中文或者英文~