知識庫 使用 Profitserver 服務的簡單說明
主要 知識庫 AmneziaWG 伺服器部署指南

AmneziaWG 伺服器部署指南


越來越多的人選擇自行運行 VPN 服務,而不是依賴付費的現成服務:這樣更便宜、更能保護隱私,而且還能完全控制伺服器。對於網路封鎖嚴格的地區來說,AmneziaWG 是最有效的選擇之一。 AmneziaWG 是由 Amnezia 專案基於 WireGuard 開發的協議。

傳統的 WireGuard 協定速度快、可靠性高,但其資料包結構固定,握手過程可預測,因此深度包檢測 (DPI) 系統可以可靠地識別並攔截這些資料包。 AmneziaWG 解決了這個問題:它在普通的 WireGuard 連接中添加垃圾資料包,隨機化資料包頭部,並改變握手字段的大小——這樣一來,WireGuard 的特徵簽名就消失了,流量不再與普通的 UDP 流量區分開來。

已經在運行經典隧道,想知道是否值得切換?不妨將其與Linux 上的 VPN 伺服器設定中的純 OpenVPN/PPTP 設定進行比較:PPTP 還是 OpenVPN? ,或與如何在伺服器上設定 WireGuard VPN 的原始 WireGuard(無混淆)進行比較:如何設定 WireGuard VPN。

本指南將手動建立一個 AmneziaWG 伺服器,無需 Docker 或 Web 控制面板——盡可能減少 VPS 本身的資源佔用,所有設定均透過命令列完成。它是最輕量級的方案,非常適合預算有限的 VPS,因為它不需要圖形使用者介面、資料庫和反向代理。下面的範例伺服器使用佔位符 IP 位址—請將其替換為您自己的 VPS 位址。

你需要準備:一台運行 Ubuntu 22.04/24.04 或 Debian 11/12 的 VPS、root 權限以及 VPS 的 IP 位址。不需要網域名稱-AmneziaWG 不使用證書,因此無需續約證書,DPI 也不會將其標記為 TLS 握手。

還沒有伺服器?請參閱“如何訂購服務器”。

正在連接伺服器

Windows(PuTTY)

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

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

以 root 使用者登入

密碼:您的密碼

1. 開啟 PuTTY,在主機名字段中輸入您的 VPS IP 位址。  

預設的 PuTTY 配置窗口,在輸入任何連接詳細資訊之前。

2. 將連接埠設定為 22。 

會話已填入 VPS IP 位址和連接埠 22,已儲存的會話「我的 VPS」已選中,可以按一下「開啟」。

3. 輸入以 root 使用者身分登入。 

開啟一個新的 PuTTY 終端機窗口,建立 SSH 會話並提示輸入登入使用者名稱。

4. 使用您的 VPS 提供者透過電子郵件傳送給您的密碼。

輸入 root 後,PuTTY 會提示輸入帳號密碼。

結果應如下:

