知識庫 使用 Profitserver 服務的簡單說明
主要 知識庫 Shadowsocks 指南 (shadowsocks-rust / Shadowsocks-libev):VPS、Windows、macOS、Linux、Android、iPhone

Shadowsocks 指南 (shadowsocks-rust / Shadowsocks-libev):VPS、Windows、macOS、Linux、Android、iPhone


Shadowsocks 是一種輕量級的、基於 SOCKS5 的加密代理協議,最初設計用於繞過普通網路上的流量整形和封鎖。與完整的 VPN 不同,它只代理應用程式明確傳送給它的流量,幾乎沒有協定開銷,即使在頻寬受限的連線上也能運作良好。它不像 VLESS+Reality 那樣試圖模擬真實的 TLS 握手——它的優勢在於簡單易用、廣泛的客戶端支援(路由器、手機、瀏覽器)以及極低的延遲,但代價是在經過嚴格監控的網路中更容易透過流量模式識別。

目前有兩個正在積極維護的伺服器實作:

  • shadowsocks-rust — shadowsocks 組織用 Rust 寫的現代參考實作。它支援較新的 AEAD-2022 密碼系列,目前仍在積極開發中,本指南將詳細介紹如何安裝和設定該實作。
  • shadowsocks-libev 是較早的 C 語言實作。它仍在維護以修復 bug,並以現成的 apt 軟體包形式提供,自帶 systemd 單元。如果您想要最簡單的安裝方式,無需手動處理二進位文件,它是一個不錯的選擇。本指南在第 3 節中將其作為備選安裝路徑進行介紹。

本指南說明如何透過命令列手動設定伺服器,無需使用 Web 控制面板或 Docker。請將所有出現的「IP 位址」欄位替換為您的 VPS 的實際 IP 位址。

你需要:一台運行 Ubuntu 22.04/24.04 或 Debian 11/12 的 VPS、root 權限、你的 VPS 的 IP 位址以及一個空閒的 UDP/TCP 連接埠(本指南使用 8388,即 Shadowsocks 的預設連接埠)。

還沒有伺服器?請參閱「如何訂購服務器並支付費用」。

想先與其他自架方案比較?請參閱Xray VLESS Reality Guide(基於 TLS 偽裝的替代方案)、AmneziaWG Server Deployment Guide(基於 WireGuard 的方案)或Hysteria2 和 TUIC 設定(另外兩種現代代理協定)。

正在連接伺服器

Windows(PuTTY)

開啟 PuTTY,在主機名字段中輸入您的 VPS IP 位址,將連接埠設定為 22,然後使用您的 VPS 提供者透過電子郵件傳送給您的密碼以 root 使用者身分登入。

伺服器 IP 位址:您的 IP 位址

login as: root

密碼:您的密碼

有關透過 PuTTY/SSH 連線的詳細步驟,請參閱如何透過 SSH 連線至 Linux 伺服器。

PuTTY 會話配置,用於 SSH 存取。 連接VPS後,使用PuTTY SSH終端。 已成功透過 SSH 登入 VPS。

Linux / macOS(終端機)

ssh root@your_IP_address

以下所有命令均在伺服器上的相同 SSH 會話中執行—這涵蓋了第 2 節到第 7 節,以及第 13 節中的伺服器端檢查。第 8 節到第 12 節(安裝和設定用戶端應用程式)則在您自己的 Windows/macOS/Linux/Android/iOS 裝置上執行,因為代理程式需要在該裝置上執行;這些章節中明確說明了哪些行(如果有)仍然與伺服器互動。

準備伺服器

更新系統

在安裝任何軟體之前,請先刷新軟體包清單並升級已安裝的軟體包:

apt update -y && apt upgrade -y
用於更新已安裝軟體包的命令。 軟體包升級輸出。 軟體包升級期間顯示的核心升級通知 軟體包升級期間顯示服務重新啟動提示。

如果此操作升級了內核,建議重新啟動系統後再繼續。 (如需複習 apt 以及 Linux 軟體套件管理器的工作原理,請參閱Linux 軟體套件管理器。)檢查:

cat /var/run/reboot-required
用於檢查是否需要重啟的命令。 重啟需求檢查的輸出結果。

如果檔案存在,請先使用「reboot」指令重啟,等待約 30 秒,然後重新連線。

安裝本指南使用的工具

apt install -y curl wget tar xz-utils ufw qrencode

