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


進行 sing-box Linux 客戶端設定時,可先將 mixed 入站綁定至 127.0.0.1:2080,接駁已有授權的遠端端點,再讓一個應用程式明確使用這個本機連接埠。本文採用 Ubuntu 24.04 LTS、sing-box 1.14.3 及 curl,不設定全機流量擷取。內容按官方文件整理,未進行完整端到端實測。[1]
關鍵要點
- SOCKS、HTTP 描述本機入口;VLESS/REALITY 描述本例的遠端連線。
- 設定檢查通過及連接埠正在監聽,均不等於出口可用。
- 以錯誤憑證及本機程序停止後的新請求檢查失敗行為。
- 回環位址限制一般遠端存取,並不驗證其他本機用戶的身份。
- 保留原有服務與代理設定,只撤銷今次操作。
先參考自建方案規劃指南,釐清端點、憑證、更新及還原由誰負責。應用程式不支援明確指定代理時,先閱讀 TUN 與系統代理的覆蓋範圍比較,再決定是否改變任務。本文不能確認 UDP、IPv6、DNS 或其他應用程式的覆蓋情況。
你需要自有或獲准使用的 VLESS/REALITY 端點,包括位址、TCP 連接埠、UUID、REALITY 公鑰、short ID、獲准的伺服器名稱及 flow。向管理員取得準確資料;只有訂閱名稱或 IP 位址並不足夠,不要從公開節點清單取得憑證。
以 cat /etc/os-release 確認 Ubuntu 24.04 LTS,以 uname -m 確認架構。在官方 1.14.3 發行頁選擇相應 Linux 壓縮檔:x86_64 用 amd64,aarch64 用 arm64。在私人目錄解壓,再將執行檔放到你新建的 $HOME/.local/lib/sing-box-1.14.3/sing-box;目標已存在便停止。採用官方發行渠道及可取得的發行完整性核對說明,不執行來歷不明的安裝指令碼。[1][2]
這種用戶目錄安裝方式不會替換系統套件或啟用服務。不要混用其他安裝方式的服務管理指令。操作前私下備份相關設定檔及應用程式代理偏好,記錄現有系統代理或 VPN,並維持原狀。
SB_BIN="$HOME/.local/lib/sing-box-1.14.3/sing-box"
"$SB_BIN" version
pgrep -a -x sing-box
ss -ltn 'sport = :2080'
版本應顯示 1.14.3,連接埠檢查不應找到既有監聽。pgrep 沒有相符結果屬正常;程序資料可見範圍有限,不能據此判定全機沒有其他代理。如有服務或連接埠衝突,先確認負責者並停止今次操作,不要終止原有程序。使用其他核心版本前,先核對遷移說明及欄位。[3]
建立新的私人目錄。下方限制權限的 umask 只在命令替換的子 shell 內生效,不會改變目前終端機建立檔案的預設權限。保存印出的路徑。第二個終端機要使用同一目錄,不要再建另一個。
LOCAL_PROXY_DIR=$(
umask 077
mktemp -d "$HOME/sing-box-local.XXXXXX"
)
printf '%s\n' "$LOCAL_PROXY_DIR"
用本機編輯器將以下內容儲存為該目錄內的 config.json。檢查或啟動前,替換所有大寫佔位符。 443 只是示例,須配合端點實際連接埠。本範本假設 VLESS over TCP 配合 REALITY 與 Vision;如端點採用其他 flow 或傳輸方式,應索取受支援的設定,不要猜測欄位。[4][5][6]
{
"log": { "level": "info" },
"inbounds": [
{
"type": "mixed",
"tag": "local-mixed",
"listen": "127.0.0.1",
"listen_port": 2080,
"set_system_proxy": false
}
],
"outbounds": [
{
"type": "vless",
"tag": "authorized-exit",
"server": "YOUR_SERVER_IP",
"server_port": 443,
"uuid": "YOUR_AUTHORIZED_UUID",
"flow": "xtls-rprx-vision",
"network": "tcp",
"tls": {
"enabled": true,
"server_name": "YOUR_APPROVED_SERVER_NAME",
"insecure": false,
"utls": { "enabled": true, "fingerprint": "chrome" },
"reality": {
"enabled": true,
"public_key": "YOUR_REALITY_PUBLIC_KEY",
"short_id": "YOUR_SHORT_ID"
}
}
}
],
"route": { "final": "authorized-exit" }
}
| 替換項目 | 取得及核對內容 |
|---|---|
YOUR_SERVER_IP、server_port | 獲授權端點的數字 IP 位址及 TCP 連接埠;使用 IP 可避免此處額外解析伺服器連線位址。 |
YOUR_AUTHORIZED_UUID | 端點目前啟用的 VLESS 用戶識別碼。 |
YOUR_APPROVED_SERVER_NAME | 該 REALITY 端點指定的伺服器名稱,不一定等於伺服器 IP。 |
YOUR_REALITY_PUBLIC_KEY | 伺服器的 REALITY 公鑰,絕不可填私鑰。 |
YOUR_SHORT_ID、flow | 端點接受的準確 short ID,以及相符的 Vision 設定。 |
核心、入站及出站的分工說明可協助分清角色。sing-box mixed 入站接收本機 SOCKS/HTTP,並不會令遠端 HTTP 代理變成相容 VLESS。設定明確指定最終出站,沒有直接連線後備路徑。[4][5][7]
set_system_proxy: false 阻止這個實例自動改動系統代理。沒有設定 users,本機入口便毋須認證:127.0.0.1 限制網絡可達範圍,並不限制哪個本機帳戶可以使用。共用主機應先評估 SOCKS 監聽的信任邊界。保護目錄和憑證,不要把它們貼到問題報告。[4][8]
在準備設定的第一個終端機,以一般用戶執行:
"$SB_BIN" check -c "$LOCAL_PROXY_DIR/config.json"
只有成功結束才繼續。檢查失敗時保留原有可用設定,只修正獨立檔案中的 JSON、佔位符或不支援欄位。檢查不能證明端點授權、遠端可用或目標服務有回應;官方客戶端指南亦將本機代理入口與出站行為分開說明。[9]
"$SB_BIN" run -c "$LOCAL_PROXY_DIR/config.json"
保持此終端機開啟,在第二個終端機執行 ss -ltnp 'sport = :2080'。預期 TCP 監聽為 127.0.0.1:2080;能看到程序資料時,應屬於今次實例。如顯示 0.0.0.0、[::]、區域網絡位址或非預期程序,按 Ctrl-C 停止今次實例並查明原因;不要加入防火牆例外或改用 root 掩蓋啟動失敗。[8]
在第二個終端機將 CHECK_URL 改成你獲准請求的 HTTPS 位址。盡量選擇自己控制、回應可預期的服務;下方佔位位址不能直接使用。逐條執行,私下記錄結束碼、回應和對應的程序日誌。
CHECK_URL="https://YOUR_AUTHORIZED_TEST_HOST/"
curl -q --noproxy "" --proxy http://127.0.0.1:2080 \
--connect-timeout 5 --max-time 20 --fail --show-error "$CHECK_URL"
curl -q --noproxy "" --proxy socks5h://127.0.0.1:2080 \
--connect-timeout 5 --max-time 20 --fail --show-error "$CHECK_URL"
curl 首個選項 -q 避免隱藏的 .curlrc 干擾,空白 --noproxy 覆蓋略過代理清單。明確指定的代理只適用於這兩次呼叫。HTTP 代理存取 HTTPS 會使用 CONNECT;socks5h:// 把目標域名交給代理,socks5:// 則由 curl 在本機解析。本設定會將傳入域名送到 VLESS 端點,但不審核遠端解析器或全機 DNS 流量。[10]
核對 curl 出口時,將新請求與受控目標服務記錄的來源位址對應;如服務前有可信反向代理,亦須考慮其記錄方式。預期來源為獲授權伺服器的實際出口,可能與連接伺服器的位址不同。單憑狀態碼或成功下載網頁,不能確認出口位址。
如另行將瀏覽器明確設為同一本機入口,可在該瀏覽器開啟 IP 查詢工具比較出口。結果只代表存取工具的那次請求;未設定的瀏覽器不能驗證 curl,兩者亦不能證明其他應用程式的路徑。改動瀏覽器偏好前保存原值,完成後還原。
下表列出方法、預期及失敗處理,並非已執行的測試結果。使用新的 curl 呼叫,不要用快取網頁或既有連線。
| 方法 | 預期 | 失敗處理 |
|---|---|---|
| 按 Ctrl-C 停止今次前台實例,確認沒有監聽,再重複兩種明確指定代理的請求。 | 兩個新請求均無法連接本機入口。 | 如有成功,核對實際參數、其他監聽程序及呼叫包裝;不能聲稱失敗時已阻止直接連線。 |
原實例停止後,將 config.json 複製為 invalid.json;只把 UUID 換成格式有效、但經管理員確認未獲授權的 UUID。檢查及執行副本,再重複兩種請求。 | 本機可能成功監聽,但遠端認證失敗,無法取得受保護目標的預期回應。 | 如仍收到內容,停止並確認實際使用的檔案、程序、端點與身份。 |
| 獨立實例監聽時,由另一部獲准裝置存取主機區域網絡 IP 的 2080 連接埠,同時檢查本機 socket。 | 另一裝置不能使用入口;本機仍綁定至 127.0.0.1。 | 遠端失敗也可能只是防火牆效果。如綁定範圍更廣,停止並修正;不要為測試開放連接埠。 |
錯誤 UUID 分支須在第一個終端機先執行 "$SB_BIN" check -c "$LOCAL_PROXY_DIR/invalid.json",才執行 "$SB_BIN" run -c "$LOCAL_PROXY_DIR/invalid.json"。完成後停止副本,只在需要繼續檢查時重啟原設定。始終只執行一個今次實例,不要改動真正伺服器的憑證來製造負向結果。
這份 sing-box Linux 客戶端設定範圍有限:僅 TCP 的出站不能驗證 UDP 轉送;IPv4 回環入口不會擷取全機 IPv6。其他本機用戶仍可能使用免認證入口。如信任模型不合適,停止並另行設計本機認證或隔離。[4][5]
將改過的應用程式偏好還原為已記錄數值。curl 指令沒有建立持續設定,停止使用明確指定代理的參數即可;不要全域清空環境變數,或重設今次沒有改動的系統網絡。
在第一個終端機對今次實例按 Ctrl-C,再以 ss -ltnp 'sport = :2080' 確認其監聽已消失。如仍有監聽,清理前先識別程序,不使用 killall 或停止無關服務。刻意仍指向已停止入口的請求應失敗;應用程式還原後的一般存取行為須另行檢查。
確認目錄正是今次建立的路徑後,只刪除兩個已知檔案及空目錄:
rm -f -- "$LOCAL_PROXY_DIR/config.json" "$LOCAL_PROXY_DIR/invalid.json"
rmdir -- "$LOCAL_PROXY_DIR"
確認還原前保留私人基線備份。獨立安裝的程式可留下重用;不再需要時,只移除該確切的用戶目錄安裝。本流程沒有建立自動啟動服務、系統路由或系統代理變更,毋須撤銷這些設定。
由最先失敗的一層開始。沒有監聽,先看前台錯誤、檔案路徑及連接埠歸屬;有監聽但遠端失敗,與管理員核對端點、UUID、公鑰、short ID、flow、伺服器名稱及時鐘。不要關閉憑證驗證,亦不要加入直接連線後備路徑。
只有域名請求失敗時,比較 curl 本機解析、代理側解析及遠端服務的解析政策,不要因單一應用程式失敗就改系統 DNS。如下載的設定似乎未生效,用執行中設定核對清單定位;應用程式結果不一致時,按裝置及應用程式排障次序分清各自設定,不擴大代理範圍。
可用的 sing-box Linux 客戶端設定需要明確的程式版本、私人設定檔、回環監聽、應用程式明確指定代理的請求,以及可驗證的還原方法。自行記錄方法、預期與實際觀察;設定解析、瀏覽器 IP 結果及另一裝置連線失敗,各自回答不同問題。
不是。Mixed 在本機接收 SOCKS 和 HTTP,本例透過 VLESS/REALITY 出站轉送。遠端端點須配合出站設定,而非本機應用程式內的代理類型名稱。
檢查可以找出設定問題,卻不能證明遠端工作階段可用。本機開始監聽後,錯誤憑證、無法使用的端點、目標限制或解析行為仍可能令新請求失敗。
各應用程式自行選擇代理行為。本文指令明確設定 curl,瀏覽器可能採用不同設定或沒有代理。應檢查目標應用程式的請求,並比較實際設定。
不能。它只讓該次 curl 請求把目標域名交給代理,不在 curl 本機解析。其他應用程式、背景服務及遠端解析器有各自行為,本文沒有驗證這些範圍。
本文不能確認這種覆蓋。範例把 VLESS 出站限制為 TCP,並在 IPv4 回環位址接收連線。UDP 應用程式及全機 IPv6 須獨立設計和驗證,HTTP 成功並不足夠。
可能可以。回環是網絡邊界,本入口沒有用戶認證。私人設定檔保護檔案內容,並不會將監聽連接埠專屬於某個帳戶;共用主機須額外評估信任邊界。
還原改過的應用程式偏好,停止向 curl 傳入本機代理參數。確認今次實例的監聽消失,再檢查一般存取;不要為還原這次獨立操作而改動原有 VPN 或系統服務。
本文只適用於自有或獲准使用的系統及端點,請遵守適用法律與網絡政策。檢查內容是供讀者執行的方法及預期,不代表作者已完成實測,亦不代表全機已受保護。
來源:
Sources checked 2026 年 10 月 11 日。
延伸閱讀:
註冊即可免費體驗全部高級功能。
*只限新用戶;每位用戶只可獲得一次試用。