登入成功:Debian 每日訊息橫幅,然後是 root shell 提示字元 (root@copywr:~#)。

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

Linux / macOS(終端機)

ssh root@YOUR_SERVER_IP

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

準備伺服器

更新系統

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

apt update -y && apt upgrade -y

如果此操作升級了內核,請在構建第 3 節中的 AmneziaWG 內核模組之前重啟系統,否則 DKMS 可能會使用錯誤的內核頭檔進行構建,導致模組加載失敗。 (有關 apt 和 Linux 軟體套件管理器的工作原理,請參閱Linux 軟體套件管理器。)檢查:

cat /var/run/reboot-required
apt upgrade 在系統更新期間下載新的核心軟體包 (linux-image-6.1.0-52-amd64)。 apt 升級完成:initramfs 已重新生成,受影響的服務已重新啟動。

啟用IP轉送

此設置允許伺服器將客戶端的封包轉發到互聯網——如果沒有此設置,隧道將建立,但不會有任何流量通過它。

echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system

第一條命令建立一個專用設定檔;第二個命令應用該文件,而無需重新啟動伺服器。

sysctl --system 應用每個 sysctl.d 設定文件,確認 net.ipv4.ip_forward = 1 現在已啟動。

配置防火牆(UFW)

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

打開你需要的兩個連接埠:22/tcp 用於 SSH(跳過此規則可能會導致失去對伺服器的存取權)和 42666/udp,AmneziaWG 將監聽該連接埠。

apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status

ufw 狀態輸出中這兩條規則都應該顯示為 ALLOW。

Ufw 狀態確認 IPv4 和 IPv6 皆允許 22/tcp 和 42666/udp 流量,防火牆處於作用中狀態。

安裝 AmneziaWG

Debian 不直接支援 Ubuntu 風格的 PPA,因此必須手動新增軟體來源,而不是使用 add-apt-repository 命令。這在 Ubuntu 上也是同樣的操作。

手動新增儲存庫

新增儲存庫
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

新增 GPG 簽署金鑰

使用已棄用的密鑰環文件,而不是已棄用的 apt-key 命令,並獲取 PPA 的真實簽名密鑰(指紋 75C9DD72C799870E310542E24166F2C257290828):

apt install -y gnupg2
gpg --keyserver keyserver.ubuntu.com --recv-keys 57290828
gpg --export 57290828 | tee /usr/share/keyrings/amnezia.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

更新和安裝

apt update
apt install -y amneziawg
apt install -y amneziawg 輸出:DKMS 正在針對運行中的核心建立 amneziawg 核心模組並完成安裝。

驗證模組是否已加載

modprobe amneziawg
lsmod | grep amnezia
使用 modprobe amneziawg 和 lsmod 指令確認 amneziawg 模組及其相依性(curve25519、chacha20poly1305 等)已載入。

生成伺服器和客戶端配置

安裝輔助工具

安裝二維碼依賴項,然後建立專用工作目錄,並將社群配置產生器腳本下載到該目錄:

apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
  https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py

如果你的發行版軟體倉庫中沒有 python3-qrcode,請回退到使用 `pip3 install qrcode --break-system-packages` 指令(Debian 12+/Ubuntu 24.04 預設會阻止非託管的 pip 安裝,因此需要此標誌)。不要同時執行兩個安裝命令,選擇其中一個即可。

Awgcfg.py 是一個非官方的第三方社群腳本(由 GitHub 使用者「remittor」編寫),並非 Amnezia 專案的官方工具。上面的 URL 指向 gist 的原始內容,沒有版本雜湊值,因此它始終拉取作者上次推送的內容——靜默更新(或 gist 被刪除)可能會在沒有任何警告的情況下破壞您的配置。盡可能將其鎖定到特定版本:開啟 gist 的版本歷史記錄,複製您測試過的版本的提交雜湊值,然後使用… 網址 本指南的形式。 

產生伺服器配置

建立 /etc/amnezia/amneziawg/awg0.conf 檔案。您可以將隧道內部子網路和 UDP 連接埠保留為預設值,也可以設定您自己的值:

python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
  -i 10.10.8.1/24 -p 42666

-i 標誌設定隧道的內部網路位址和遮罩;-p 設定伺服器的 UDP 連接埠(與步驟 2.3 中開啟的連接埠相同)。

Awgcfg.py --make 建立 /etc/amnezia/amneziawg/awg0.conf 並偵測伺服器的主網路介面 (ens3)。

建立客戶端配置模板

python3 awgcfg.py --create

這樣就把模板保存在了構建各個客戶端配置的同一資料夾中——它已經包含了伺服器的公鑰、其 IP 位址以及將 AmneziaWG 與普通 WireGuard 區分開來的混淆參數(Jc、Jmin、Jmax、S1、S2、H1-H4)。

Awgcfg.py --create 寫入 _defclient.config,新的客戶端設定將根據該範本產生。

新增客戶

每個設備建立一個條目-名稱可以是任何內容,例如設備名稱:

python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Awgcfg.py -a 註冊「laptop」和「phone」用戶端,每個用戶端都分配了自己的隧道 IP(10.10.8.2/32 和 10.10.8.3/32)。

產生客戶文件和二維碼

python3 awgcfg.py -c -q

~/awg 資料夾現在將包含 laptop.conf 和 phone.conf 等文件,以及匹配的 PNG 二維碼,您可以直接將其掃描到行動應用程式中。

這個社區腳本有一個已知的缺陷:運行它可能會刪除您放置在同一資料夾中的其他 .init/state 檔案。請確保 ~/awg 目錄僅用於存放 AmneziaWG 文件,並在重新產生配置之前將伺服器金鑰(awg0.conf 中的 [Interface] PrivateKey)備份到其他位置。
產生的 laptop.conf 檔案內容:客戶端位址、DNS、混淆參數以及指向伺服器的 [Peer] 部分。

~/awg 資料夾現在將包含 laptop.conf 和 phone.conf 等文件,以及匹配的 PNG 二維碼,您可以直接將其掃描到行動應用程式中。

這個社區腳本有一個已知的缺陷:運行它可能會刪除您放置在同一資料夾中的其他 .init/state 檔案。請確保 ~/awg 目錄僅用於存放 AmneziaWG 文件,並在重新產生配置之前將伺服器金鑰(awg0.conf 中的 [Interface] PrivateKey)備份到其他位置。

啟動服務並啟用自動啟動

啟動 awg0 介面並啟用開機自動啟動功能:

systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]