curl/wget 和 tar/xz-utils 是獲取和壓縮 shadowsocks-rust 發布歸檔所必需的;ufw 是下面配置的防火牆;qrencode 將完成的客戶端連結轉換為第 7 節中可掃描的二維碼。

用於安裝所需伺服器實用程式的命令。

配置防火牆(UFW)

有關 UFW 規則的更多信息,請參閱在 Linux 上配置防火牆。

打開你需要的兩個連接埠:22/tcp 用於 SSH(跳過此規則可能會導致失去對伺服器的存取權)和 8388,包括 TCP 和 UDP — Shadowsocks 代理 TCP 連線和 UDP 關聯(對 DNS 和某些遊戲/應用程式很有用),因此連接埠的兩個方向都必須開啟。

ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status

這三條規則在 ufw 狀態輸出中都應顯示為「ALLOW」。如果您之後更改了 config.json 中的端口,請更新這些規則以匹配更改。

UFW 狀態顯示已設定的 SSH 和 Shadowsocks 規則。

安裝伺服器軟體

請從以下兩個選項中選擇一個。建議使用選項 A (shadowsocks-rust):它是目前仍在積極開發的實現,並支援本指南後續部分將使用的最新 AEAD-2022 加密演算法。如果您更傾向於使用現成 systemd 單元的普通 apt 軟體包,並且不需要 AEAD-2022,那麼選項 B (shadowsocks-libev) 也是一個不錯的選擇。

選項 A — shadowsocks-rust(建議)

Shadowsocks-rust 目前版本沒有提供 apt 軟體包,因此需要從專案的 GitHub 發布頁面下載預先編譯的靜態二進位進行安裝。從 GitHub API 取得最新的發布標籤,並下載對應的 Linux x86_64 歸檔檔案:

SS_VER=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep -Po '"tag_name": "\K[^"]*')
echo "Latest version: $SS_VER"
cd /root
wget "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${SS_VER}/shadowsocks-${SS_VER}.x86_64-unknown-linux-gnu.tar.xz"
用於下載 shadowsocks-rust 發布存檔的命令。

如果您的 VPS 是 arm64 而不是 x86_64(使用 `uname -m` 檢查),請將上述檔案名稱中的 x86_64-unknown-linux-gnu 替換為 aarch64-unknown-linux-gnu。

解壓縮壓縮包並將二進位檔案安裝到系統全域:

tar -xf shadowsocks-*.tar.xz
install -m 755 ssserver ssservice ssmanager ssurl /usr/local/bin/
rm -f shadowsocks-*.tar.xz ssserver ssservice ssmanager ssurl sslocal 2>/dev/null
用於提取和安裝 shadowsocks-rust 二進位檔案的命令。

確認二進位已安裝到位並檢查已安裝的版本:

ssserver --version
已安裝 ssserver 版本。

建立設定檔所在的目錄:

mkdir -p /etc/shadowsocks-rust
建立 shadowsocks-rust 配置目錄。

本指南安裝的是固定版本,而不是透過管道將安裝腳本傳遞給 bash。如需稍後升級,請使用最新的 SS_VER 查詢結果重新執行上述兩個命令,停止服務,取代二進位文件,然後重新啟動服務(請參閱第 6 節)。

選項 B — shadowsocks-libev(替代方案,apt 軟體包)

Shadowsocks-libev 已包含在 Ubuntu 的 universe 軟體倉庫(Ubuntu 16.10+)和 Debian 的主軟體倉庫(Debian 8+)中,因此在 22.04/24.04 或 Debian 11/12 上不需要第三方 PPA:

apt install -y shadowsocks-libev
用於從軟體包倉庫安裝 shadowsocks-libev 的命令。

如果 apt 報告找不到軟體包,則表示 universe 軟體來源已停用;請啟用該軟體來源並重試:

add-apt-repository universe && apt update && apt install -y shadowsocks-libev

軟體包會安裝自己的 systemd 單元(預設配置為 shadowsocks-libev.service,每個實例的命名配置則使用[email protected]),並自動建立 /etc/shadowsocks-libev/config.json 檔案-第 4-6 節會說明 libev 特有的命令和檔案路徑,以及 Rust 的內容相關。本指南的其餘客戶端章節(第 7-13 節)對兩種伺服器實作都適用,因為它們都使用相同的 Shadowsocks/SIP002 協定進行網路通訊。

產生密碼並選擇密碼

Shadowsocks 驗證採用雙方必須同意的單一共用密碼和密碼(加密方法)-無需管理單獨的 UUID、金鑰對或憑證。

