Trojan 代理伺服器架設:憑證、認證拒絕與復原驗證

Trojan 代理伺服器架設:憑證、認證拒絕與復原驗證

Ryan Foster
2026年10月11日· 8 分鐘讀完

這篇 Trojan 代理伺服器架設採用 Xray-core v26.3.27、你控制的域名及有效 TLS 憑證。先建立受限測試入口,再分別驗證代理轉送、TLS 可用性、錯誤認證資料、撤銷與復原;作者未完成端到端部署實驗。

關鍵要點

  • 沒有合法域名、匹配憑證或獨立管理通道便停止。
  • 固定一種實作,不把 Trojan-gfw 或 Trojan-rs 指令混入 Xray。
  • 保持憑證驗證,本地 SOCKS 只監聽回環位址。
  • 備援網站有回應,不代表代理認證成功。
  • 續期、重啟、認證資料撤銷及復原須各自驗收。

這條 Trojan 代理伺服器架設路線適合誰?

預留伺服器前先讀自建網絡責任指南。參考環境是專用、未使用的 Ubuntu 24.04 LTS 主機,獨立授權客戶端執行同一 Xray 版本。本例只轉送明確設定的 TCP 應用程式,不證明全裝置 DNS、IPv6、UDP 或 TUN 覆蓋。

Trojan 協議說明另講機制。協議將密碼衍生的認證值與請求置於 TLS 內。[1]固定版本支援以下欄位,但對 Trojan 發出棄用警告;固定版本是交代示例,不是建議忽略維護或將來移除。[3]需求或客戶端支援不同,可先比較 VLESS/REALITY 與 Trojan 的取捨。

文件匹配不等於實測相容。本例客戶端是同版本官方 Xray core,避免猜測第三方應用程式匯入格式。換客戶端前核對官方協議、傳輸、TLS 名稱及認證欄位,再自行完成驗收。

步驟 1:確立域名、憑證及復原邊界

使用自有或明確獲授權營運的域名,按既有獲准 DNS 流程指向伺服器。經授權簽發機構或 ACME 流程取得該名稱的有效憑證。簽發方式視供應商而定,是部署前提,不能借用第三方網站身份或內容。

開放監聽前檢查 Trojan TLS 憑證鏈、有效期、私鑰配對及續期負責人。域名或憑證缺少、過期或不匹配便停止,不能用 insecure、略過驗證、網上共用秘密或無關名稱的憑證補救。

盤點監聽、服務、安裝路徑、防火牆管理工具及復原主控台。預留伺服器 TCP 18443 和客戶端回環 TCP 10808。高連接埠免除特權連接埠需求,但運行 capabilities 仍要審查。Xray、安裝路徑、服務身份或連接埠已屬其他工作時,停止全新安裝做法,另審遷移。

維護期間保留獨立管理。供應商及主機初始入站只准授權測試客戶端位址。無限制出站可到達主機可達目的地,應使用沒有敏感內部路由的隔離主機,或先實施經審查的目的地存取政策;認證本身不限制目的地。

步驟 2:安裝經審查核心並建立最小認證

官方 tag 是 v26.3.27。[5]將官方安裝腳本先下載成檔案,審查下載、檔案寫入、服務及帳戶變更和移除行為,記錄上游修訂。安裝腳本獨立於核心 tag 持續更新;shell 語法通過不表示可信。[6]

以下是專用主機的讀者操作,不是作者執行結果。審查腳本並確認路徑、身份未佔用後,才作特權安裝:

curl --fail --location --proto '=https' --proto-redir '=https' \
  --output install-release.sh \
  https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh
less install-release.sh
bash -n install-release.sh
sudo adduser --system --group --no-create-home xray-lab
sudo bash install-release.sh install --version v26.3.27 --install-user xray-lab
sudo systemctl disable --now xray.service
sudo systemctl is-enabled xray.service
/usr/local/bin/xray version
sudo systemctl cat xray.service

全新安裝會啟動並啟用服務。disable --now 停止及取消開機啟用,檢查應顯示 disabled。按實際單元確認 /usr/local/bin/xray、/usr/local/etc/xray/config.json 與運行帳戶 xray-lab。路徑異常、root 運行或版本不符都要停止,不可憑預設繼續。

在私人終端產生唯一高熵臨時密碼,例如 openssl rand -hex 32。只存受保護設定,不放 shell 參數、截圖或工單。日後每部裝置獨立認證資料,方便撤銷。此 tag 入站使用 clients[].password,不混入 VLESS UUID、Vision flow 或 REALITY 密鑰。[3]

步驟 3:設定監聽及匹配本地客戶端

替換伺服器 JSON 全部大寫預留值。SERVER_LISTEN_IPV4 須實際分配於本機,供應商 NAT 公網位址未必可綁定。把憑證鏈與私鑰放在所列私人路徑,供 xray-lab 讀取;目錄 root:xray-lab、750,檔案 640。不要全域放寬簽發工具目錄,由續期負責人部署專用受保護副本。