設備啟動時應顯示「已啟用(已退出)」。如果控制台顯示日誌而“卡住”,請按 Q 鍵退出。

Systemctl status 確認 awg-quick@awg0.service 已啟動(已退出)並已啟用,日誌中記錄了介面的 ip/iptables 設定指令。

使用以下命令查看活躍節點清單和每個節點的流量:

awg show
顯示 awg0 介面的混淆參數及其兩個已配置的對等體(筆記型電腦和手機),以及每個對等體允許的 IP 位址。

從 Windows 連線

本節中的所有操作都在您的 Windows 電腦上完成,而非透過 SSH 連線-VPN 用戶端必須安裝在實際使用 VPN 隧道的裝置上。唯一需要操作伺服器的步驟是 6.2 節中的 scp 下載,即使是這個命令也是在您的電腦上輸入的,它會下載伺服器在第 4 節中已經產生的檔案。

安裝客戶端

AmneziaWG 有一個專用的 Windows 應用程式——它的介面與標準的 WireGuard 用戶端類似,但它能夠識別混淆參數。請從專案的官方倉庫下載安裝程式:

https://github.com/amnezia-vpn/amneziawg-windows-client/releases

上面的連結是維護良好的 Windows 用戶端的發布頁面——請從那裡下載最新的 .msi/.exe 檔案。請在瀏覽器中開啟此頁面,而不是貼上到終端機中的命令。

執行安裝程式並按照設定精靈的步驟操作;預設設定無需更改。

導入配置

將客戶端設定檔從伺服器複製到您的電腦——最簡單的方法是使用 scp 命令,在您的電腦上用 PowerShell 運行,而不是在伺服器上運行:

用戶端電腦上有一個空白的 Windows PowerShell 提示符,準備執行下面的 scp 指令。
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

在 AmneziaWG 應用程式中,點擊“從檔案匯入隧道”,選擇 laptop.conf,然後打開新隧道旁的開關。

從 macOS 連接

所有操作都在您的 Mac 上進行,而不是透過 SSH。下面的 scp 命令是在 Mac 的終端機中輸入的,用於獲取伺服器在第 4 部分中產生的配置——它不會在您 VPS 上的 root SSH 會話中運行。

有兩種支援的選項:

  • AmneziaWG(Mac App Store):一款輕量級用戶端,適用於 macOS 12 及更高版本。在 App Store 中搜尋「AmneziaWG」並安裝,然後使用「從檔案匯入隧道」並選擇您的 .conf 檔案—工作流程與 Windows 用戶端相同。
  • AmneziaVPN(完整應用程序,macOS 14+):如果您喜歡使用功能齊全的 Amnezia 應用程式而不是輕量級的 AmneziaWG 用戶端,請從 github.com/amnezia-vpn/amnezia-client/releases/latest 下載 .pkg。

如果需要,請先複製客戶端配置,與步驟 6.2 相同:

scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

從 Linux 連接

以下兩個選項均在您的 Linux 桌面/筆記型電腦上執行,即在該機器上建立單獨的 SSH 會話(或本機 shell),而不是第 1 節中 VPS 上的 root SSH 會話。這些命令看起來與伺服器端的命令完全相同,因為兩端都使用了相同的 amneziawg-tools 軟體包,但在此處運行它們會在您自己的機器上安裝並啟動客戶端隧道,而不是在伺服器上。