密碼家族

  • AEAD-2022(推薦,僅限 shadowsocks-rust):2022-blake3-aes-128-gcm、2022-blake3-aes-256-gcm、2022-blake3-chacha20-poly1305。新設計(SIP022)具有更強的重播保護,並支援多個使用者共享一個連接埠。密碼必須是長度與密碼金鑰長度完全相同的 base64 字串(128 位元版本為 16 位元組,256 位元版本為 32 位元組)。
  • 經典 AEAD(rust 和 libev 都支援):aes-256-gcm、aes-128-gcm、chacha20-ietf-poly1305。廣泛兼容舊客戶端和 shadowsocks-libev;密碼可以是任何口令,因為它是透過密鑰派生函數傳遞的,而不是直接用作密鑰材料。

本指南使用 2022-blake3-aes-256-gcm 作為 shadowsocks-rust 伺服器的加密方案,因為它是目前最強大、最新的方案,並且後續建議的所有客戶端(v2rayN、v2rayNG、Shadowrocket、Streisand、ShadowsocksX-NG)都支援該方案。如果您在第 3 節中安裝了 shadowsocks-libev,請改用 chacha20-ietf-poly1305 或 aes-256-gcm,因為 libev 不支援 AEAD-2022 編碼。

產生金鑰(shadowsocks-rust)

ssservice genkey -m "2022-blake3-aes-256-gcm"
用於為 shadowsocks-libev 產生隨機密碼的命令。

這將列印出一個 base64 字串——那就是你的密碼。請將其複製到安全的地方;你需要將其貼上到第 5 節的伺服器配置和第 7 節的客戶端連結。

產生隨機密碼短語。

選擇一個密碼短語(shadowsocks-libev)

對於 shadowsocks-libev 使用的經典 AEAD 密碼,任何足夠長的隨機字串都可以,因為它會經過 PBKDF/HKDF 處理,而不是直接用作原始金鑰。可以使用以下命令產生一個隨機字串:

openssl rand -base64 32

編寫伺服器配置

Shadowsocks-rust

開啟設定檔進行編輯:

nano /etc/shadowsocks-rust/config.json

請將以下範本貼到您的信箱中,並將第 4 部分中的密碼替換為您自己的密碼(如果您將連接埠號碼從 8388 變更為其他連接埠號碼,則還需要替換為第 2 部分中的連接埠號碼):

{
    "server": "0.0.0.0",
    "server_port": 8388,
    "password": "YOUR-GENERATED-KEY-HERE",
    "method": "2022-blake3-aes-256-gcm",
    "mode": "tcp_and_udp",
    "timeout": 300,
    "nofile": 51200
}

按 Ctrl+O(寫入)儲存文件,按 Enter 確認檔名,然後按 Ctrl+X 退出 nano。

重要欄位:伺服器監聽所有介面(0.0.0.0);server_port 是第 2 節中開啟的連接埠;password/method 是第 4 節中的憑證和密碼;mode 啟用 TCP 和 UDP 中繼;timeout 是空閒連線逾時時間(以秒為單位);nofile 提高繁忙的檔案描述符限制。

在將 JSON 資料注入 systemd 之前,請先驗證 JSON 資料是否已被二進位檔案接受:

ssserver -c /etc/shadowsocks-rust/config.json --help >/dev/null && echo "binary OK"
python3 -m json.tool /etc/shadowsocks-rust/config.json >/dev/null && echo "JSON OK"

建立 systemd 單元(shadowsocks-rust)

二進位版本中沒有包含 systemd 單元,所以需要建立一個:

nano /etc/systemd/system/ssserver.service
[Unit]
Description=Shadowsocks-Rust Server
Documentation=https://github.com/shadowsocks/shadowsocks-rust
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks-rust/config.json
Restart=on-failure
RestartSec=5s
LimitNOFILE=51200
User=root
 
[Install]
WantedBy=multi-user.target

請按照上述步驟儲存並退出,然後告訴 systemd 讀取新的單元檔案:

systemctl daemon-reload

Shadowsocks-libev

apt 軟體套件已建立了 /etc/shadowsocks-libev/config.json 文件,其中包含預設配置(僅環回位址,隨機密碼)及其自身的 systemd 單元。開啟該文件進行編輯:

用於開啟 shadowsocks-libev 設定檔的命令。
nano /etc/shadowsocks-libev/config.json

替換內容為:

{
    "server":"0.0.0.0",
    "server_port":8388,
    "password":"YOUR-PASSPHRASE-HERE",
    "method":"chacha20-ietf-poly1305",
    "mode":"tcp_and_udp",
    "timeout":300
}
shadowsocks-libev 配置範例。

