在安卓裝置上使用 WireGuard VPN 來保護您的家庭網絡

  • WireGuard 提供快速、安全且易於設定的家庭 VPN,非常適合從 Android 和其他裝置存取您的網路。
  • 關鍵在於產生金鑰對,正確定義允許的 IP 位址,啟用轉送和 NAT,並使用適當的防火牆保護 UDP 連接埠。
  • 如果啟用了 CGNAT,則 VPS 作為橋接器,可讓您透過遠端伺服器和家庭 LAN 之間的 WireGuard 隧道繼續存取您的家庭網路。
  • WireGuard Easy 等面板和官方應用程式透過二維碼和可重複使用的 .conf 設定文件,方便使用者進行對等管理和移動使用。

WireGuard VPN

如果你在家中搭建了一個小型科技設備, NAS、Linux 伺服器或充滿服務的回收計算機我相信你也遇到同樣的問題:在家時一切正常,但一旦離開家,就什麼都做不了了。你無法存取應用程式、檔案或網路攝影機,要么會陷入連接埠配置問題、DDNS 問題和安全風險的泥潭,要么就只能… 推薦用於安卓系統的VPN.

解決此問題的最簡單、最安全的方法是建立一個 使用 WireGuard VPN 並透過 Android 裝置連接 (以及從任何其他設備)。這樣,即使您的 ISP 使用 CGNAT 或您的網路拓撲結構比較複雜,您也可以像身臨其境一樣使用您的家庭網路。讓我們一步一步來:從 WireGuard 是什麼開始,如何在 Linux 上設定它(或使用 Docker 和 EasyPanel/WireGuard Easy 等面板),以及如何對其進行微調以存取您的 LAN 和 在安卓裝置上啟動 VPN 並可安全地透過行動裝置瀏覽網頁。

什麼是 WireGuard?為什麼它是家庭 VPN 的理想選擇?

WireGuard 是一種現代、簡約且速度極快的 VPN 協定。 它徹底改變了虛擬私人網路的建構方式。與 OpenVPN 或 IPsec 等過時的技術不同,它從一開始就被設計成配置簡單、易於審計且極其高效。

