---
# System prepended metadata

title: Ubuntu VPS 安裝 Termix：自架免費的 Web SSH 管理平台
tags: [Ubuntu, VPS]

---

---
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 需要訂閱，而且所有資料都在你自己的伺服器上，隱私更有保障。
:::

![Termix 介面示意圖](https://hackmd.io/_uploads/BJ70a0E7Wx.png)



## 🔧 環境需求與準備

### 系統需求

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

![image](https://hackmd.io/_uploads/ByNaiLLXZl.png)

[推薦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`

![image](https://hackmd.io/_uploads/Sy_76CNXZg.png)

### 步驟 2：建立管理員帳號

第一次訪問會看到註冊頁面，填入以下資訊：

| 欄位 | 說明 | 範例 |
|------|------|------|
| **Username** | 使用者名稱 | `admin` |
| **Password** | 密碼（至少 8 位） | `********` |

點擊 **Sign up** 完成註冊。

:::danger
:warning: **安全警告**
註冊完成後，**務必立即關閉公開註冊功能**，否則任何人都可以註冊帳號！
:::

### 步驟 3：關閉公開註冊（重要！）

登入後立即執行以下步驟：

1. 點擊左下角的**你的使用者名稱**
2. 選擇 **Admin Settings**（管理員設定）
3. **取消勾選** "Allow new account registration"
4. 點擊 **Save**

![image](https://hackmd.io/_uploads/ryyedyrmZl.png)





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

![image](https://hackmd.io/_uploads/S1l40RNXbg.png)

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


![image](https://hackmd.io/_uploads/S1oNARVQWl.png)

4. 填寫主機資訊：

| 欄位 | 說明 | 範例 |
|------|------|------|
| **Host Address** | 伺服器 IP 或網址 | `192.168.1.50` |
| **Port** | SSH 端口 | `22` |
| **Username** | SSH 使用者名稱 | `root` 或 `ubuntu` |
| **Authentication** | 認證方式 | 密碼或 SSH 金鑰 |

4. 點擊 **Save** 或 **Connect** 連線




### 步驟 5：開始使用！

連線成功後，你就能在瀏覽器中使用完整的 SSH 終端了！

**主要功能：**
- 📁 **檔案管理器**：點擊 File Manager 管理遠端檔案
![image](https://hackmd.io/_uploads/B1Ri0A4Q-e.png)
- 🔒 **SSH 隧道**：建立安全的端口轉發
- 📊 **伺服器監控**：即時查看系統資源

![image](https://hackmd.io/_uploads/HJHFRRN7Ze.png)




---

## ⚙️ 系統服務設定（開機自動啟動）

為了讓 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）
 ![image](https://hackmd.io/_uploads/H1LH4JBm-e.png)

### 📚 延伸閱讀

- [Termix 官方文檔](https://docs.termix.site/)
- [Docker Compose 完整指南](https://docs.docker.com/compose/)


# 四格顯示
![image](https://hackmd.io/_uploads/HJljDdImWl.png)
![image](https://hackmd.io/_uploads/H1f3vOUXWx.png)



### 💡 下一步建議

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)

![](https://i.imgur.com/nHEcVmm.jpg)

