---
disqus: ahb0222
GA : G-VF9ZT413CG
---
> [color=#40f1ef][name=LHB阿好伯, 2025/12/21][:earth_africa:](https://www.facebook.com/LHB0222/)
[TOC]
## 🎯 前言:為什麼需要 Termix?
如果你跟我一樣,手上管理著好幾台伺服器、樹莓派、NAS,每次要 SSH 連線都要開終端機輸入一堆指令,或是用 PuTTY 這種老古董...那你一定會愛上 **Termix**!
### Termix 是什麼?
**Termix** 是一個 **開源、免費、自架的 Web 版 SSH 管理平台**,可以說是 Termius 的開源替代方案。
**主要特色:**
- 🖥️ **網頁版 SSH 終端**:不用裝任何軟體,瀏覽器開啟就能用
- 📱 **分割畫面**:最多同時開 4 個終端面板
- 📁 **檔案管理器**:直接在網頁上傳下載檔案
- 🔒 **SSH 隧道管理**:輕鬆建立 Port Forwarding
- 📊 **伺服器監控**:即時查看 CPU、記憶體、磁碟使用率
- 🌍 **跨平台支援**:Web、Windows、macOS、Linux、iOS、Android
:::success
:bulb: **重點提示**
Termix 是完全免費的!不像 Termius 需要訂閱,而且所有資料都在你自己的伺服器上,隱私更有保障。
:::

## 🔧 環境需求與準備
### 系統需求
| 項目 | 需求 |
|------|------|
| **作業系統** | Ubuntu 20.04 / 22.04 / 24.04 LTS |
| **記憶體** | 最少 1GB,建議 2GB+ |
| **磁碟空間** | 最少 5GB |
| **網路** | VPS 需有固定 IP |
| **端口** | 需開放 8080 端口 |

[推薦racknerd VPS](https://my.racknerd.com/aff.php?aff=16718)有固定IP可以使用
### 確認 Docker 版本
```bash
docker --version
docker compose version
```
如果沒有安裝 Docker,請參考下一節的安裝步驟。
---
## 🐳 方法一:Docker 快速安裝(推薦)
### 步驟 1:安裝 Docker
如果你的 VPS 還沒有 Docker,執行以下一鍵安裝腳本:
```bash
# 使用 Docker 官方安裝腳本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 將當前使用者加入 docker 群組
sudo usermod -aG docker $USER
# 啟動 Docker 服務
sudo systemctl enable docker
sudo systemctl start docker
```
:::warning
:warning: **注意事項**
執行 `usermod -aG docker $USER` 後,需要**登出再登入**才會生效,或執行 `newgrp docker` 暫時啟用。
:::
### 步驟 2:驗證 Docker 安裝
```bash
# 檢查版本
docker --version
docker compose version
# 測試 Docker 是否正常運作
docker run hello-world
```
**預期輸出:**
```
Hello from Docker!
This message shows that your installation appears to be working correctly.
```
### 步驟 3:建立 Termix 目錄
```bash
# 建立安裝目錄
mkdir -p /opt/termix
cd /opt/termix
```
### 步驟 4:建立 docker-compose.yml
```bash
cat > docker-compose.yml << 'EOF'
services:
termix:
image: ghcr.io/lukegus/termix:latest
container_name: termix
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/app/data
environment:
PORT: "8080"
TZ: "Asia/Taipei"
EOF
```
:::info
:memo: **參數說明**
- `ports: "8080:8080"`:將容器的 8080 端口映射到主機的 8080
- `volumes: ./data:/app/data`:將資料持久化到本地目錄
- `TZ: "Asia/Taipei"`:設定時區為台北時間
:::
### 步驟 5:啟動 Termix
```bash
# 拉取映像
docker compose pull
# 啟動服務(背景執行)
docker compose up -d
```
### 步驟 6:檢查安裝狀態
```bash
# 查看容器狀態
docker compose ps
# 查看即時日誌
docker compose logs -f termix
```
**成功的輸出範例:**
```
CONTAINER ID IMAGE STATUS PORTS
abc123def456 ghcr.io/lukegus/termix:latest Up 10 seconds 0.0.0.0:8080->8080/tcp
```
### 步驟 7:測試連線
```bash
# 測試本地連線
curl http://localhost:8080
```
如果看到 HTML 內容,恭喜你安裝成功!🎉
---
## ⚡ 方法二:一鍵安裝腳本
懶得一步步操作?我準備了一個**全自動安裝腳本**!
### 完整安裝腳本
```bash
#!/bin/bash
# Termix Ubuntu VPS 一鍵安裝腳本
# 作者:LHB阿好伯
set -e
echo "========================================="
echo "🚀 Termix Ubuntu 一鍵安裝腳本"
echo "========================================="
echo ""
# 檢查 sudo 權限
if [[ $EUID -ne 0 ]]; then
if ! sudo -v; then
echo "❌ 錯誤:需要 sudo 權限"
exit 1
fi
fi
# 更新系統
echo "📦 更新系統套件..."
sudo apt update && sudo apt upgrade -y
# 安裝 Docker
echo "🐳 安裝 Docker..."
if ! command -v docker &> /dev/null; then
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
rm get-docker.sh
echo "✅ Docker 安裝完成"
else
echo "✅ Docker 已經安裝"
fi
# 啟動 Docker
echo "🚀 啟動 Docker 服務..."
sudo systemctl enable docker
sudo systemctl start docker
# 建立目錄
echo "📁 建立 Termix 目錄..."
sudo mkdir -p /opt/termix
cd /opt/termix
# 建立配置檔案
echo "📝 建立配置檔案..."
sudo tee docker-compose.yml > /dev/null << 'YAML'
services:
termix:
image: ghcr.io/lukegus/termix:latest
container_name: termix
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/app/data
environment:
PORT: "8080"
TZ: "Asia/Taipei"
YAML
# 啟動服務
echo "🎯 啟動 Termix..."
sudo docker compose pull
sudo docker compose up -d
# 等待服務啟動
echo "⏳ 等待服務啟動..."
sleep 5
# 取得 IP 位址
IP=$(hostname -I | awk '{print $1}')
echo ""
echo "========================================="
echo "✅ Termix 安裝完成!"
echo "========================================="
echo ""
echo "📍 訪問位址:"
echo " http://$IP:8080"
echo ""
echo "📊 管理命令:"
echo " 查看狀態:cd /opt/termix && docker compose ps"
echo " 查看日誌:cd /opt/termix && docker compose logs -f"
echo " 重啟服務:cd /opt/termix && docker compose restart"
echo ""
echo "⚠️ 重要:請登出再登入以套用 Docker 群組變更"
echo "========================================="
```
### 使用方法
```bash
# 建立腳本檔案
nano install-termix.sh
# 貼上上面的腳本內容,然後儲存(Ctrl+O, Ctrl+X)
# 賦予執行權限
chmod +x install-termix.sh
# 執行安裝
./install-termix.sh
```
---
## 🎨 首次設定教學
### 步驟 1:開啟 Termix 網頁介面
在瀏覽器中輸入你的 VPS IP:
```
http://你的VPS_IP:8080
```
例如:`http://123.45.67.89:8080`

### 步驟 2:建立管理員帳號
第一次訪問會看到註冊頁面,填入以下資訊:
| 欄位 | 說明 | 範例 |
|------|------|------|
| **Username** | 使用者名稱 | `admin` |
| **Password** | 密碼(至少 8 位) | `********` |
點擊 **Sign up** 完成註冊。
:::danger
:warning: **安全警告**
註冊完成後,**務必立即關閉公開註冊功能**,否則任何人都可以註冊帳號!
:::
### 步驟 3:關閉公開註冊(重要!)
登入後立即執行以下步驟:
1. 點擊左下角的**你的使用者名稱**
2. 選擇 **Admin Settings**(管理員設定)
3. **取消勾選** "Allow new account registration"
4. 點擊 **Save**

### 步驟 4:新增你的第一個 SSH 主機

1. 點擊左側選單的 **Host Manager**(主機管理器)
2. 點擊 **Add Host** 或右上角的 **+** 按鈕

4. 填寫主機資訊:
| 欄位 | 說明 | 範例 |
|------|------|------|
| **Host Address** | 伺服器 IP 或網址 | `192.168.1.50` |
| **Port** | SSH 端口 | `22` |
| **Username** | SSH 使用者名稱 | `root` 或 `ubuntu` |
| **Authentication** | 認證方式 | 密碼或 SSH 金鑰 |
4. 點擊 **Save** 或 **Connect** 連線
### 步驟 5:開始使用!
連線成功後,你就能在瀏覽器中使用完整的 SSH 終端了!
**主要功能:**
- 📁 **檔案管理器**:點擊 File Manager 管理遠端檔案

- 🔒 **SSH 隧道**:建立安全的端口轉發
- 📊 **伺服器監控**:即時查看系統資源

---
## ⚙️ 系統服務設定(開機自動啟動)
為了讓 Termix 在 VPS 重啟後自動啟動,我們需要設定 **systemd 服務**。
### 建立 systemd 服務檔案
```bash
sudo tee /etc/systemd/system/termix.service > /dev/null << 'EOF'
[Unit]
Description=Termix SSH Management Platform
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/termix
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
EOF
```
### 啟用並啟動服務
```bash
# 重新載入 systemd
sudo systemctl daemon-reload
# 啟用服務(開機自動啟動)
sudo systemctl enable termix.service
# 立即啟動服務
sudo systemctl start termix.service
# 查看服務狀態
sudo systemctl status termix.service
```
**成功的輸出範例:**
```
● termix.service - Termix SSH Management Platform
Loaded: loaded (/etc/systemd/system/termix.service; enabled)
Active: active (exited) since Sat 2024-12-21 10:30:00 CST
```
### 服務管理指令
```bash
# 啟動服務
sudo systemctl start termix
# 停止服務
sudo systemctl stop termix
# 重啟服務
sudo systemctl restart termix
# 查看狀態
sudo systemctl status termix
# 查看日誌
sudo journalctl -u termix -f
```
---
## 🔐 VPS 安全設定建議
### 1. 配置防火牆(UFW)
```bash
# 啟用 UFW
sudo ufw enable
# 允許 SSH(重要!避免被鎖在外面)
sudo ufw allow 22/tcp
# 允許 Termix 端口
sudo ufw allow 8080/tcp
# 檢查狀態
sudo ufw status
```
### 2. 限制訪問 IP(可選)
如果你只想讓特定 IP 存取 Termix:
```bash
# 只允許特定 IP 訪問 8080
sudo ufw delete allow 8080/tcp
sudo ufw allow from 你的IP位址 to any port 8080
# 例如:只允許 123.45.67.89 訪問
sudo ufw allow from 123.45.67.89 to any port 8080
```
### 3. 更改預設端口(提升安全性)
編輯 `docker-compose.yml`:
```bash
cd /opt/termix
nano docker-compose.yml
```
修改 ports 部分:
```yaml
ports:
- "18080:8080" # 將外部端口改為 18080
```
重新啟動:
```bash
docker compose down
docker compose up -d
```
記得更新防火牆規則:
```bash
sudo ufw delete allow 8080/tcp
sudo ufw allow 18080/tcp
```
---
## 📊 常用管理命令
### Docker Compose 指令
```bash
# 進入 Termix 目錄
cd /opt/termix
# 查看容器狀態
docker compose ps
# 查看即時日誌
docker compose logs -f termix
# 查看最後 50 行日誌
docker compose logs --tail 50 termix
# 重啟服務
docker compose restart
# 停止服務
docker compose down
# 啟動服務
docker compose up -d
# 更新到最新版本
docker compose pull
docker compose up -d --force-recreate
```
### 資料備份與還原
```bash
# 備份資料
sudo tar -czf termix-backup-$(date +%Y%m%d).tar.gz /opt/termix/data
# 查看資料目錄大小
du -sh /opt/termix/data
# 還原資料(謹慎操作!)
sudo tar -xzf termix-backup-20241221.tar.gz -C /
```
### 清理 Docker 資源
```bash
# 清理未使用的映像、容器、網路
docker system prune -a
# 僅清理停止的容器和未使用的網路
docker system prune
```
---
## 🔧 常見問題排除
### 問題 1:無法訪問 8080 端口
**可能原因:** 防火牆阻擋
**解決方法:**
```bash
# 檢查防火牆狀態
sudo ufw status
# 允許 8080 端口
sudo ufw allow 8080/tcp
# 重新載入防火牆
sudo ufw reload
# 檢查端口是否正在監聽
sudo netstat -tulpn | grep 8080
```
### 問題 2:容器無法啟動
**可能原因:** 端口被佔用
**解決方法:**
```bash
# 查看是什麼佔用了 8080
sudo netstat -tulpn | grep 8080
# 或使用 ss 指令
sudo ss -tulpn | grep 8080
# 如果需要,可以更改 Termix 的端口
# 編輯 docker-compose.yml,將 "8080:8080" 改為 "18080:8080"
```
### 問題 3:Docker 掛載錯誤
**症狀:** 出現 `read-only file system` 或 `permission denied` 錯誤
**解決方法:**
```bash
# 方案 1:使用 Docker Volume(推薦)
docker volume create termix-data
# 修改 docker-compose.yml
# volumes:
# - termix-data:/app/data
# 方案 2:修正目錄權限
sudo chown -R 1000:1000 /opt/termix/data
sudo chmod -R 755 /opt/termix/data
```
### 問題 4:忘記管理員密碼
**解決方法:**
```bash
# 停止容器
cd /opt/termix
docker compose down
# 刪除資料庫(會清除所有資料!)
sudo rm -rf data/termix.db
# 重新啟動
docker compose up -d
# 重新註冊管理員帳號
```
:::danger
:warning: **警告**
刪除資料庫會清除**所有設定和主機資訊**,請謹慎操作!建議先備份資料。
:::
### 問題 5:記憶體不足
**症狀:** 容器經常重啟或無法啟動
**解決方法:**
```bash
# 檢查系統資源
free -h
df -h
# 清理 Docker 資源
docker system prune -a --volumes
# 限制容器記憶體使用(編輯 docker-compose.yml)
# deploy:
# resources:
# limits:
# memory: 1G
```
---
## 🎓 進階技巧
### 1. 設定資源限制
編輯 `docker-compose.yml`,加入資源限制:
```yaml
services:
termix:
image: ghcr.io/lukegus/termix:latest
container_name: termix
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/app/data
environment:
PORT: "8080"
TZ: "Asia/Taipei"
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
cpus: '0.25'
memory: 256M
```
### 2. 啟用日誌輪替
避免日誌檔案無限增長:
```yaml
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
```
### 3. 設定環境變數
```yaml
environment:
PORT: "8080"
TZ: "Asia/Taipei"
LOG_LEVEL: "info"
NODE_ENV: "production"
```
---
## 🎯 總結
恭喜你成功在 VPS 上安裝 Termix!現在你擁有了一個**功能強大、完全免費、隱私安全**的 SSH 管理平台。
# 啟用雙因素認證(2FA)

### 📚 延伸閱讀
- [Termix 官方文檔](https://docs.termix.site/)
- [Docker Compose 完整指南](https://docs.docker.com/compose/)
# 四格顯示


### 💡 下一步建議
1. 設定 SSH 金鑰認證(更安全)
2. 定期備份 Termix 資料
3. 監控 VPS 資源使用狀況
---
# 試用網址
架設在[racknerd VPS](https://my.racknerd.com/aff.php?aff=16718)
https://termix.ahb0222.work/
## 💬 有問題或建議?
歡迎在下方留言討論,或透過以下方式聯繫我:
- 📘 Facebook:[LHB阿好伯](https://www.facebook.com/LHB0222/)
- 📷 Instagram:[@ahb0222](https://www.instagram.com/ahb0222/)
---
**💖 喜歡這篇文章嗎?**
如果這篇文章對你有幫助,請幫我按讚、分享,讓更多人看到!
你的支持是我持續創作的動力 🚀
---
# [:page_with_curl: 全部文章列表](https://hackmd.io/@LHB-0222/AllWritings)
