VPN Tutorial

2026 最新:Ubuntu 26.04 LTS 搭建 WireGuard VPN 服务器及全平台客户端配置教程

Date Published

WireGuard 是新一代高性能 VPN 协议,以极简配置、内核级速度和强加密著称。本教程使用 Ubuntu 26.04 LTS 作为服务端,手把手带你完成安装、配置,并让 Android、iPhone、Windows、Mac 全平台设备安全接入。即使你之前未接触过 VPN,也能在 10 分钟内成功搭建。

服务端配置

环境:Ubuntu 26.04 LTS(其他 Debian 系发行版步骤类似)。所有命令均以 sudo 用户或 root 执行。

安装 WireGuard

运行以下命令:

sudo apt update
sudo apt install wireguard -y

生成密钥与基础配置

1. 生成服务器密钥对:

sudo wg genkey | sudo tee /etc/wireguard/server_private.key
sudo chmod 600 /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

2. 获取主网卡名称:

ip -o -4 route show to default | awk '{print $5}'

记住输出结果(如 eth0),后面需要替换到配置中。

3. 创建服务端配置文件 /etc/wireguard/wg0.conf:

[Interface]
Address = 10.8.0.1/24
SaveConfig = true
PrivateKey = <此处粘贴服务端私钥>
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

防火墙与 IP 转发

启用 IP 转发:

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

UFW 防火墙放行端口:

sudo ufw allow 51820/udp

云服务器安全组:登录云控制台,添加入站规则,协议 UDP,端口 51820,来源 0.0.0.0/0。

启动 WireGuard 并设置开机自启:

sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0

添加客户端 Peer

为客户端生成密钥对(示例客户端名称 client1):

sudo wg genkey | sudo tee /etc/wireguard/client1_private.key
sudo chmod 600 /etc/wireguard/client1_private.key
sudo cat /etc/wireguard/client1_private.key | wg pubkey | sudo tee /etc/wireguard/client1_public.key

将客户端加入服务端。动态添加(无需重启):

sudo wg set wg0 peer $(sudo cat /etc/wireguard/client1_public.key) allowed-ips 10.8.0.2/32

或编辑配置文件 /etc/wireguard/wg0.conf,末尾添加:

[Peer]
PublicKey = <客户端公钥>
AllowedIPs = 10.8.0.2/32

然后重启:sudo systemctl restart wg-quick@wg0。每增加一个客户端,请分配不同的虚拟 IP,如 10.8.0.2/32、10.8.0.3/32。

生成客户端配置文件

在服务端创建 client1.conf:

[Interface]
PrivateKey = <客户端私钥>
Address = 10.8.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <服务端公钥>
Endpoint = <服务器公网IP>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

便捷分发方式:安装 qrencode 将配置文件转为二维码,客户端扫码即可导入:

sudo apt install qrencode -y
qrencode -t ansiutf8 < client1.conf

全平台客户端连接指南

Android 客户端

下载安装:

- Google Play 商店下载

配置步骤:

1. 打开 App → 点右下角 + → Import from file or archive 选择 .conf 文件,或 Scan from QR code 扫描二维码

2. 点击开关即可连接

iOS 客户端

下载安装:

- App Store 下载

配置步骤:

1. 打开 App → 右上角 + → Create from file or archive,或 Create from QR code

2. 允许添加 VPN 配置,点击开关连接

Windows 客户端

下载安装:

- 访问 WireGuard 官方网站 https://www.wireguard.com/install/ 获取安装程序

配置步骤:

1. 启动程序 → Import tunnel(s) from file → 选择 .conf 文件

2. 点击 Activate 按钮,状态变绿即连接成功

macOS 客户端

下载安装:

- App Store 下载

配置步骤:

1. 打开 WireGuard → Import Tunnel(s) from File → 选择配置文件

2. 点击 Activate 连接

客户端下载链接汇总

Android:Google Play 商店 | iOS:App Store | Windows:WireGuard 官网下载页 | macOS:App Store。所有客户端均开源免费,请从官方渠道下载以确保安全。

📋 客户端下载地址(可复制)

Android (Google Play) https://play.google.com/store/apps/details?id=com.wireguard.android

iOS (App Store) https://apps.apple.com/us/app/wireguard/id1441195209

Windows (官网下载页) https://www.wireguard.com/install/

macOS (App Store) https://apps.apple.com/us/app/wireguard/id1451685025?ls=1&mt=12

验证与排错

服务端状态检查:

sudo wg show

应看到 latest handshake 时间在 2 分钟内,表示连接正常。

客户端验证:访问 ip.sb 或 curl ifconfig.me,显示的 IP 应变为服务器公网 IP。

如果无法连接,请逐项检查:

- 云防火墙安全组是否放行 UDP 51820

- IP 转发是否开启:sysctl net.ipv4.ip_forward 输出为 1

- iptables NAT 规则是否存在:sudo iptables -t nat -L POSTROUTING 能看到 MASQUERADE

- 服务端 Peer 公钥是否与客户端私钥匹配

- 客户端配置文件中的 Endpoint 公网 IP 是否正确

常见问题 FAQ

Q:为什么只能 ping 通但打不开网页?

A:通常是 DNS 问题。请在客户端配置中明确指定 DNS = 8.8.8.8,或换用其他公共 DNS。

Q:如何让客户端只能访问内网,不影响其他流量?

A:将客户端配置文件中的 AllowedIPs 改为 10.8.0.0/24(或你需要的内网网段),而不是 0.0.0.0/0。

Q:如何添加更多客户端?

A:重复添加客户端 Peer 步骤,生成新密钥对,分配新 IP 并加入服务端即可。

Q:服务器重启后 VPN 会断开吗?

A:只要设置了 systemctl enable wg-quick@wg0,开机会自动恢复。

Q:配置文件安全吗?如何传给手机?

A:配置文件包含私钥,务必通过加密渠道传输。推荐使用二维码扫描,一次使用后可从终端清除记录。

总结

至此你已拥有一套完整的 WireGuard 部署方案,服务器跑在 Ubuntu 26.04 LTS 上,所有主流客户端均可轻松接入。无论是远程办公、家庭网络互访还是安全代理,都能获得稳定高速的体验。如果你在搭建过程中遇到任何问题,欢迎留言讨论!