OpenWrt WireGuard 客户端配置:路由、DNS 与流量验证

OpenWrt WireGuard 客户端配置:路由、DNS 与流量验证

Kevin Wu
2026年10月11日· 7 分钟阅读

OpenWrt WireGuard 客户端需要对端、路由、防火墙许可和可用返程,局域网设备才能真正使用隧道。先限定一台授权设备和一个目标,再分别验证 DNS、IPv6,最后才扩大覆盖范围。

关键要点

  • 最近握手只证明对端能通信,不证明 LAN 转发成功。
  • AllowedIPs、系统路由、防火墙与 DNS 各有职责。
  • 保留不依赖隧道的有线管理通道。
  • 默认路由变更可能影响其他设备及路由器自身。
  • 本示例不提供自动阻止 WAN 回落的保护。

OpenWrt WireGuard 客户端适合你的网络吗?

本文适用于 OpenWrt 25.12 稳定系列、fw4/nftables,设备须受支持且有足够存储空间。该系列使用 apk;不要混装旧版 opkg 包或快照内核组件,安装前先核对设备固件支持。[1]

本文按所列官方文档与实现整理,未进行完整端到端硬件实测。下列检查描述读者应观察的现象,不是作者测得的结果;仅操作自有或获授权的网络和端点。

先用自建任务责任清单明确密钥与恢复由谁负责。如果只是日常浏览,而非控制路由器,先比较整台设备与单应用的覆盖范围:终端建立连接,不会自动保护其他 LAN 设备。

步骤 1:记录支持条件、凭据和恢复基线

管理电脑通过网线连接,使用原 LAN 地址新开 LuCI 或 SSH 会话,记录电脑地址、子网、网关和 DNS。不要把它纳入改变出口的测试,并确认本机型的恢复流程。更换固件前参考固件变更准备清单;安装软件包并不等于升级固件。

在 LuCI 备份页面下载归档,私密保存在路由器外;其中可能包含密码和私钥。另记下本次新增的 network、firewall 节,因为恢复整份备份会覆盖备份之后其他人做的修改。

准备自有端点域名、UDP 端口、服务器公钥、可选预共享密钥和分配的隧道地址。确认服务器允许此客户端身份及目标转发或私网服务。不要把私密配置交给在线转换器,也不要公开诊断材料中的凭据。

示例测试设备为 192.168.8.10,LAN 为 192.168.8.0/24,隧道客户端为 10.77.0.2/32,授权目标为 10.77.0.1。网络不同或地址重叠时先替换。sh25_ 开头的节名和接口 wg_test 必须空闲,已有同名配置就停止,不能接管。

步骤 2:创建接口与对端,先不接管默认路由

仅从路由器已配置、可信的 25.12 仓库安装协议与 LuCI 支持。依赖或内核版本报错就停止,不强制安装,也不下载另一发行版的内核模块。[2]

apk update
apk add wireguard-tools luci-proto-wireguard

在 Network → Interfaces 新建 wg_test,协议选 WireGuard VPN,本地输入客户端私钥和分配地址。添加一个 peer,填写服务器公钥、端点和端口,保留其他接口定义。

下文是配置片段,不能替换整份 /etc/config/network。大写占位符须私密替换;只有原配置要求时才加入预共享密钥。[3]

config interface 'wg_test'
        option proto 'wireguard'
        option private_key 'CLIENT_PRIVATE_KEY'
        list addresses '10.77.0.2/32'

config wireguard_wg_test 'sh25_peer'
        option public_key 'SERVER_PUBLIC_KEY'
        option endpoint_host 'AUTHORIZED_ENDPOINT_HOST'
        option endpoint_port 'AUTHORIZED_UDP_PORT'
        list allowed_ips '10.77.0.0/24'
        option route_allowed_ips '1'

复核后使用 LuCI 的 Save & Apply,再连接未改变的管理地址。连接失败时等待待确认变更自动回退,不要反复接受设置。启用客户端接口不需要开放 WAN 管理入口。