預設設定使用 server: ["::1", "127.0.0.1"](僅限回環);將其變更為 "0.0.0.0" 即可使伺服器可從公用 IP 存取-如果您複製的是原始檔案而不是上面的模板,請不要跳過此步驟。

啟動服務並啟用自動啟動

Shadowsocks-rust

systemctl enable --now ssserver
systemctl status ssserver --no-pager

狀態應顯示為活動(正在運行)。請確認是否有服務正在監聽該連接埠(兩種協定都應如此):

伺服器正在監聽 TCP 和 UDP 連接埠 8388。
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'

如果服務啟動失敗,最快的查看原因是查看 systemd 日誌(有關閱讀 Linux 日誌的一般背景知識,請參閱如何閱讀 Linux 日誌以及在哪裡可以找到它):

journalctl -u ssserver -n 50 --no-pager

Shadowsocks-libev

systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager

檢查連接埠和日誌的方式與檢查 shadowsocks-rust 的方式相同,只需替換為服務名稱:

用於重新啟動、啟用和檢查 shadowsocks-libev 服務的命令。 Shadowsocks-libev 服務狀態顯示為活動(正在執行)。
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager

建立客戶端連結連結

Shadowsocks 用戶端匯入的是單一 ss:// 共享連結(SIP002 URL 格式),而不是設定檔。此連結將加密演算法和密碼以 base64 編碼的形式儲存在 URL 的使用者資訊部分:

ss://base64(method:password)@your_IP_address:port#label

在伺服器上建立 base64 部分(這樣可以避免手動編碼時出現任何拼字錯誤):

METHOD="2022-blake3-aes-256-gcm"
PASSWORD="YOUR-GENERATED-KEY-HERE"
USERINFO=$(echo -n "${METHOD}:${PASSWORD}" | base64 -w0)
echo "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"

範例輸出(使用佔位符鍵):

產生的 ss:// 連接連結範例(僅供參考)。
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server

# 後面的文字只是一個顯示標籤,您可以在任何用戶端中自由重新命名。對於 shadowsocks-libev 伺服器,請將 METHOD="chacha20-ietf-poly1305"(或 aes-256-gcm)及其在第 4 節中的密碼短語替換為 # 後面的文字。 

將其轉換為二維碼,以便行動用戶可以直接掃描:

qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"

使用 scp 命令將 PNG 檔案複製到您自己的電腦上,並在您電腦的終端機(或 Windows 上的 PowerShell)中執行該命令,而不是在伺服器上執行:

scp root@your_IP_address:~/ss-client.png .

從 Windows 連線

本節中的所有操作都在您的 Windows PC 上進行,而不是透過 SSH 進行——用戶端必須在實際使用代理程式的裝置上執行。

安裝 v2rayN

v2rayN 是一款免費且持續維護的圖形使用者介面用戶端,原生支援 Shadowsocks,同時也支援 VLESS、VMess、Trojan 等其他協定。您可以從專案頁面下載最新版本。

取得 Windows 64 位元 .zip 資源(自包含版本,從最新的 v2rayN 版本開始,無需單獨的 .NET 執行時間),將其解壓縮到任意位置,然後執行 v2rayN.exe。

導入伺服器

將第 7 部分內建的 ss:// 連結複製到剪貼簿(或使用 scp 指令複製 QR PNG 檔案並開啟),然後在 v2rayN 中選擇「伺服器」→「從剪貼簿批次匯入 URL」(或使用內建掃描器掃描 QR 碼)。新的伺服器設定檔將出現在清單中,並在 # 後面顯示您設定的標籤。

右鍵單擊設定檔並將其選為活動設定文件,然後從主視窗工具列啟用系統代理程式(或 TUN 模式,用於路由整台電腦)。

從 macOS 連接

本節中的所有操作都在您的 Mac 上進行,而不是透過 SSH 進行。

安裝 ShadowsocksX-NG

ShadowsocksX-NG 是 Shadowsocks 的長期原生 macOS 圖形使用者介面用戶端;目前版本同時提供 Apple Silicon 和 Intel 原生版本。請從發布頁面下載最新的 .dmg 檔案。

打開 .dmg 文件,將 ShadowsocksX-NG 拖入「應用程式」資料夾,然後啟動它——它會在功能表列中顯示為圖示。

 

導入伺服器