在Linux桌上型電腦或筆記型電腦上,您有兩種選擇:

  • GUI:從 github.com/amnezia-vpn/amnezia-client/releases 安裝完整的 AmneziaVPN 桌面用戶端,然後以與在 Windows/macOS 上相同的方式匯入 .conf 檔案。
  • CLI,使用與伺服器上相同的 amneziawg-tools(awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0

運行此程式碼斷開連線。

awg-quick down awg0 

若要在登入時自動啟動隧道,請將其啟用為一項服務:

systemctl enable --now awg-quick@awg0

驗證連接

在第 6、7 或 8 節中啟動隧道後,返回您自己的裝置(而非 SSH 會話),並在瀏覽器中開啟任意「我的 IP 位址查詢」工具——顯示的位址應與您的 VPS 的 IP 位址相符。或者,您也可以在 SSH 會話內部進行驗證,在伺服器上執行 `awg show` 指令,並確認用戶端對等方顯示最近一次握手和非零流量。

參考:

場

價值

地址

YOUR_TUNNEL_IP(用戶端在隧道內的位址,例如 10.10.8.2/32 — 在步驟 4.4 新增用戶端時自動指派)

端點

YOUR_SERVER_IP:42666(伺服器的外部 IP 位址以及用戶端連接的 UDP 連接埠。)

DNS

8.8.8.8

Jc / Jmin / Jmax

握手之前發送的「垃圾」資料包的數量和大小——伺服器和客戶端可能不同,但不會中斷連線。

S1 / S2

握手填充欄位的大小-伺服器和每個客戶端之間必須逐位元組匹配

H1–H4

用於將協定偽裝成普通流量的資料包類型頭部也必須完全匹配,並且彼此之間必須唯一。

隧道兩端只需要 S1/S2 和 H1-H4 相同;Jc、Jmin 和 Jmax 純粹是關於每一方如何填充自己的傳出垃圾流量,因此客戶端和伺服器的值可以合法地不同,就像上面的範例一樣。

結語

按照本指南操作,您的 VPS 將運行自己的 AmneziaWG 伺服器:AmneziaWG 是一種與 WireGuard 相容的協議,它對流量進行混淆,使得深度套件偵測 (DPI) 系統更難將其與普通的 UDP 流量區分開來,而普通的 WireGuard 流量則難以區分。該服務以 systemd 單元 awg-quick@awg0 的形式運行,即使伺服器重啟,無需您進行任何操作,服務仍然存在。

產生的 .conf 檔案和 ~/awg 中的二維碼不僅適用於 Windows 用戶端,還可以導入到適用於 Android、iOS、macOS 和 Linux 的 AmneziaWG 或 Amnezia 應用程序,以及 Keenetic 和 OpenWrt 路由器。

隨時可以透過重複步驟 4.4–4.5(python3 awgcfg.py -a "name", 然後 awgcfg.py -c -q)並使用 systemctl restart [email protected]重啟介面來新增客戶端。

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

  • 保持系統補丁更新。定期重新運行 apt update -y && apt upgrade -y,並在核心升級後重啟,以便 DKMS 針對新核心重新建置 amneziawg 模組。
  • 請備份 ~/awg 目錄。該目錄的 awg0.conf 檔案中保存著每個客戶端的私鑰和伺服器本身的金鑰對;遺失該目錄意味著需要為每個裝置重新產生配置。
  • 立即撤銷遺失的設備。從 /etc/amnezia/amneziawg/awg0.conf 中移除對應的 [Peer] 區塊,然後執行 systemctl restart [email protected].

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

  • 服務狀態(systemctl status) [email protected])
  • 防火牆規則(ufw 狀態 — 連接埠 42666/udp 必須開啟)
  • 如果介面甚至無法啟動,則檢查 DKMS/模組狀態(dkms status,lsmod | grep amnezia)
  • 伺服器上活躍對等節點的清單(awg show)
  • 客戶端配置指向正確的外部伺服器 IP 位址

在決定使用 AmneziaWG 之前,想將其與其他方案進行比較?請參閱「Linux 上的 VPN 伺服器設定:PPTP 還是 OpenVPN?」以及「如何在伺服器上設定 WireGuard VPN」。如果您只需要一個簡單的代理,而不是完整的 VPN 隧道,那麼在 CentOS/ArchLinux 上配置 3proxy是一個更輕量級的選擇。 VPN 上線後,如需加強伺服器安全,請參閱「Linux 使用者:管理與權限」。

❮ 上一篇文章 Hysteria2 和 TUIC 設定
下一篇文章❯ Xray VLESS Reality Guide:VPS、Windows、Mac、Android、iPhone

向我們諮詢有關 VPS 的問題

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