OpenWrt VPN 客户端路由究竟改变什么?

AllowedIPs 指定哪些目标归某个 peer,同时约束隧道接受的源地址;它不授予防火墙权限。OpenWrt 的 route_allowed_ips 额外要求安装系统路由,实现默认值为 0,本例为有限目标显式设置 1。[3]

层次检查值能证明的事项
接口wg_test、分配地址本地隧道接口存在
对端端点、公钥、AllowedIPs对端与允许地址集合正确
路由10.77.0.0/24 指向隧道该目标选择此接口
防火墙测试源允许前往隧道客户端获得转发许可
返程服务器路由或获准转换响应能回到原请求方
DNS实际解析器及其路由域名解析从哪条路径离开

扩大地址集合前先理解AllowedIPs 与路由的区别。若需 IPv4 互联网出口,将有限前缀换成 0.0.0.0/0 并启用自动路由会改变默认路径,可能影响全部 LAN 客户端和路由器自身请求。只能在隔离测试 LAN 或获准维护窗口执行,并保留到 WAN 端点的路由。

未启用 nohostroute 时,netifd 通常跟踪端点可达性。检查已解析端点的实际路由,确保它不会进入自己的隧道;启动前域名解析也必须可用。默认路由不等于断线保护。两台设备要走不同路径时,使用按设备分流流程,不要套用全局默认路由示例。[3]

步骤 3:只授予需要的转发权限

建立独立防火墙 zone sh25_wg,绑定 wg_test,设置 input REJECT、output ACCEPT、forward REJECT。用 IPv4 流量规则允许源 192.168.8.10 从实际 LAN zone 前往 sh25_wg,规则名可为 sh25_client_forward。不要新增 WAN 到 LAN 或路由器管理面的许可。[4]

有限私网目标测试有两种返程方案:服务器配置获授权的 LAN 返程路由及对应 peer AllowedIPs,或者在独立隧道 zone 开启 IPv4 masquerading。与服务器负责人选定一种并记录。转换能简化返程,但远端服务看不到单独 LAN 源身份,也不会因此自动取得访问授权。

保留既有 WAN 和管理规则,应用前检查配置,再查看生成的 nftables 规则。语法正确仍需测试设备发出真实转发请求。不清空全局防火墙,否则会删除其他服务的权限和保护。

如何检查 OpenWrt WireGuard DNS 与 IPv6?

先记录测试设备当前解析器。设备向路由器发出的查询在本机处理,而路由器随后发出的上游查询是另一条流,源不再是原 LAN 设备。把 DNS 地址写入配置文件,不能证明查询走哪个接口。[4]

若要用隧道可达的解析器,明确在客户端或路由器对应 DNS 设置中配置,核对其路由,并解析一次你控制的新域名。分别比较设备解析器、路由器上游选择和应用行为;浏览器加密 DNS 可能使用另一端点。不要向整个 LAN 通告不可达解析器。

只配置 IPv4 路由时,可用 IPv6 默认路径仍然独立。只有端点提供获授权的 IPv6 转发、地址有效、服务器接受所需源,并设计好 IPv6 防火墙和返程,才添加 ::/0。IPv4 masquerading 不能解决 IPv6 返程。缺这些条件就不能声称整机覆盖,也不要关闭共享网络 IPv6 来制造通过结果。

步骤 4:验证、断连、重启并恢复

以下命令在路由器查看状态,不显示私钥。公钥身份和端点信息若非必要且获授权,也不应写入共享报告。[3]

