Linux 套件與 systemd
正式環境逐步部署
要從 release asset、檔案權限、防火牆、systemd、驗證一路做到更新與回退,請使用Linux VPS 正式部署實戰。
Release packages
發行流程可產生:
- Debian/Ubuntu
.deb - RPM
.rpm - Arch/Pacman
.pkg.tar.zst
套件安裝:
text
/usr/bin/aster-core
/usr/bin/mihomo -> aster-core compatibility
/etc/mihomo/config.yaml
aster-core.service
[email protected]安裝前驗證
sh
sha256sum -c checksums.txt套件安裝後:
sh
sudo /usr/bin/aster-core -d /etc/mihomo -t目錄與權限
建議:
sh
sudo install -d -m 700 /etc/mihomo
sudo chmod 600 /etc/mihomo/config.yaml
sudo chmod 600 /etc/mihomo/aster-state.json* 2>/dev/null || true如果 service 使用專用 user,請把 owner 改成該 account。Aster store directory 必須符合 owner-only 規則。
主服務
sh
sudo systemctl enable --now aster-core
sudo systemctl status aster-core
sudo journalctl -u aster-core -fUnit 執行:
text
/usr/bin/aster-core -d /etc/mihomo重新載入:
sh
sudo /usr/bin/aster-core -d /etc/mihomo -t
sudo systemctl reload aster-core先 -t,再 reload,避免把明顯無效設定交給執行中服務。
多實例
sh
sudo systemctl enable --now aster-core@edge設定目錄:
text
/etc/mihomo/edge每個 instance 必須使用不同:
- Proxy/listener ports
- Controller address
- TUN device/name
- Aster store
- Unix socket/named resource
不要讓兩個 instance 指向同一份 Aster state;store generation 與 lock 雖可避免部分衝突,但 runtime listener ownership 仍不成立。
Capabilities
Package unit 可能授予:
CAP_NET_ADMINCAP_NET_RAWCAP_NET_BIND_SERVICECAP_SYS_TIMECAP_SYS_PTRACECAP_DAC_READ_SEARCHCAP_DAC_OVERRIDE
這組能力涵蓋多種 Mihomo 功能,但權限很高。若只跑 HTTP/SOCKS client,可建立更小權限的自訂 unit。
手動 binary service
範例:
ini
[Unit]
Description=Aster Core
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/aster-core -d /etc/mihomo
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.targetTUN/transparent proxy 需要額外 capabilities。若不需要,不要照抄 package unit 的完整權限。
Geodata
Docker image 內建 geodata;binary/package 部署時,依設定可能在首次使用時下載,或需要自行放入 home directory:
geoip.metadbGeoIP.datGeoSite.datASN.mmdb
上線環境若無外網,應在部署 artifact 中一併提供並驗證來源。
Upgrade/rollback
- 備份
/etc/mihomo。 - 保存舊 binary/package。
- 用新 binary 執行
-t。 - 停止或 reload service。
- 驗證 Controller、DNS、TCP、UDP 與 managed users。
- 發現問題時回復 binary 與相容 state/config。
Aster state version 不支援時會拒絕載入,不應手動修改 version 欄位繞過。