它的程式碼庫非常小(大約只有 幾千行這使得查找漏洞和保持系統更新變得更加容易。在加密方面,它僅使用現代且備受認可的演算法,例如: Curve25519、ChaCha20、Poly1305、BLAKE2s 以及其他公司。沒有冗長的過時密碼列表,那些密碼早已被人棄用。

此外,它僅適用於 UDP協定可以整合到Linux核心中。因此,延遲很低,效能非常好,CPU佔用率幾乎可以忽略不計。這一點在使用Android設備通過4G/5G或普通Wi-Fi連接時尤其明顯:重新連接速度很快,隧道能夠很好地應對網路變化。

這種設定也更加人性化:每個設備都有一個 公鑰/私鑰對它被分配了一個內部 VPN IP 位址,並且透過隧道發送的流量由策略定義。 允許的IP有了這些,再加上一個 UDP 端口和另外四個設置,就可以讓它運行起來,而無需幾十個晦澀難懂的參數或無窮無盡的文件。

另一個很大的優勢是: WireGuard 是跨平台的: 有 Android 官方用戶端它相容於 iOS、Windows、macOS 和 Linux,也可以在路由器、Docker 容器或嵌入式裝置上運行。在行動裝置上,您可以匯入 .conf 檔案或直接掃描設定檔。 伺服器產生的二維碼 就是這樣

設定 WireGuard 伺服器之前的基本要求

在胡亂貼上命令之前,最好先檢查一下是否滿足某些要求。 Android 系統可存取的 WireGuard 伺服器的最低要求這將為你省去很多麻煩。

最常見的方法是使用 Linux 伺服器這可以是雲端虛擬專用伺服器(Ubuntu 22.04 是一個非常便利的選擇),也可以是家用機器(例如 Raspberry Pi、迷你電腦、支援 WireGuard 的 NAS 等)。任何支援 WireGuard 的現代發行版都可以,但 Ubuntu/Debian 提供了更多文件和範例。

VPN 安全協議
相關文章:
最常用的VPN安全協定:2025年綜合指南、差異及建議

你需要一個用戶 管理權限 (需要root使用者或具有sudo權限的使用者),因為您將安裝軟體包、調整網路設定、啟用IP轉發,並可能修改防火牆規則。此外,擁有伺服器的SSH存取權限也至關重要,並且您至少需要知道如何從您的電腦連接到伺服器。

在客戶端,您主要會使用您的 安裝了官方 WireGuard 應用的安卓智慧型手機雖然相同的設定方案適用於 Windows、macOS、Linux 或 iOS,但不同平台之間的設定檔差異很小,因此您在這裡學到的知識對所有平台都適用。

最大的敵人:CGNAT 及其對家庭 VPN 的影響

尤其當伺服器位於家中時,最重要的一點是了解您的服務提供者是否將您置於網路之後。 CGNAT(運營商級NAT)在 CGNAT 模式下,您與其他用戶端共用一個公用 IP 位址; 您無法向您的家庭網路開放連接埠。這使得在家庭網路連線上暴露 VPN 伺服器變得極為困難。

檢測方法很簡單:首先,寫下你的 公共IP 在瀏覽器中造訪類似「whatismyip」的網站。然後存取路由器的控制面板(通常位址為192.168.1.1或192.168.0.1),在WAN或Internet部分尋找路由器認為它擁有的IP位址。如果該IP位址以…開頭 10.xxx 或在 100.64.0.0 – 100.127.255.255 範圍內 如果資訊與網站上的不符,表示您使用的是CGNAT的服務。另一種直接的方法是致電運營商詢問。

使用 CGNAT 時,您的路由器不會收到直接的公用 IP 位址,因此 你不能進行傳統的連接埠轉送。有些公司允許你透過額外付費或啟動某個選項來選擇退出 CGNAT,而有些公司則要求你更改套餐,有時價格還會飆升。如果你不想經歷這些麻煩,明智的做法是切換到… VPS作為橋樑您的家用伺服器會建立一個到 VPS 的 WireGuard 隧道,然後您可以透過 Android 連接到 VPS 來存取您的家庭區域網路。

準備 Linux 伺服器:WireGuard 更新和安裝

在運行 Ubuntu 22.04(或類似版本)的伺服器上,首先要做的事情是 更新包 為避免遺留漏洞或舊版:

apt update && apt upgrade -y

然後使用以下命令從官方軟體倉庫安裝 WireGuard:

apt install -y wireguard

此軟體包包含以下工具 wg 和 wg-quick 並載入必要的核心模組。如果您想在某種特殊環境下強製手動加載,可以使用:

modprobe wireguard

金鑰產生和伺服器配置結構

WireGuard 的核心是系統 公鑰和私鑰通常情況下,工作是在標準目錄中完成的。 /etc/wireguard/這裡將用於儲存密鑰和設定檔。

切換到該目錄,並在創建任何內容之前加強預設權限:

cd /etc/wireguard/
umask 077

這確保了 新檔案可能無法被其他使用者讀取這在產生私鑰時至關重要。例如,產生伺服器金鑰對:

wg genkey > privatekey
wg pubkey < privatekey > publickey

La 私鑰 它必須始終保留在伺服器上,絕不能離開伺服器; 公鑰 是的,您可以與客戶分享。此外,請避免使用可能洩露機密資訊的第三方應用程式;請查閱相關主題的文章。 不安全的 VPN 應用程式 如果您對客戶有任何疑問。

chmod 600 privatekey

如果您想在螢幕上查看按鍵以便稍後複製,可以使用:

tail privatekey publickey

建立並編輯伺服器的 wg0.conf 文件

WireGuard VPN

WireGuard 將其隧道組織成… 虛擬介面 調用方式依約定為 wg0、wg1 等。每個介面都有自己的設定檔。 /etc/wireguard/我們將創造 wg0.conf 作為主要介面。

如果您喜歡 Nano 但尚未安裝,可以透過以下方式添加:

apt install -y nano

開啟設定檔:

nano /etc/wireguard/wg0.conf

在編寫任何內容之前,請先確定連接到網際網路的網路介面名稱(即具有公用 IP 位址或用於透過 SSH 連線的 IP 位址)。您可以使用以下命令找到它:

ip a

在許多VPS中,它被稱為 eth0、ens3、enp0s3 或類似的東西。你需要它來寫 NAT 規則。一個完整的阻止規則範例可能是:


Address = 10.30.0.1/24
PrivateKey = <clave_privada_servidor>
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

這裡你給伺服器提供了 IP 位址 VPN網路內的10.30.0.1你需要讓它監聽 UDP 連接埠 51820,並定義當 wg0 介面啟動時適用的 iptables 規則(張貼)並在向下移動時被移除(貼文下載更換時要小心。 eth0 按輸出介面的實際名稱。

在 Nano 中,您可以節省 按Ctrl + O 最後,你以……結束。 按Ctrl + Xwg0.conf 將是核心,您將在此基礎上新增不同的用戶端(對等節點)。

啟用 IP 轉送並啟動 WireGuard 服務

要讓您的用戶端能夠存取 VPN 伺服器後面的互聯網或區域網,系統必須允許以下操作: IPv4 和 IPv6 封包轉送這是透過 sysctl 控制的。

一個快速的方法是將對應的行新增到 /etc/sysctl.conf中 或儲存到文件中 /etc/sysctl.d/ 並充電:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p

如果這些程式碼行已經存在但被註解掉了(用#標記),那麼只需… 移除#儲存並重新啟動 sysctl -p如果沒有這一步,隧道雖然會建立起來,但用戶端將無法存取區域網路或網際網路。

現在您可以使用以下工具抬起 WireGuard: wg-quick 以及 systemd:

systemctl start wg-quick@wg0

若要使其隨系統自動啟動:

systemctl enable wg-quick@wg0

檢查所有顏色是否為綠色:

systemctl status wg-quick@wg0

要查看介面、金鑰、對等節點和流量的即時詳細信息,請使用:

wg

新增客戶端:PC、安卓手機及其他設備

連接到您的 VPN 的每個裝置都被定義為一個 對等方使用自己的金鑰和隧道 IP您可以在伺服器本身上產生金鑰(更方便),也可以在每個客戶端上產生金鑰(更安全,因為私鑰永遠不會離開客戶端)。

例如,對於桌上型電腦,你可以這樣做: /etc/wireguard/:

wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey

適用於您的安卓手機:

wg genkey > myphone_privatekey
wg pubkey < myphone_privatekey > myphone_publickey

使用以下命令檢查檔案:

ls

它會顯示公鑰:

tail mypc_publickey myphone_publickey

這些公鑰就是你要輸入的密鑰。 wg0.conf 位於區塊內 再次開啟伺服器檔案:

nano /etc/wireguard/wg0.conf

他也補充道,例如:


PublicKey = <clave_publica_mypc>
AllowedIPs = 10.30.0.2/32

公鑰 =
允許的 IP = 10.30.0.3/32

這樣做就等於預留了 IP 位址。 PC 版 10.30.0.2適用於安卓手機的 10.30.0.3 版本/32 表示這是一個獨立的 IP 位址。 VPN 子網路中的每個對等節點都使用自己唯一的 IP 位址。

儲存並重新載入服務以套用變更:

systemctl restart wg-quick@wg0

建立客戶端設定檔

現在是時候準備了。 客戶端將使用的 .conf 文件其中包括您的私鑰、內部 IP、DNS 和伺服器資料(公鑰、IP/網域和連接埠)。

對於PC,你可以創建 我的電腦設定檔 在 /etc/wireguard/ 目錄下(或您喜歡的任何位置):

nano mypc.conf

內容類型:


PrivateKey = <clave_privada_mypc>
Address = 10.30.0.2/24
DNS = 1.1.1.1

公鑰 =
終點 = 51820
允許的 IP = 0.0.0.0/0
持續保持活動 = 20

在第一個程式碼區塊中,您定義用戶端的本機「介面」:其私鑰、VPN IP 位址以及它將使用的 DNS 伺服器。在第二個程式碼區塊中,您描述伺服器:其公鑰、位址和連接埠。 允許的 IP = 0.0.0.0/0 使 所有客戶流量都透過 VPN 傳輸。 (完全隧道)。如果您只想存取遠端區域網,您可以將其限制為 10.30.0.0/24 和/或 192.168.x.0/24,具體取決於您的網路情況。

持久保持活動 建議每隔 20-25 秒對 NAT 或行動網路後面的用戶端進行一次會話恢復,這樣可以防止隧道顯示為不活動狀態,並防止防火牆關閉會話。

如何在安卓裝置上啟動 VPN
相關文章:
如何在安卓裝置上啟動 VPN 並阻止不安全流量

Android客戶端特定配置

在安卓系統上,流程相同。手機需要… 私鑰,您的隧道 IP 以及伺服器數據。您可以重複使用在伺服器上產生的金鑰,也可以直接在應用程式中產生金鑰。

按照範例,您創建了 我的手機私鑰和我的手機公鑰您的手機缺少 myphone.conf 檔案:

nano myphone.conf

類似這樣的:


PrivateKey = <clave_privada_myphone>
Address = 10.30.0.3/24
DNS = 1.1.1.1

公鑰 =
終點 = 51820
允許的 IP = 0.0.0.0/0
持續保持活動 = 20

棘手之處在於… 如何安全地將該文件發送到手機在實驗室環境中,您可以將其上傳到 Web 伺服器並下載,但在生產環境中,最好避免透過電子郵件或將其儲存在未加密的服務上。

最乾淨的方法通常是使用 二維碼 產生一個可供 Android 版 WireGuard 應用程式掃描的二維碼:

apt install -y qrencode
qrencode -t ansiutf8 -r myphone.conf

您將在終端機上看到一個ASCII字元的二維碼。在您的行動裝置上,打開WireGuard應用程序,選擇“掃描二維碼“(掃描二維碼)並指向螢幕。這樣您就無需通過不正當渠道分享 .conf 文件了。”

存取家庭區域網路、DNS 和本地名稱

除了建造隧道之外,還有什麼有趣的地方呢? 在安卓裝置上使用 WireGuard VPN,以實現安全的家庭網路連線。 它指的是能夠像身臨其境一樣存取所有家用設備:NAS、IP相機、路由器、媒體伺服器等等,理想情況下是使用 使用本地網域名稱而不是 IP 位址.

許多整合了 WireGuard 伺服器或內部 DNS 的路由器都有一個類似這樣的部分。 網路 → DNS → 編輯主機 您可以在這裡建立類似這樣的條目 192.168.1.50 nas-casa.local如果將 VPN 用戶端的 DNS 指向解析這些名稱的路由器或伺服器,則可以透過主機名稱存取您的裝置。

一些帶有 WireGuard 的路由器韌體包含類似這樣的複選框。 “允許遠端存取區域網路”「遠端存取 LAN 子網路」或類似名稱。您必須啟用這些設置,以便遠端客戶端可以存取。 本地子網路(192.168.xx) 除了路由器本身。

在 WireGuard 伺服器嵌入路由器運行的場景中,通常允許 匯出預先準備好的 .conf 設定文件 適用於行動裝置或其他客戶端路由器。這些設定檔通常包括隧道 IP 位址、正確的 DNS(通常是路由器在 VPN 網路上的自身 IP 位址)以及正確設定的 AllowedIPs。

驗證、故障排除和安全

配置導入 Android 系統並啟動隧道後,首先要做的就是檢查: 握手過程正常進行。WireGuard 應用程式本身會顯示狀態、已傳送/已接收的位元組數以及上次握手時間戳記。

在伺服器上運行:

wg

您可以在這裡看到每個對等節點的公鑰、連接的遠端 IP 位址、上次握手時間以及交換的資料量。如果「上次握手時間」欄位為空或時間過長,表示用戶端無法連線或連線被阻止。

如果沒有連接,請檢查… UDP連接埠(51820或您使用的任何連接埠)已打開 在伺服器防火牆(UFW、iptables、nftables)以及任何中間路由器上進行設定。如果伺服器位於家用路由器之後,則需要進行以下設定: 將該連接埠的 UDP 連接埠轉送至伺服器的內部 IP 位址該問題可能影響特定應用程式;請參閱我們的指南。 啟用 VPN 後應用程式運行失敗該怎麼辦?.

如果隧道已開啟但您沒有行動網路連接,請檢查封包轉送(net.ipv4.ip_forward 和可選 net.ipv6.conf.all.forwarding)處於活動狀態,且 NAT 規則指向正確的出接口(eth0、ens3 等)。

當您可以 ping 通某個特定的 IP 位址(例如 1.1.1.1)但無法解析網域名稱時,通常可以偵測到 DNS 問題。在這種情況下,請檢查以下行: DNS = 在用戶端的 .conf 檔案中:您可以使用公用 DNS(8.8.8.8、1.1.1.1)或伺服器的隧道 IP 位址(如果它充當內部解析器)。

就安全性而言,除了 WireGuard 的加密技術之外,還有許多其他因素需要考慮。 基本良好實踐:

  • 保護好您的私鑰請勿將它們複製到不安全的網站或與任何人分享。
  • 限制每個對等體的允許IP位址:僅允許每個客戶端存取其所需的網絡,不提供完全的存取權限。
  • 使用非平凡的UDP端口用更高值的 51820 取代 51820 可以降低自動掃描的雜訊。
  • 保持您的系統和 WireGuard 為最新版本每天打補丁。
  • 過濾對 WireGuard 連接埠的訪問 在防火牆中限制哪些人可以嘗試連線(在合理的情況下按來源 IP 位址限制)。

當您擁有 CGNAT 或想要更進階的功能時:可以透過 VPS 建立隧道

如果您的電信業者使用 CGNAT 服務,或者您只想將家中的公共存取層與網路隔離,您可以設定一個稍微複雜一些但功能非常強大的解決方案: 使用VPS作為中心節點,將您的家用伺服器作為客戶端。然後你透過安卓裝置連接到VPS,並透過它存取你的區域網路。

基本方案如下:在雲端設定一個 WireGuard“伺服器” (例如,使用 Docker 和類似 linuxserver/wireguard 的技術堆疊或預先建置的倉庫),您可以啟用轉發和 NAT,在家中,您就可以… 樹莓派或PC始終在線 它以對等連接的方式連接到該VPS。此VPS擁有公網IP位址,不受CGNAT影響,因此您可以毫無問題地在其上開啟連接埠。

使用 Docker 的典型工作流程可能是:

  • 在VPS上安裝Docker和Docker Compose,複製WireGuard配置儲存庫, 您可以使用 `docker-compose up -d` 指令啟動容器。.
  • 容器會自動產生伺服器金鑰和幾個對等節點(peer1、peer2…)的金鑰,並將它們 .conf 檔案保存在 config 資料夾中。
  • 您需要調整伺服器檔案以包含您的 AllowedIPs 中的家庭子網路(例如 192.168.1.0/24) 在您的 Raspberry Pi 將使用的對等節點上設定 iptables 或等效規則,以便在 VPN 和您的家庭網路之間路由流量。
  • 在 Raspberry Pi 上,複製相同的儲存庫(或準備好的儲存庫),使用為 peer1 產生的資料建立 wg0.conf 文件,啟用本機 NAT(以便能夠將流量傳送回 LAN),然後在 Docker 中或以原生方式啟動 WireGuard 用戶端。

從那裡,任何其他設備(包括您的) Android 系統及 WireGuard 應用您可以使用VPS的附加對等節點(peer2、peer3…)進行連線。實際上,您始終連接到VPS的IP位址,但最終訪問的仍然是您的家庭網路服務,即使經過CGNAT也是如此。

WireGuard 及其 Web 面板:WireGuard Easy、EasyPanel 等

如果你覺得這一切聽起來太像遊戲主機了,那麼有很多非常方便的解決方案可以幫你設定… 透過 Web 面板一鍵管理 WireGuard例如,在安裝了 EasyPanel 的伺服器上,您可以部署以下應用程式: WireGuard Easy 使用模板,無需手動編寫文件。

使用這些面板的工作流程通常是:

  • 您可以使用您的使用者帳戶存取面板(EasyPanel 或其他面板)。
  • 您安裝模板 WireGuard Easy定義諸如網域/公用 IP (WG_HOST)、UDP 連接埠、VPN 子網路和 DNS 等參數。
  • 系統啟動一個容器,該容器會公開一個受密碼保護的 Web 介面,您可以在其中看到 對等節點清單、統計資訊和配置選項.
  • 若要新增客戶,只需填寫包含其姓名的表單;面板會產生金鑰,為其指派 IP 位址,並顯示相關資訊。 二維碼已準備好用安卓設備掃描此外,它還允許您下載 .conf 檔案。

這在多人使用 VPN 的環境中(例如家庭、工作團隊等)非常方便,因為您可以 幾秒鐘內即可啟動或撤銷存取權限 無需解釋任何技術細節。此外,如果您在 VPS 上部署 WireGuard Easy,則可以集中管理對家庭網路和其他位置的所有遠端存取。

WireGuard 在其他系統上的應用:Windows、macOS、Linux、iOS

雖然我們這裡主要關注 Android,但 WireGuard 也同樣適用於其他平台。 桌上型電腦和其他行動設備例如,在Windows系統中,您可以下載官方客戶端,安裝它,然後按“添加隧道您可以選擇“新增空隧道”或“從檔案匯入”,程式本身可以為您產生金鑰對。

配置格式相同:包含您的程式碼區塊 私鑰、地址和 DNS並用 伺服器的公鑰、端點和允許的 IP 位址儲存後,只需按下「啟動」按鈕即可啟動介面並開始交通流量。

在 iOS 系統上,操作過程與 Android 系統非常相似:從 App Store 安裝 WireGuard 應用,建立一個新的隧道,然後就可以… 導入 .conf 檔案或掃描二維碼 你可以使用二維碼或 WireGuard Easy 等控制面板來產生二維碼。然後,你透過開關啟動隧道,即可進入你的家庭網路。

在桌面 Linux 系統上,您可以使用命令列工具本身(wg-quick up wg0或者,您也可以透過圖形介面匯入 .conf 文件,將其與 NetworkManager 整合。此外,還有一個官方的 macOS 用戶端,其使用體驗與 Windows 版本非常相似。

最後,有 所有平台都採用相同的協定和配置方案 它大大簡化了操作:只需更改金鑰和隧道 IP,即可將邏輯從一個客戶端複製到另一個客戶端。

Android VPN
相關文章:
安卓最佳VPN:2025年及以後所有選項、風險和技巧的終極指南

有了這些組合——配置良好的 Linux 或 Docker 伺服器、如果您擁有 CGNAT 則可能支援 VPS、用於簡化管理的 Web 控制面板以及 Android 上的 WireGuard 應用程式——您就可以設定一個 強大、快速、安全的家庭 VPN 它允許您存取您的家庭網路、文件和服務,並在公共 WiFi 上安全瀏覽,而無需依賴第三方或不透明的商業解決方案。 分享此訊息,讓其他人也了解這項新功能.