首页
/
使用实践
/

自建 WireGuard 服务器的基础步骤:从密钥到转发规则

使用实践

自建 WireGuard 服务器的基础步骤:从密钥到转发规则

自建 WireGuard 并不复杂:两组密钥、一份配置、一条 NAT 规则、一个放行的 UDP 端口。本文按顺序把服务端和客户端的配置完整走一遍,并给出验证方法。

自建 WireGuard 服务器的基础步骤:从密钥到转发规则 封面

自建 WireGuard 的工作量很小:两组密钥、一份服务端配置、一条地址转换规则、一个放行的 UDP 端口。下面以 Debian/Ubuntu 为例,把服务端和客户端从头配一遍。自建意味着出口地址就是你的云服务器地址,需要遵守云服务商的使用条款和所在地的法律。

自建的四个阶段
自建的四个阶段

准备工作

需要一台有公网 IPv4 的 Linux 服务器、root 权限,以及一个放行 UDP 51820 的安全组规则。先安装软件包:apt install wireguard。Linux 5.6 以上的内核自带 WireGuard 模块,软件包提供 wg 和 wg-quick 两个管理工具。

服务端配置

生成两组密钥

服务端和客户端各需要一对密钥。先执行 umask 077,再用 wg genkey | tee server.key | wg pubkey > server.pub 生成服务端密钥,客户端同理。私钥文件权限必须是只有所有者可读,公钥可以安全地发给对端。

编写 wg0.conf

在 /etc/wireguard/wg0.conf 里写入下面的内容,其中 eth0 要换成服务器实际的出口网卡名:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <服务端私钥>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

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

开启转发并放行端口

把 net.ipv4.ip_forward=1 写入 /etc/sysctl.d/99-wireguard.conf 并执行 sysctl --system,再用 ufw allow 51820/udp 或云平台安全组放行 UDP 端口。然后 systemctl enable --now wg-quick@wg0 启动并设置开机自启。

客户端配置

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

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

AllowedIPs 写 0.0.0.0/0 表示全部 IPv4 流量走隧道;只想访问服务器所在的内网时,把它改成对应网段即可。DNS 指定一个在隧道内可达的解析器,避免查询泄露到本地网络。

客户端流量的路径
客户端流量的路径

关键配置项对照

配置项服务端客户端
Address10.8.0.1/2410.8.0.2/32
ListenPort51820不需要
Endpoint不需要服务器公网地址:51820
AllowedIPs客户端的隧道地址0.0.0.0/0 或指定网段
PersistentKeepalive不需要25(位于 NAT 后时)

验证与常见问题

客户端启动后,在两端都执行 wg show,应该能看到 latest handshake 和收发字节数在增加。再用 curl -4 https://ifconfig.me 确认出口地址已经变成服务器的公网地址。

握手成功但上不了网怎么办

优先检查三件事:ip_forward 是否为 1、NAT 规则里的网卡名是否和实际出口网卡一致、客户端 DNS 是否可达。这三项占了绝大部分故障,分层排查的方法可以参考《连上了 VPN 却打不开网页》。

怎么给第二台设备增加接入

为新设备再生成一对密钥,分配一个新的隧道地址(如 10.8.0.3/32),在服务端再加一个 [Peer] 块即可,用 wg syncconf 可以在不断开现有连接的情况下重新加载。

自建的出口地址有什么特点

出口地址属于云服务器的数据中心地址段,部分网站会对这类地址做额外的验证。这是自建方案和住宅出口的区别之一,使用前要有心理预期。

WireGuard
自建
VPS
Linux

相关文章

链路笔记

链路笔记:分享网络与隐私工程的实践笔记,涵盖协议原理、加密与隐私、连接排错与性能调优。

© 2026 链路笔记