{
  "log": {"access": "none", "loglevel": "warning"},
  "inbounds": [{
    "tag": "trojan-lab", "listen": "SERVER_LISTEN_IPV4", "port": 18443,
    "protocol": "trojan",
    "settings": {"clients": [{"password": "DISPOSABLE_PASSWORD", "email": "lab-device"}]},
    "streamSettings": {
      "network": "raw", "security": "tls",
      "tlsSettings": {"certificates": [{
        "certificateFile": "/usr/local/etc/xray/tls/fullchain.pem",
        "keyFile": "/usr/local/etc/xray/tls/privkey.pem"
      }]}
    }
  }],
  "outbounds": [{"protocol": "freedom", "tag": "direct"}]
}

設定檔同樣為 root:xray-lab、640,目錄 750。用 sudo -u xray-lab /usr/local/bin/xray run -test -config /usr/local/etc/xray/config.json 驗證,再只啟動專用 xray.service 並查看 ss -lntp。語法通過不證明監聽、認證或轉送成功;只開放經審查 TCP 入站規則,保留管理政策。

入站文件說明 Trojan 與可選 fallback 行為。[2]本最小示例沒有備援網站。固定傳輸解析器支援 raw、TLS 憑證路徑及客戶端 serverName。[4]不加其他實作欄位,也不為消除錯誤而停用信任驗證。

獨立授權客戶端將以下儲存為私人 client.json,替換端點域名及相同密碼。PROXY_DOMAIN 須匹配憑證。回環 SOCKS 只支援 TCP;共用主機的其他本地用戶可能存取無認證回環入口,應用隔離客戶端或經審查的本地存取控制。[8]

{
  "log": {"access": "none", "loglevel": "warning"},
  "inbounds": [{
    "listen": "127.0.0.1", "port": 10808, "protocol": "socks",
    "settings": {"auth": "noauth", "udp": false}
  }],
  "outbounds": [{
    "protocol": "trojan",
    "settings": {"address": "PROXY_DOMAIN", "port": 18443, "password": "DISPOSABLE_PASSWORD"},
    "streamSettings": {
      "network": "raw", "security": "tls",
      "tlsSettings": {"serverName": "PROXY_DOMAIN"}
    }
  }]
}

client.json 只供擁有者讀寫,權限 600;確認 xray version,執行 xray run -test -config client.json,再於私人前景終端執行 xray run -config client.json。其他網絡客戶端保持原樣。10808 已佔用,不可終止其擁有者;在本次設定及請求一致改用空閒連接埠。

步驟 4:分開驗證 TLS、正確認證及拒絕

在授權客戶端替換真實域名作憑證檢查。OpenSSL 文件支援主機名驗證及遇驗證錯誤時返回失敗。[7]這只建立 TLS 證據,並非 Trojan 認證:

openssl s_client -connect PROXY_DOMAIN:18443 -servername PROXY_DOMAIN \
  -verify_hostname PROXY_DOMAIN -verify_return_error </dev/null

檢查憑證鏈、名稱、日期及驗證結果。信任或名稱失敗便停止,修復授權憑證部署,不用免驗證選項。測代理轉送時,將下列授權任務主機及路徑換成自有或可存取的目標,再對應目標自己的請求證據:

curl --fail --socks5-hostname 127.0.0.1:10808 https://AUTHORIZED_TASK_HOST/task

--socks5-hostname 要求 SOCKS 端解析目標名稱,不改變全裝置 DNS。[9]刻意驗證互聯網出口時,經明確設定的測試應用程式檢查可見出口位址,另查 DNS、IPv6 及失敗政策。TCP 示例不證明全裝置接管。

檢查讀者方法預期現象,並非實測結果
正確身份匹配密碼與有效 TLS 下建立新請求授權任務經預定代理到達目標
錯誤密碼只改臨時客戶端密碼,重啟該前景客戶端再請求不得認證轉送該任務
錯誤憑證名稱還原密碼,只把客戶端 serverName 改成無關名稱,重啟測試客戶端並發起新請求TLS 驗證拒絕,不轉送任務
還原基線還原正確名稱、密碼並重啟測試客戶端原許可任務再次可用
另設備援時獨立檢查自有備援回應與代理任務證據網站可用不能當成代理登入

每次修改客戶端設定後,只停止本次測試啟動的前景 Xray 程序,以 xray run -test -config client.json 驗證,再用 xray run -config client.json 重新啟動並發起新任務請求。編輯檔案不會令運行程序重新載入設定。[10]錯誤名稱案例須從私人客戶端輸出確認憑證名稱驗證錯誤;只有逾時或認證失敗,不能據此下結論。

錯誤名稱無需聯絡該域名:端點不變,只改 TLS 驗證身份。負面案例仍轉送時,關閉本次新增暴露,查看實際設定與客戶端接管後才繼續。不可接受無效憑證來「修復」失敗案例。

步驟 5:續期、重啟、撤銷及復原

指定續期負責人,記錄到期監察及獲准續期演練。簽發成功後,以相同受限權限部署匹配鏈與私鑰,由服務身份驗證,再經專用單元套用。客戶端獨立檢查真正提供的憑證並重測新授權任務;磁碟檔案已續期,不證明運行服務已採用。

