開啟 3 天免費試用
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。


3x-ui 部署只有在管理入口受控、未獲授權用戶被拒絕、還原資料庫不會復活已撤銷存取時,才算完成。本程序採用私人 SSH 管理通道和一個加密入站,復原驗收須由你在自己的獲授權環境執行。
關鍵要點
- 隱藏 URL 路徑不是認證,也不是網絡邊界。
- 管理員憑據必須與每位代理用戶的身份分開。
- 資料庫、憑證、版本及後續撤銷屬同一復原計劃。
- 管理介面運行與代理流量成功是兩項不同驗收。
自建運維責任圖區分主機、管理面和用戶流量的擁有人。管理介面簡化輸入,也成為值得保護的控制點。不想負責資料庫和憑證維護時,應先比較自行維護 VPS 與託管出口的責任。
WireGuard 裝置管理應採用wg-easy 的裝置管理路線。本文處理 3x-ui 及其 Xray 核心;VLESS、REALITY 和 Vision 的差異解釋了為何不能任意互換這些設定名稱。
適用範圍: 專用 Ubuntu 24.04 LTS 主機、原生 3x-ui v3.9.0、預設 SQLite、另一部兼容客戶端,以及你控制的域名已有的有效憑證。不涵蓋 PostgreSQL、容器或既有正式管理介面。本文依據官方來源,作者未完成端到端實測;標題的復原驗證是讀者必須執行的驗收,不是作者的成功聲明。[1]
私下記錄原有埠、防火牆、路由、DNS、服務單元及憑證續期工作。確認新的 SSH 連線和獨立供應商控制台可用。安裝期間在供應商端關閉已知管理路徑以外的入站,因為安裝器可能在你修改設定前啟動服務。
官方原生路線使用特權腳本。下載確切版本腳本,審閱套件變更、封存下載、服務安裝及憑證分支,不直接執行遠端管道。語法檢查不等於保安審閱。版本參數固定封存;不帶參數可能解析至另一版本。[2][3]
umask 077
curl --fail --show-error --location \
https://raw.githubusercontent.com/MHSanaei/3x-ui/v3.9.0/install.sh \
-o install-3x-ui-v3.9.0.sh
less install-3x-ui-v3.9.0.sh
bash -n install-3x-ui-v3.9.0.sh
確認項目歸屬並審閱所選分支全部後續下載後才繼續。核對官方發行完整性資料;安裝器報告不匹配或無法取得必要檔案時停止,不改用不明鏡像、不關閉 TLS 校驗,也不為了繼續而用開發版。
在真正終端互動執行,選擇 SQLite。SSH 專用管理路線應選明確標示 Skip SSL — behind reverse proxy / SSH tunnel only 的選項,並確認只綁定回環地址。不要接受預設憑證分支,也不為此開放 80 埠。步驟 3 的代理入站會用自己的已有憑證。[2]
sudo bash install-3x-ui-v3.9.0.sh v3.9.0
sudo systemctl stop x-ui
sudo /usr/local/x-ui/x-ui setting -listenIP 127.0.0.1 -port 2053
sudo systemctl start x-ui
sudo ss -lntup
明確設定指令再次固定管理地址和埠。前面任何指令失敗便停止調查,不盲目繼續。產生的憑據、路徑和安裝結果檔案須私下保存。確認管理監聽為 127.0.0.1:2053;即使供應商暫時擋住,萬用監聽也屬邊界失敗。[5]
在工作站替換大寫佔位符,本地 2053 必須空閒。指定信任檔案中的主機密鑰須經獨立核對;不匹配便停止,不為了開啟管理介面接受未知密鑰。
ssh -N -T -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=yes \
-o UserKnownHostsFile=/PATH/TO/VERIFIED_KNOWN_HOSTS \
-L 127.0.0.1:2053:127.0.0.1:2053 ADMIN@SERVER_IP
開啟 http://127.0.0.1:2053/BASE_PATH/,把 BASE_PATH 換成實際產生的路徑。此 HTTP 經 SSH 傳送,並非公開管理入口。登入後設定獨立管理員名稱及強密碼;能安全保存復原材料時,啟用本版本支援的第二因素。
結束瀏覽器工作階段,再用新的私密視窗確認必須登入,錯誤憑據不能執行特權操作。從獲授權外部主機檢查公網 TCP 2053 在相關兩種地址族均不可達,重新啟動後仍須如此。隨機埠或路徑只減少意外發現,不能取代檢查。
沒有獨立需要及政策時,不啟用遠端 API、機械人或訂閱監聽。檢查全部監聽,不能只看管理埠。匯出 URL 可能含憑據;即使訂閱端點屬私人,也須遵守訂閱連結的秘密處理規則。
本有限例子使用普通 TLS 上的 VLESS/TCP,不採用 REALITY 或 Vision。在 Inbounds 按表新增條目,再加入獨立命名的客戶端,由管理介面產生 UUID。VLESS 自身沒有傳輸加密,本例必須使用 TLS。[6][7][8]
| 欄位 | 值或要求 |
|---|---|
| 協議/傳輸 | VLESS/TCP,不設定 Vision flow |
| 監聽/埠 | 0.0.0.0/TCP 8443,起初由供應商阻擋 |
| VLESS decryption | none,這是協議欄位,不代表可移除 TLS |
| 傳輸保安 | 啟用 TLS,憑證有效且對應 proxy.example.com |
| 憑證/密鑰 | /etc/x-ui/tls/fullchain.pem//etc/x-ui/tls/privkey.pem |
| 客戶端身份 | 每人或每裝置新 UUID,不重用管理員密碼 |
| 可選監聽 | 未使用的訂閱、API、機械人保持關閉 |
替換例子域名,透過已批准的簽發方式準備憑證。開放入口前確認名稱、有效期、憑證鏈、匹配私鑰及續期負責人。按實際服務用戶所需讀取權限,把檔案安裝到上述路徑;私鑰不能人人可讀,不以遞迴放寬權限解決問題。
儲存入站並套用管理介面的 Xray 設定變更,檢查服務狀態及設定/憑證錯誤日誌,私下保存匯出。在獨立客戶端填寫實際入口、埠、新 UUID、TCP、TLS 和對應伺服器名稱,啟用憑證驗證,Vision flow 留空。本地代理只綁定 127.0.0.1,不要公開給區域網絡。
透過供應商及主機政策,只暫時允許獲授權測試客戶端來源存取 TCP 8443,不開放管理埠。為受測應用明確選擇新設定,再核對它的可見出口 IP,與主機已知出口比較。經 SSH 開到管理介面不能證明業務路徑成功。
sudo systemctl status x-ui --no-pager
sudo journalctl -u x-ui --since "10 minutes ago" --no-pager
sudo ss -lntup
| 檢查 | 預期條件 | 失敗處理 |
|---|---|---|
| 未登入存取管理介面 | 特權操作被拒絕 | 關閉存取,檢查帳戶及工作階段政策 |
| 正確 UUID 與驗證通過的 TLS | 新代理 TCP 請求成功,出口正確 | 區分憑證/名稱、身份、路由及核心錯誤 |
| 獨立錯誤 UUID 測試設定 | 沒有新的授權代理請求 | 停止開放,核對真正接收流量的入站/設定 |
| DNS、IPv6、應用 UDP | 各自符合所選覆蓋政策 | 記錄不支援路徑,不外推 TCP 結果 |
| 客戶端中斷 | 實際回退符合政策 | 不從應用代理推論斷線保護 |
負向設定只用受控測試流量。本例驗收 TCP;UDP 須有確實承載它的客戶端及協議模式、受控目的地,以及獨立結果。DNS 可能在應用代理外解析,支援 IPv6 的應用亦可能走另一條路,必須分開檢查。
撤銷前建立第二位獨立身份用戶作對照。刪除或停用第一位,套用 Xray 變更,終止已有客戶端工作階段,以保留 UUID 重連,要求新請求被拒絕而對照用戶仍正常。於批准維護窗口重新啟動 x-ui 後重複檢查。舊連線流及累計流量不能作負向驗證。
私下登記管理介面/核心版本、SQLite 路徑、TLS 檔案、續期設定、服務設定、用戶、權杖和供應商規則。預設資料庫為 /etc/x-ui/x-ui.db;即使憑證放在同一目錄,仍是獨立復原輸入。PostgreSQL 需要專屬資料庫備份方法,不適用此檔案複製程序。[4]
使用新的快照目錄,於維護窗口停止管理介面/核心,每條指令確認成功。複製整個已停止的 SQLite 目錄,也保留伴隨資料庫檔案。複製失敗時保留來源,調查後有意識地恢復服務。
sudo install -d -m 700 /root/3x-ui-backup-20261011
sudo systemctl stop x-ui
sudo cp -a /etc/x-ui /root/3x-ui-backup-20261011/x-ui
sudo chmod -R go-rwx /root/3x-ui-backup-20261011
sudo systemctl start x-ui
實際憑證路徑若不同,須另納入外部憑證、續期及帳戶材料。限制備份權限前,記錄原有擁有人和模式。將受限異機副本加密;可讀資料庫含敏感客戶端及管理員狀態,不可為了方便用機械人或公開聊天傳送。
獨立保存附日期的用戶撤銷及憑據輪換紀錄。復原使用隔離替代主機,安裝相同管理介面及 Xray 核心版本,關閉業務及可選監聽入口。把替代主機現有目錄保留在下列新的回退名稱;快照來源須存在,新回退目的地須未被佔用。沒有獨立回退副本時,不要在唯一在線實例執行。
sudo systemctl stop x-ui
sudo mv /etc/x-ui /etc/x-ui.before-restore-20261011
sudo cp -a /root/3x-ui-backup-20261011/x-ui /etc/x-ui
備份副本已移除群組及其他用戶存取。複製後先按清單還原原有擁有者和權限,尤其是實際服務身份讀取 SQLite 與 TLS 檔案的權限;私鑰仍不可供無關用戶讀取。完成後才執行以下啟動指令。
sudo /usr/local/x-ui/x-ui setting -listenIP 127.0.0.1 -port 2053
sudo systemctl start x-ui
舊資料庫可能還原舊用戶及管理員憑據。開放前經 SSH 管理介面重做其後全部撤銷和輪換,檢查憑證擁有人、名稱、到期時間及續期工作。重複正確/錯誤憑據、撤銷/對照用戶、重新啟動和監聽檢查。舊撤銷 UUID 重新可用即屬復原失敗,須關閉入口,修正持久化及核心運行狀態。不要強行將舊結構塞入新安裝,也不要混合復原與升級。[4]
遺失認證時,透過獲授權主機控制台及文件規定的 x-ui 選單重設帳戶,再登入並重建原定認證政策。不要為診斷關閉第二因素或公開管理介面。復原權限不明時,保持入口關閉並停止。
退役先關閉此入站的供應商規則,撤銷用戶和匯出,停止並停用 x-ui。檢查本安裝擁有的全部監聽及續期工作,按保留期限保存加密備份後,再採用官方移除路線。只刪除此部署的 DNS 和雲端資源,檢查無關服務及新的管理連線。移除軟件不代表取消主機計費。
不足,路徑可能透過歷史、匯出或日誌洩露。應限制管理監聽,並對每次特權操作要求真正身份認證。
SSH 通道只保護此處的管理瀏覽器路徑。獨立 VLESS 入站仍需自己的 TLS、用戶身份、防火牆政策及客戶端驗證。
這是 VLESS 協議設定值,不是建議公網明文傳送。本例另行要求普通 TLS,客戶端必須正常驗證憑證。
應採用一致備份機制,或先停止本專用安裝再複製資料庫目錄。寫入期間複製,可能取不到一致可復原狀態。
不要假設包含,應獨立保存真實憑證和私鑰路徑、存取權限及續期設定。即使與資料庫相鄰,亦屬不同復原材料。
備份早於刪除時可能復活用戶。開放入口前應重做獨立撤銷紀錄,並驗證舊 UUID 的新請求在重新啟動後仍被拒絕。
本文不宣稱作者已實測復原。標題描述讀者必須執行的驗收,結果須來自你的獲授權環境,不能把預期當成功。
來源:
Sources checked 2026 年 10 月 11 日。
延伸閱讀:
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。