將第 7 部分的 ss:// 連結複製到剪貼簿,然後點擊選單列圖示 → 伺服器 → 伺服器首選項 → 左下角的「+」號,選擇「從剪貼簿匯入」(或開啟 PNG 檔案後,使用「掃描螢幕上的二維碼」掃描二維碼)。從功能表列下拉選單中選擇新設定文件,然後切換“Shadowsocks: On”選項,並從同一選單中選擇“PAC 自動”或“全域”路由模式。

從 Linux 桌面連接

本節中的所有操作都在您自己的 Linux 機器上進行,而不是在 VPS 上進行。

安裝本地客戶端

如果您已依照第 3 節中的說明在伺服器上安裝了 shadowsocks-rust,則同一個發布套件中也包含 sslocal,一個 SOCKS5/HTTP 本機代理用戶端。下載並安裝它的方式與安裝伺服器二進位檔案相同(如果您的桌面作業系統不是 x86_64-unknown-linux-gnu,請調整作業系統/架構後綴):

SS_VER=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep -Po '"tag_name": "\K[^"]*')
wget "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${SS_VER}/shadowsocks-${SS_VER}.x86_64-unknown-linux-gnu.tar.xz"
tar -xf shadowsocks-*.tar.xz
sudo install -m 755 sslocal /usr/local/bin/

配置並運行

建立一個監聽 127.0.0.1:1080 的本機小型 SOCKS5 代理程式:

mkdir -p ~/.config/shadowsocks-rust
cat > ~/.config/shadowsocks-rust/local.json << 'EOF'
{
    "server": "your_IP_address",
    "server_port": 8388,
    "password": "YOUR-GENERATED-KEY-HERE",
    "method": "2022-blake3-aes-256-gcm",
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "mode": "tcp_and_udp"
}
EOF
sslocal -c ~/.config/shadowsocks-rust/local.json

將瀏覽器或系統網路設定指向 127.0.0.1:1080 上的 SOCKS5 代理程式。對於 GUI,Nekoray或 ShadowsocksX-Qt5 風格的分支可以從第 7 節導入相同的 ss:// 鏈接,並為您管理 sslocal,而無需手動運行。

透過 Android 連接

這裡的所有操作都在您的安卓設備上進行,而不是透過 SSH。

安裝客戶端

兩個不錯的選擇:

  • Shadowsocks 安卓版-Shadowsocks 官方用戶端。您可以從 Google Play 安裝(搜尋「Shadowsocks」),或者如果您的 Google Play 不可用,也可以直接從專案發布頁面下載 APK 檔案。 地區。
  • v2rayNG——v2rayN 的 Android 版本,支援 Shadowsocks 以及 VLESS/VMess/Trojan;如果您希望一個應用程式支援多種協議,這將非常有用。 類型。

導入伺服器

在任一應用程式中:點擊“+”按鈕,複製第 7 部分中的 ss:// 連結後,選擇“從剪貼簿匯入”,或“掃描二維碼”並將相機對準 PNG 圖片。點擊匯入的設定檔進行選擇,然後點擊連接按鈕。 Android 系統首次連線時會提示授予 VPN 權限-請允許以建立連線。 

從 iOS 連接

這裡的一切都在你的 iPhone 或 iPad 上進行,而不是透過 SSH。

安裝支援 Shadowsocks 的客戶端

Shadowrocket 是目前使用最廣泛的支援 Shadowsocks 的 iOS 用戶端;它在大多數應用程式商店中都是付費應用程式。您可以在 App Store 中搜尋或開啟它。

Streisand 是一個免費的開源替代方案,除了 VLESS、Trojan 和其他協議外,還支援 Shadowsocks 。

App Store 的目錄因商店/地區而異,並且會隨時間而變化;如果您的商店中沒有顯示“Shadowsocks”或“V2Box”,請在 App Store 中搜尋“Shadowsocks”或“V2Box”。

導入伺服器

將 ss:// 連結複製到剪貼簿,開啟用戶端,然後使用其「從剪貼簿新增/匯入」選項,或使用用戶端內建的掃描器掃描第 7 部分中的二維碼。啟用新設定檔;iOS 系統首次啟用時會提示授予 VPN 設定權限,您需要透過面容 ID、觸控 ID 或密碼進行授權。

驗證連接

從第 8、9、10、11 或 12 節啟動隧道後,回到您自己的裝置(而不是 SSH 會話),並在瀏覽器中開啟任何「我的 IP 位址是什麼」檢查器——顯示的位址應該與您的 VPS 的 IP 位址 your_IP_address 相符。