正負案例通過後才啟用開機啟動,核對啟用狀態,並於獲准重啟時段檢查版本、路徑、身份、監聽及新轉送。沒有重啟授權,開機持久性仍未驗證;理解本文毋須實際重啟。

撤銷裝置時,從持久伺服器設定移除其密碼項,驗證後在獲准中斷時段重啟專用實例。重啟會終止該實例全部工作階段,不只被移除裝置。舊密碼的新連線必須無法轉送。後續測試產生新臨時密碼,同時確認新密碼接受、舊密碼拒絕。刪除客戶端檔案或訂閱不等於伺服器撤銷。

續期、重啟或設定變更失敗,只關閉新增入站暴露,還原上一組相容執行檔、設定及仍有效憑證與私鑰。不可從備份還原已洩露密碼或已撤銷私鑰。獨立確認原管理路徑及服務才再嘗試;沒有有效憑證就保持代理不可用,先修復信任。

決定誰長期維護憑證與服務時,參考VPS 維運與託管 VPN 服務,不暗示託管應用可匯入 Trojan 或管理此伺服器。有限失敗證據用Xray 伺服器日誌處理,完成後還原臨時日誌設定。

一次性部署實驗完成後,撤銷測試認證資料,只停止及停用其單元,移除所屬入站規則及初始盤點允許的資源。使用保留安裝腳本移除前,先審查行為;共用路徑即停止條件。獨立確認實驗前服務及管理,不可把停止指令當成清理成功。

總結

  • 先具備合法域名、有效 TLS 與獨立管理。
  • 固定經審查 Xray 實作,秘密留在私人設定。
  • TLS、授權轉送及負面案例分開驗收。
  • 在運行服務及新連線上確認續期和撤銷。
  • 只還原相容可信狀態,驗證自有測試資源已移除。

常見問題

沒有授權域名及憑證可以架設嗎?

不能按這條路線。開放前須有合法域名與有效匹配憑證。無關網站名、insecure 選項及公開共用認證資料都不符前提,應停止並另選受支援方案。

可以混用 Trojan-rs 教學與這份 JSON 嗎?

不可以。本例兩端固定 Xray-core v26.3.27,路徑、欄位及服務行為屬該實作。其他客戶端官方文件須先匹配協議與 TLS 要求,再另作相容測試。

看見備援網站代表代理正常嗎?

不是。TLS 或網頁回應可以獨立於代理認證存在。須有明確客戶端請求及授權目的地證據。本最小伺服器沒有備援,新增它便多一條須另審的路徑。

錯誤密碼應有甚麼結果?

新請求不得經代理轉送授權任務。只改臨時密碼、重啟測試客戶端,分清拒絕與備援回應;仍能轉送便停止暴露,檢查運行狀態後才繼續。

可以關閉憑證檢查來診斷嗎?

不可以。保持驗證,查看名稱、鏈、日期、密鑰配對及真正提供的憑證。憑證錯誤是停止條件,錯誤名稱測試是證明拒絕,不是繞過理由。

刪訂閱會撤銷伺服器密碼嗎?

不會。移除伺服器客戶端項目、驗證,了解全工作階段中斷後重啟專用實例,再以舊身份新連線重測。復原備份不可帶回洩露認證資料。

續期後沒有有效憑證怎麼辦?

保持代理不可用,經授權簽發流程修復信任。舊憑證與私鑰只在仍有效而且未洩露時才可還原。重查運行服務憑證及新轉送,磁碟有檔案並不足夠。

免責聲明: 本文是依據文件的操作流程,不是作者實測部署或相容保證。只操作授權資源及目的地,遵守法律和供應商條款;域名歸屬、憑證信任、範圍或復原無法確認便停止。

來源:

  1. The Trojan Protocol https://trojan-gfw.github.io/trojan/protocol.html
  2. Trojan — Xray inbound configuration https://xtls.github.io/en/config/inbounds/trojan.html
  3. Xray-core v26.3.27 Trojan configuration implementation https://github.com/XTLS/Xray-core/blob/v26.3.27/infra/conf/trojan.go
  4. Xray-core v26.3.27 TLS configuration implementation https://github.com/XTLS/Xray-core/blob/v26.3.27/infra/conf/transport_internet.go
  5. Xray-core v26.3.27 release https://github.com/XTLS/Xray-core/releases/tag/v26.3.27
  6. Xray-install — official installer https://github.com/XTLS/Xray-install
  7. openssl-s_client — OpenSSL 3.0 documentation https://docs.openssl.org/3.0/man1/openssl-s_client/
  8. SOCKS — Xray inbound configuration https://xtls.github.io/en/config/inbounds/socks.html
  9. curl — command-line manual https://curl.se/docs/manpage.html
  10. Xray-core v26.3.27 startup and configuration loading https://github.com/XTLS/Xray-core/blob/v26.3.27/main/run.go

Sources checked 2026 年 10 月 11 日。

開啟 3 天免費試用

註冊即可免費體驗全部高級功能。

*只限新用戶;每位用戶只可獲得一次試用。

Trojan 代理伺服器架設:憑證、認證拒絕與復原驗證 | AethoVPN