孙亮亮
返回 家庭网络

家庭网络

家庭 VPN 远程安全接入实战:WireGuard 部署、客户端配置与智能分流

2026年9月25日

部署 WireGuard 实现手机笔记本安全接入家庭内网并智能分流

家庭网络WireGuardVPN远程接入

家庭 VPN 远程安全接入实战:WireGuard 部署、客户端配置与智能分流

摘要:本文以家庭软路由或 NAS 为服务端,手把手部署 WireGuard,实现手机、笔记本在外网安全接入家庭内网,并重点讲解 AllowedIPs 智能分流与 DNS 配置,避免"全局代理"导致日常上网变慢的坑。

一、为什么选 WireGuard 而不是 OpenVPN

  • 代码量极小(核心约 4000 行),安全审计容易,漏洞面少;
  • 基于 Curve25519 密钥交换 + ChaCha20Poly1305 加密,握手极快、性能高;
  • 空闲时不占 CPU,断线秒级重连,移动网络下比 OpenVPN 稳得多;
  • 配置就是一个 wg0.conf 文件,没有证书链、没有复杂的 TLS 握手。

对比之下 OpenVPN 配置繁琐、握手慢、资源占用高,WireGuard 更适合家庭轻量远程接入场景。

二、服务端准备(以 Debian 软路由为例)

先安装并生成密钥对:

apt update && apt install wireguard
wg genkey | tee server_privatekey | wg pubkey > server_publickey

每台客户端也要独立生成一对密钥(公钥交给服务端,私钥留在客户端)。

服务端配置 /etc/wireguard/wg0.conf:

[Interface]
Address = 10.10.10.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 = <客户端A公钥>
AllowedIPs = 10.10.10.2/32

注意:PostUp 里的 MASQUERADE 是让客户端流量能 NAT 出公网;如果你只想访问家里内网、不想让客户端借家里带宽上网,可以删掉这两行。

启动服务:

wg-quick up wg0
systemctl enable wg-quick@wg0

三、路由器端口映射与防火墙

WireGuard 默认用 UDP 51820。在光猫 / 主路由做端口转发,把 51820/UDP 指向软路由。安全要点:

  • 只开放 UDP,绝不开 TCP 的同样端口;
  • 可用非标准端口(如 51831)降低被扫描概率;
  • WireGuard 没有用户名密码,靠密钥认证,不存在爆破面,但仍建议配合 DDNS 隐藏真实 IP;
  • 部分运营商会限速或封锁常见 VPN 端口,遇到握手失败就换端口。

四、客户端配置:手机与笔记本

手机安装官方 WireGuard App,扫码即可导入;笔记本用 wg-quick:

[Interface]
PrivateKey = <客户端A私钥>
Address = 10.10.10.2/24
DNS = 10.10.10.1

[Peer]
PublicKey = <服务端公钥>
Endpoint = home.ddns.net:51831
AllowedIPs = 10.10.10.0/24, 192.168.1.0/24
PersistentKeepalive = 25

AllowedIPs 是整篇文章的核心:它决定哪些目标地址走隧道。上面只把 VPN 子网(10.10.10.0/24)和家庭内网(192.168.1.0/24)路由进隧道,其余流量(刷视频、看网页)仍走本地网络——这就是"智能分流",避免在外把所有流量都绕回家里导致网速暴跌。若写成 0.0.0.0/0,则变成全局代理,所有流量都回家。

Endpoint 填家里的 DDNS 域名,PersistentKeepalive = 25 用于 NAT 后保活,移动数据下频繁掉线多半是没设这个。

五、家宽没有公网 IP 怎么办

  • 优先用 IPv6:很多地区家宽已给公网 IPv6,Endpoint 直接填 home.ddns.net 解析到的 v6 地址,端口放行即可;
  • 纯 IPv4 无公网:先用 Tailscale / ZeroTier 做中转打洞,WireGuard 跑在它之上;
  • 或申请运营商公网 IP(部分地区客服可开)。

六、典型问题与排查清单

  • 能连上但上不了网:检查 PostUp 的 MASQUERADE 是否生效,以及 AllowedIPs 是否含 0.0.0.0/0;
  • 握手一直失败:用 wg show 看 latest handshake,为空说明 UDP 不通;换端口、排查运营商封锁;
  • 移动网络频繁断:确认 PersistentKeepalive = 25;
  • 速度慢:WireGuard 本身几乎无开销,瓶颈通常在家里上行带宽或路由器转发性能。

七、与 Tailscale / ZeroTier 怎么选

Tailscale 开箱即用、无需端口映射,适合不想折腾的人;但它依赖第三方中继(虽可自建 derp),且免费版有设备数限制。WireGuard 自建完全私有、无第三方、性能好,代价是要自己搞定 DDNS、端口映射和客户端分发。我的建议:技术用户自建 WireGuard,小白用 Tailscale,两者也可叠加(Tailscale 打洞 + WG 承载业务)。

八、小结

WireGuard 部署本质上只是一个 conf 文件,难点不在安装,而在理解 AllowedIPs 的分流逻辑。家庭场景强烈推荐"仅内网分流"模式,既安全又不拖慢日常上网。配合 DDNS 与强密钥,足以稳定支撑远程桌面、访问 NAS、监控回放等需求。

本模块其他文章

家庭 VPN 远程安全接入实战:WireGuard 部署、客户端配置与智能分流 · 孙亮亮