--- 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)