若要從伺服器端進行驗證,請檢查 systemd 日誌中的連線活動,並確認連接埠上已建立的會話(使用 ssserver 查看 rust 日誌,或使用 shadowsocks-libev 查看 libev 日誌):

journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'

參考:

場

價值

地址

您的VPS的公網IP位址

港口

8388(與第 2 部分開啟的連接埠相同)

密碼:

在第 4 節中產生的密鑰/密碼短語

選項

2022-blake3-aes-256-gcm (rust) 或 chacha20-ietf-poly1305 (libev) — 必須在兩邊完全匹配

模式

tcp_and_udp — 同時啟用 TCP 代理和 UDP 中繼(DNS、某些遊戲)

插件

本指南中未使用任何此類外掛程式——Shadowsocks 無需 SNI、憑證或傳輸外掛程式即可正常運作。

結語

按照本指南操作,您的 VPS 將運行自己的 Shadowsocks 伺服器——可以是具有現代 AEAD-2022 密碼的 shadowsocks-rust,也可以是來自 Ubuntu/Debian 官方倉庫的 shadowsocks-libev——作為 systemd 服務,無需您進行任何操作即可在重啟後繼續運行。

新增更多用戶:

  • 最簡單的方法:產生第二個密碼(第 4 節),並在不同的連接埠上執行第二個 ssserver/shadowsocks-libev 實例,該實例具有自己的設定檔和 systemd 單元,然後對該連接埠重複第 5-7 節。
  • shadowsocks-rust 配合 AEAD-2022 密碼,也支援多個使用者透過 config.json 中的「users」陣列共用一個連接埠和密碼派生金鑰(可擴充身分標頭,SIP022)-如果您需要對單一連接埠上的每個使用者進行流量統計,請參閱 shadowsocks-rust README 的語法組態。

伺服器運行後,以下幾個習慣值得保持:

  • 保持伺服器更新。對於 shadowsocks-rust,請定期使用最新的版本號重新執行第 3 節中的下載和安裝步驟,然後執行 systemctl restart ssserver。對於 shadowsocks-libev,只需執行 apt upgrade 即可。
  • 將 config.json 檔案備份到伺服器以外的私密位置。該文件保存所有客戶端的密碼;遺失該文件意味著需要為每個設備重新產生憑證。
  • 如果裝置遺失或用戶端被入侵,則輪換密碼:為每個剩餘裝置產生新密碼(第 4 節),更新 config.json,重新啟動服務,並重建用戶端連結(第 7 節)。

如果連線始終無法建立,請依照下列順序檢查:

  • 服務狀態(systemctl status ssserver --no-pager 或 shadowsocks-libev)和日誌(journalctl -u ssserver -n 50 --no-pager)
  • 防火牆規則(ufw 狀態-連接埠必須同時對 TCP 和 UDP 開放)
  • 連接埠未被其他服務佔用(ss -lntp | grep ':8388' 應該只顯示 ssserver/ss-server)
  • 客戶端中的密碼、方法和連接埠必須與 config.json 檔案中的完全一致—即使只有一個字元不匹配,也會導致握手失敗,通常表現為連線逾時,而不是明確錯誤。
  • 如果用戶端需要 UDP 協定(例如 DNS over proxy、某些遊戲/應用程式),而不僅僅是 tcp_only 協議,則伺服器端會將該模式設為 tcp_and_udp。

想比較 Shadowsocks 與其他方案?請參閱Xray VLESS Reality Guide,了解基於 TLS 偽裝的協議,這種協議在高度過濾的網絡中更難被識別;AmneziaWG Server Deployment Guide和How to set Wireguard VPN on your server,了解基於 WireGuard 的替代方案;或者參閱兩種過濾器 2 和 TUIC 設置,了解網路設計的高度過濾器。如果您只需要一個簡單的代理程式而不是完整的隧道設置,CentOS/ArchLinux 上的 3proxy 配置是一個更輕量級的選擇;而 Linux 上的舊版VPN 伺服器設定:PPTP 還是 OpenVPN?涵蓋了設定更簡單但更容易被深度套件檢測 (DPI) 檢測和阻止的協議。代理程式上線後,如需進行常規伺服器加固,請參閱Linux 使用者:管理和權限。

❮ 上一篇文章 Xray VLESS Reality Guide:VPS、Windows、Mac、Android、iPhone
下一篇文章❯ VMmanager 6 安全事件:事件經過及因應措施

向我們諮詢有關 VPS 的問題

無論白天或黑夜,我們隨時準備好解答您的問題。