如果你希望透過最快的路徑到達自己的 VPN 伺服器,而無需手動執行完整的控制台設定,Amnezia 中的自託管流程是最簡單的選擇之一。你建立一個 VPS,為應用程式提供 SSH 存取權限,選擇一個協定,然後客戶端連線到伺服器並自行安裝所需的所有內容。
在本指南中,主要演練使用 DigitalOcean,因為它是最簡單的選擇。下面,我還詳細介紹瞭如果你使用 AWS、Azure 或 Google Cloud Platform 該怎麼做 - 特別是在涉及 SSH 金鑰和開啟正確連線埠時。
前面需要澄清的一個重要問題是:在 Amnezia 介面的某些部分,你可能只能看到 Amnezia WireGuard 而沒有版本號。但在目前支援的客戶端版本上的自架流程中,你最終部署的是 AmneziaWG 2.0。
如果你在部署之前需要協定上下文,請先比較 WireGuard 與 XRay (VLESS/Reality),以便了解自架 AWG2 能解決什麼問題、不能解決什麼問題。
快速回答
- 如果你想使用 Amnezia 的自託管流程部署自己的 VPS 支援的 VPN,而不是使用普通的託管 Android VPN 設定,請使用本指南。
- 如果你想走最簡單的流程,請從 DigitalOcean 開始。只有當你有理由留在這些平台時才使用 AWS、Azure 或 GCP。
- 最重要的實用規則很簡單:將公鑰上傳到雲端供應商,但將私鑰貼到 Amnezia。
- 如果你不想執行自己的伺服器,那麼這是不適合的起點。首先使用一般 Android 設定指南。
快速決策:這是正確的指南嗎?
如果你想使用 Amnezia 的自託管流程在 VPS 上部署自己的 VPN 伺服器,請開啟本指南。
如果你的目標不同,這些頁面通常是更好的起點:
- 在部署任何內容之前需要協定上下文:Android 上的 WireGuard 與 XRay (VLESS/Reality)
- 需要正常的 Android 設定而不是 VPS:如何在 Android 上設定 VPN
- 需要處理過濾或受限網絡:Android 上的 XRay (VLESS/Reality) 排查
- 設定後想要應用程式層級路由:Android 上的分割隧道指南
快速流程
如果不需要詳細資訊,整個流程如下所示:
- 建立 VPS;
- 準備 SSH 金鑰;
- 將公鑰新增至你的託管提供者;
- 複製私鑰、IP、使用者名;
- 安裝 Amnezia;
- 選擇自架 VPN;
- 貼上 IP、使用者名、私鑰;
- 選擇手動→Amnezia WireGuard;
- 設定連線埠;
- 等待安裝;
- 連線並驗證你的 IP 是否已更改。
以下是正確的逐步版本。
你需要什麼
- 具有public IP 的VPS
- SSH 存取伺服器
- SSH 金鑰
- 安裝了 Amnezia 應用程式
- 3–5 分鐘
公鑰與私鑰:不要混淆它們
這是最常見的錯誤來源。
當你產生 SSH 金鑰時,你將獲得一對文件:- 私鑰 — 只屬於你的秘密金鑰;
- 公鑰 — 你新增至提供者面板的金鑰。
在通常的設定中:
- 有
.pub副檔名的檔案是 公鑰; - 不帶
.pub的檔案是 私鑰。
實際上,這意味著:
- 在 DigitalOcean 以及通常在 Google Cloud 上,你上傳 公鑰;
- 在Amnezia中,你貼上私鑰;
- 在 AWS 和 Azure 上,入口網站可能會為你產生金鑰,因此流程有點不同 - 以下將詳細介紹。
DigitalOcean:最簡單的場景
對於此類指南,DigitalOcean 確實是最簡單的選擇之一。
步驟 1. 建立 SSH 金鑰
如果你已經為此伺服器擁有一個單獨的 SSH 金鑰,那就太好了 — 使用它。如果沒有,請建立一個新的。
基本指令:
ssh-keygen
之後,系統將顯示金鑰的儲存位置。接下來你需要的是公鑰,也就是帶有 .pub 的檔案。
要在終端機中列印並複製它:
cat ~/.ssh/KEY_NAME.pub
如果保留預設名稱,路徑通常如下所示:
cat ~/.ssh/id_ed25519.pub
步驟 2. 將公鑰加入 DigitalOcean
在 DigitalOcean 上,公鑰將上傳到你的帳戶,然後在建立過程中附加到新的 Droplet。
官方路徑: DigitalOcean 控制面板 → 設定 → 安全性 → 新增 SSH 金鑰
官方說明:
- 將 SSH 金鑰新增至團隊:https://docs.digitalocean.com/platform/teams/how-to/upload-ssh-keys/
- 建立一個 Droplet:https://docs.digitalocean.com/products/droplets/how-to/create/
- 將 SSH 金鑰新增至新的或現有的 Droplet:https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/
你甚至不必離開 Droplet 建立頁面:那裡有一個 New SSH Key 按鈕可以執行相同的操作。
步驟 3. 建立 DigitalOcean Droplet
對於第一次部署,這已經足夠了:
- 烏班圖
- 任何基本計劃
- SSH 金鑰認證
- 你建立的公鑰
DigitalOcean Droplet 準備好後,你將需要:
- public IP
- 使用者名稱
- 你的私鑰
在 DigitalOcean 上,典型 Ubuntu Droplet 的預設使用者名稱是 root。
安裝 Amnezia
在建立 VPS時,你可以立即下載客戶端。
下載頁面: https://amnezia.org/
Amnezia 有以下版本:
- 窗戶
- macOS
- Linux
- Android
- iOS
安裝應用程式,啟動它,然後按讓我們開始。
設定自託管 AmneziaWG2
步驟 1. 選擇自架 VPN
在應用程式內,選擇:
自架 VPN
那你需要三件事:
- 伺服器IP
- 使用者名稱
- SSH 私鑰
步驟 2. 貼上私鑰
這裡你需要 私鑰,而不是 .pub 檔案。
例如,如果你的公鑰是:
~/.ssh/id_ed25519.pub
那麼私鑰通常是:
~/.ssh/id_ed25519
你可以像這樣列印它:
cat ~/.ssh/id_ed25519
複製完整內容並將其貼上到 Amnezia 中。
步驟 3. 輸入使用者名稱
在 DigitalOcean 上,這通常是:
root
在其他提供者上,使用者名稱可能不同,因此請勿在任何地方自動填入 root 。
步驟 4. 輸入 IP從提供者面板複製 VPS 公用 IP 並將其貼上到 Amnezia 中。
步驟 5. 選擇手動 → Amnezia WireGuard
接下來,應用程式將詢問安裝類型。選擇:
- 手冊
- 然後Amnezia WireGuard
這就是人們經常對命名感到困惑的地方:介面可能不會明確地說“版本 2”,但在當前的自託管流程中,只要你的客戶端支援較新的版本,這就是 AWG 2.0。
官方自架式AmneziaWG 2.0說明: https://docs.amnezia.org/ru/documentation/instructions/new-amneziawg-selfhosted/
步驟 6. 設定連線埠
該影片使用連線埠 8080,對於實際的首次設定來說,這是一個完全合理的選擇。
這裡重要的是:
- 這是 VPN 伺服器連線埠,而不是 SSH 連線埠;
- 如果協定沒有出現,問題通常不是協定本身,而是連線埠關閉的事實;
- 如果某個特定連線埠不起作用,通常先嘗試另一個連線埠比立即開始挖掘複雜的網路原因更快。
自託管 AmneziaWG 正式排查: https://docs.amnezia.org/troubleshooting/self-hosted-amneziawg-not-working/
如果遇到問題,他們明確建議嘗試 另一個低於 9999 的端口,例如 585 或 1234。
步驟7.等待自動安裝
之後,Amnezia 將:
- 透過 SSH 連線到伺服器;
- 安裝所需的一切;
- 準備配置;
- 在應用程式內新增連線。
這是自架流程的主要優點:你不必從控制台手動安裝所有內容。
步驟 8. 連線並驗證 IP
安裝完成後,你將看到連線按鈕。
然後:
- 按連線;
- 等待隧道上來;
- 開啟任意IP查詢服務;
- 刷新頁面並驗證IP現在是否與你的VPS相符。
如果 IP 變更為你的伺服器 IP,則基本設定已完成。
如果你不使用 DigitalOcean 怎麼辦?
以下是其他常見提供者的簡短實用摘要。
AWS:SSH 金鑰和連線埠
在 AWS EC2 上,流程與 DigitalOcean 不同。
AWS 上的 SSH 金鑰
在 AWS 上,你不必提前在本機產生 SSH 金鑰。建立 EC2 執行個體時,你可以:
- 選擇現有的金鑰對;
- 或直接在控制台中建立新的金鑰對。
當你建立新的金鑰對時,AWS 允許你下載一次私鑰(例如 .pem 檔案)。然後公鑰會自動附加到實例。
官方文件:
所以在AWS上,最簡單的路徑是:
- 在EC2啟動流程中建立金鑰對;
- 下載私鑰;
- 在 Amnezia 中使用該私鑰。
在AWS上哪裡開啟端口
在 AWS 上,你需要一個安全群組,其中包含所需 UDP 連線埠的入站規則。
路徑: EC2 → 執行個體 → 附加安全性群組 → 編輯入站規則
官方文件:
- 更改安全群組:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/changing-security-group.html
- 安全群組規則參考:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html如果缺少入站 UDP 規則,伺服器可能安裝成功,但外部連線將無法運作。
Azure:SSH 金鑰和連線埠
在Azure上,流程也相當方便。
Azure 上的 SSH 金鑰
Azure 可以直接在入口網站產生和儲存 SSH 金鑰。如果你不想先在本機建立金鑰,這很有用。
官方文件:
- 在 Azure 入口網站中產生並儲存 SSH 金鑰:https://learn.microsoft.com/en-us/azure/virtual-machines/ssh-keys-portal
- 連線到 Linux VM:https://learn.microsoft.com/en-us/azure/virtual-machines/linux-vm-connect
因此,在 Azure 上,你有兩個選項:
- 使用你現有的公鑰;
- 讓Azure 在建立VM時產生金鑰。
在這兩種情況下,Amnezia 最終需要的是私鑰。
在 Azure 上哪裡開啟連線埠
在 Azure 上,開啟連線埠通常會透過以下方式進行:
- 網路
- 和/或 網路安全群組 (NSG)
官方文件:
- 網路安全群組概述/教學:https://learn.microsoft.com/en-us/azure/virtual-network/tutorial-filter-network-traffic
- NSG 管理:https://learn.microsoft.com/en-us/azure/virtual-network/manage-network-security-group
實際上,你需要針對 UDP 連線埠 的入站規則。
Google Cloud Platform:人們最容易感到困惑的地方
這是最不明顯的問題往往會出現的地方。
GCP 中的 SSH 金鑰
Google Cloud 有兩種不同的 SSH 存取模式:
- 作業系統登入
- 基於元資料的 SSH 金鑰
這就是為什麼 GCP 經常給人一種「鑰匙藏在某處」的感覺。
如果沒有使用 OS Login,你可以新增公共 SSH 金鑰:
- 在項目元資料中,
- 或在特定虛擬機器的實例元資料中。
官方文件:
- 新增 SSH 金鑰/存取概述:https://docs.cloud.google.com/compute/docs/access
- 排除 SSH 錯誤:https://docs.cloud.google.com/compute/docs/troubleshooting/troubleshooting-ssh-errors
如果你只需要為特定虛擬機器使用 SSH,那麼使用實例元資料通常比在專案層級新增金鑰更方便。
在 GCP 中哪裡開啟端口
在 Google Cloud 上,你主要不是在「虛擬機器內部」開啟連線埠。主要控制點是VPC防火牆規則。
官方文件:
- 防火牆規則概述:https://docs.cloud.google.com/firewall/docs/firewalls
- 使用防火牆規則:https://docs.cloud.google.com/firewall/docs/using-firewalls
在實務中,流程如下所示:
- 開啟VPC防火牆;
- 制定規則;
- 允許所需的UDP連線埠;
- 將其套用到正確的虛擬機器/目標標籤/網路。
這是 GCP 中的某些內容看起來「安裝正確」但仍然不接受外部連線的最常見原因之一。
你應該選擇哪些連線埠?
這裡沒有通用的“最佳”端口。
實用的方法如下:
對於第一次部署
- 選擇一個明確的UDP連線埠;
- 在雲端防火牆/安全群組/NSG/VPC防火牆等級開啟;
- 在設定中使用相同的連線埠並保持首次部署簡單。
如果不起作用
按以下順序檢查:
- 連線埠是否在提供者層級開放;
- 你是否選擇了正確的協定;
- 你貼上的金鑰是否正確;
- 使用者名是否正確;
- 你是否使用public IP而不是內部IP?
- 是時候切換連線埠了嗎?如果你想要以最快的方式排除網路層級問題,最有用的步驟通常就是嘗試不同的 UDP 連線埠。
常見錯誤
混淆公鑰與私鑰
最常見的問題。
簡單的規則:
.pub→ 進入提供者面板- 沒有
.pub→ 進入 Amnezia
使用者名稱錯誤
在 DigitalOcean 上,這通常是 root,但在 AWS、Azure、GCP 和不同的 VM 映像上可能不是這樣。
UDP連線埠未打開
伺服器可能安裝正確,但外部流量無法通過。
使用錯誤的IP
Amnezia 需要公用 IP,而不是虛擬機器的內部位址。
過早調整設定
如果基本連線仍然無法運作,請不要立即開始調整所有內容。首先獲得正常的工作連結。
接下來要做什麼
一旦你擁有第一個可用的 AWG2 伺服器,接下來的邏輯主題是:
- AmneziaWG2 設定
- AWG2 與 WireGuard 與 VLESS Reality 的比較
- 快速 VLESS Reality 設定
- 透過 Cloudflare WARP 進行路由
- 更高級的伺服器端場景
因此,本文是切入點:如何快速啟動可執行的自架 AWG2 設定,而不是 VPN 伺服器管理的完整課程。
在 NimbusVPN 自己的知識庫中,最接近的下一個讀物是 我們的 WireGuard + XRay (VLESS) 功能頁面 和 限制性網路的 XRay 排查指南。
如果你希望在部署後獲得最實用的後續順序,請繼續使用 Android 上的最佳 VPN 設定,然後如果只有某些應用程式應使用隧道,請繼續使用 Android 上的分割隧道。
簡短總結
如果你想要最快的實用路徑,就是這樣:
- 建立一個 VPS;
- 取得 SSH 存取權限;
- 在提供者端新增公鑰;
- 將私鑰、IP 和使用者名稱貼到 Amnezia 中;
- 選擇手動 → Amnezia WireGuard;
- 設定連線埠;
- 等待安裝;
- 連線;
- 驗證IP。
在DigitalOcean上,這是最直接、最直覺的路徑。 在 AWS 和 Azure 上,入口網站可以簡化金鑰產生。 在 Google Cloud 上,混亂通常圍繞著 SSH 模型和 VPC 防火牆規則。
但是,如果你牢記三件事 - 正確的金鑰、正確的使用者名稱和開放的 UDP 連線埠 - 初始自託管流程將變得非常簡單。