场景与目标
你有一台家里 24h 开机的 NAS(群晖/Unraid/TrueNAS 均可),想在外面用手机安全访问:
- 看家里摄像头
- 访问 NAS 文件/SMB
- 远程管理路由器
不用 frp/花生壳等内网穿透,直接 WireGuard 打回家,全程加密,延迟低。
网络拓扑
手机 (4G/5G/WiFi)
│
│ UDP 51820
▼
家里光猫 → 路由器 (公网IP)
│
│ 192.168.1.0/24
▼
NAS (192.168.1.100)
路由器 WG 端 (10.0.0.1) 第一步:生成密钥对
用 在线密钥生成器 或本机终端:
# 服务端(家里路由器)
wg genkey | tee server_priv | wg pubkey > server_pub
# 手机端
wg genkey | tee phone_priv | wg pubkey > phone_pub 得到 4 个 key 文件,私钥只存本机,公钥给对方。
第二步:服务端配置(家里路由器/小主机)
假设家里路由器跑 WireGuard(OpenWrt/Ubuntu 均可),新建 /etc/wireguard/wg0.conf:
[Interface]
PrivateKey = <server_priv 内容>
Address = 10.0.0.1/24
ListenPort = 51820
# 允许转发明细
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -A FORWARD -o wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -o wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# 手机
PublicKey = <phone_pub 内容>
AllowedIPs = 10.0.0.2/32 注意:eth0换成你路由器实际出口网卡名(用ip addr查)。
第三步:手机端配置
手机装 WireGuard 官方 App(iOS/Android 都有),新建隧道:
[Interface]
PrivateKey = <phone_priv 内容>
Address = 10.0.0.2/24
DNS = 192.168.1.1 # 家里的 DNS
[Peer]
PublicKey = <server_pub 内容>
Endpoint = your-home-ddns.duckdns.org:51820
AllowedIPs = 192.168.1.0/24, 10.0.0.0/24
PersistentKeepalive = 25 Endpoint:家里公网 IP 或 DDNS 域名AllowedIPs:想访问的家里的网段PersistentKeepalive = 25:防止 NAT 超时断连
第四步:PostUp 路由规则
关键在让流量从 WG 接口转发到内网。上面服务端配置已含 iptables 规则,但需确认:
# 开启 IP 转发(永久生效写 /etc/sysctl.conf)
sysctl -w net.ipv4.ip_forward=1 路由器如果是 OpenWrt,还需在 LuCI → 网络 → 防火墙 → 自定义规则加:
iptables -I FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o br-lan -j MASQUERADE 第五步:验证连通
- 手机开 WG 隧道(滑到 ON)
- 手机终端/浏览器访问
http://192.168.1.100:5000(群晖 DSM 端口) - 应能打开 NAS 登录页
- 在服务端
wg show看到 handshake 时间
常见排障
| 现象 | 原因 | 解决 |
|---|---|---|
| 握手失败 | UDP 51820 没通 | 路由器端口转发 + 防火墙放行 |
| 握手成功但 ping 不通 NAS | IP 转发未开 | sysctl net.ipv4.ip_forward=1 |
| 能 ping 但打不开网页 | 没 MASQUERADE | 加 PostUp NAT 规则 |
| 4G 下连不上 | 运营商封 UDP | 换端口如 443/UDP 或 TCP 模式 |
| 回家 WiFi 后断 | AllowedIPs 和家网冲突 | 手机端 AllowedIPs 改更精确 |
总结:WireGuard 回家是 2026 年最稳的远程访问方案,配置量比 OpenVPN 小一个数量级,性能也好 3-5 倍。关键是把 PostUp 的 iptables 规则写对。