本文件旨在說明如何在 Proxmox VE 環境下的 Linux 容器 (LXC/CT) 中成功安裝並執行 Tailscale。 與在實體機或虛擬機 (VM) 中安裝相比, 容器環境最關鍵的差異在於需要從 PVE 宿主機為容器啟用 TUN 設備。 # 前置需求 一台運作中的 Proxmox VE 伺服器。 一個已建立的 LXC 容器 (建議使用 Debian 或 Ubuntu)。 知道您要安裝 Tailscale 的容器 ID (CT ID)。 # 安裝步驟 整個過程分為兩大部分:首先在 PVE 宿主機上進行設定,然後進入容器內部安裝 Tailscale。 ## 第一部分:PVE 宿主機設定 (啟用 TUN) 這是最關鍵的一步。若未執行此設定,Tailscale 服務將因無法建立虛擬網路介面而啟動失敗。 登入 PVE 宿主機 透過 SSH 或直接在主機的終端機登入您的 Proxmox VE 伺服器 (不是 CT 容器)。 編輯容器設定檔 找到並編輯目標容器的設定檔。檔案路徑通常為 /etc/pve/lxc/YOUR_CT_ID.conf。 ```bash # 請將 100 換成您容器的實際 ID nano /etc/pve/lxc/100.conf ``` 新增設定 在設定檔的文末,新增以下兩行: ```bash= # 授權容器存取 TUN 設備 lxc.cgroup2.devices.allow: c 10:200 rwm lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file ``` 重新啟動容器 儲存檔案後,回到 PVE 的網頁管理介面,或使用以下指令完整關機再開機 (Shutdown -> Start),以確保設定生效。僅用 Reboot 可能會失敗。 ``` # 請將 100 換成您容器的實際 ID pct shutdown 100 pct start 100 ``` # 第二部分:進入 LXC 容器內部操作 宿主機設定完成後,現在可以進入容器內部安裝 Tailscale。 登入您的 LXC 容器 從 PVE 網頁介面開啟主控台,或透過 SSH 登入您的容器。 安裝 Tailscale 執行官方提供的一鍵安裝腳本: ``` curl -fsSL https://tailscale.com/install.sh | sh ``` 啟動 Tailscale 並連線 執行 tailscale up 指令,它會提供一個網址讓您登入並授權此新節點。 ``` sudo tailscale up ``` # 設定開機自動啟動 (強烈建議) ``` sudo systemctl enable tailscaled ``` ## 驗證安裝 檢查服務狀態:確認 tailscaled 服務正在 active (running)。 `systemctl status tailscaled` 檢查 Tailscale 狀態:查看 Tailscale 的連線狀態與節點資訊。 `tailscale status` 查看 Tailscale IP:顯示此節點的 100.x.x.x IP 位址。 `tailscale ip -4` # 啟動 SSH 服務 ``` sudo systemctl start ssh ``` # 新增使用者 步驟一:執行 adduser 指令 ``` sudo adduser gemini ``` 設定密碼:系統會要求您為新使用者 gemini 輸入兩次密碼。 ``` Adding user `gemini' ... Adding new group `gemini' (1001) ... Adding new user `gemini' (1001) with group `gemini' ... Creating home directory `/home/gemini' ... Copying files from `/etc/skel' ... New password: <-- 輸入您的密碼 Retype new password: <-- 再次輸入密碼 passwd: password updated successfully ``` 授予新使用者 sudo 權限 ``` sudo usermod -aG sudo gemini ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up