ifstatus wg_test
wg show wg_test latest-handshakes
wg show wg_test transfer
ip -4 route show
ip -6 route show
nft list ruleset
检查方法预期现象失败时处理
测试设备请求 10.77.0.1 的授权服务请求成功,对应隧道计数增加分别排查对端、路由、转发和返程
路由器自身重复请求单独记录路由器结果不据此推断 LAN 成功
检查新 DNS 查询和选定解析器解析器与路径符合设计还原 DNS 变更并检查上游路由
获准全出口分支分别测两种地址族IPv4、IPv6 出口符合各自策略IPv6 缺失或绕行仍属未解决分支
仅停 wg_test 后建立新连接私网目标失败,公网按普通路由回落不宣称失败关闭,保留有线管理
恢复接口,仅重启授权测试路由器保存的配置回来且检查结果一致本地恢复并对照持久配置

公网出口分支请在测试设备核对互联网可见出口。IP 结果不能证明 DNS、全部应用路径或入站保护。每次改变后都建立新连接,旧会话与 DNS 缓存可能掩盖路由变化。

撤销时先恢复设备改过的网关和 DNS,再通过有线管理停用 wg_test。仅删除本次 sh25_peer、wg_test、sh25_client_forward、sh25_wg,以及本次新增路由或 DNS 条目,通过原配置负责人应用。重新核对 LAN 管理、原 WAN 路由、DNS 和未参与设备;软件包只有本次独用且没有其他依赖时才移除。

管理不可达则按机型本地恢复流程使用私密备份,不先重置共享路由器。恢复完成的依据是新请求重新走原路径,不只是 LuCI 能打开。

总结

  • 先验证有限目标,再考虑互联网默认路由。
  • 分别确认 LAN 转发和服务器返程。
  • 明确记录 DNS、IPv6、断连与重启行为。
  • 恢复时只删除本次设置。

常见问题

握手成功代表所有 LAN 设备都走 WireGuard 吗?

不代表。握手证明对端能通信,各设备请求仍依赖路由、防火墙与返程,必须从真正需要覆盖的设备发出请求验证。

应该立即把 0.0.0.0/0 放进 AllowedIPs 吗?

先使用获授权私网前缀。默认前缀配合自动路由可能改变其他设备和路由器请求,扩大前先评估全网影响。

客户端需要开放 WAN 管理规则吗?

本出站客户端流程不需要 WAN 管理规则。LuCI 和 SSH 应保留原受限管理路径,不能为了连接故障暴露它们。

路由器能访问服务器,电脑却不能,原因是什么?

路由器自身请求走 output,电脑请求需要 forwarding 与返程。先检查电脑源地址和独立隧道 zone 的转发许可。

隧道启动后 DNS 会自动切换吗?

不能这样假定。分别检查设备解析器和路由器上游,包括应用的加密 DNS,再判断域名解析覆盖范围。

停止 WireGuard 会阻止普通互联网流量吗?

本配置没有该承诺。已有 WAN 路由和许可可能承载新公网请求;需要阻断时须另设失败策略并实际验证。

恢复备份之前需要核对其他变更吗?

需要,整机恢复会覆盖归档之后的变更。优先删除本次命名节,只有明确获准的恢复范围才使用整份备份。

来源:

  1. OpenWrt — 25.12.0 release notes — https://openwrt.org/releases/25.12/notes-25.12.0
  2. OpenWrt — WireGuard client and documentation index — https://openwrt.org/docs/guide-user/services/vpn/wireguard/client ; https://openwrt.org/docs/guide-user/services/vpn/wireguard/start
  3. OpenWrt 25.12 — WireGuard netifd protocol implementation — https://raw.githubusercontent.com/openwrt/openwrt/openwrt-25.12/package/network/utils/wireguard-tools/files/wireguard.sh
  4. OpenWrt — Firewall configuration — https://openwrt.org/docs/guide-user/firewall/firewall_configuration

Sources checked 2026 年 10 月 11 日。


延伸阅读:

开启 3 天免费试用

注册即可免费体验全部高级功能。

*仅限新用户;每位用户只能获得一次试用。

OpenWrt WireGuard 客户端配置:路由、DNS 与流量验证 | AethoVPN