WireGuard 服务端完整配置说明(OpenWrt 旁路由 + 爱快)

前言

本文记录在 OpenWrt 旁路由上部署 WireGuard 服务端的完整流程,包含密钥生成、接口配置、防火墙区域、客户端配置及排错。适用于远程访问家庭内网的场景。


一、用途说明

WireGuard 是一个轻量级现代 VPN。在本方案中:

  • 📱 手机或笔记本在外网时安全连接回家里网络
  • 🏠 连接后可访问家中局域网设备(NAS、路由器等)
  • 🔒 让所有手机流量都走家里出口,只让访问内网的流量走 VPN

适用场景

  • OpenWrt 作为旁路由 + 爱快作为主路由
  • 远程访问 NAS、OpenWrt、家庭设备
  • 出门在外需要访问家中内网资源

二、当前网络规划

角色IP / 网段
爱快主路由192.168.0.1
OpenWrt 旁路由192.168.0.3
WireGuard 虚拟网段10.6.0.0/24
WireGuard 服务端地址10.6.0.1
第一个手机客户端地址10.6.0.2

三、安装所需包

apk update
apk add kmod-wireguard wireguard-tools luci-proto-wireguard
包名作用
kmod-wireguardWireGuard 内核模块
wireguard-tools提供 wg 命令
luci-proto-wireguardLuCI 网页支持 WireGuard

四、生成服务端密钥

mkdir -p /etc/wireguard
wg genkey | tee /etc/wireguard/server_privatekey | wg pubkey > /etc/wireguard/server_publickey
chmod 600 /etc/wireguard/server_privatekey
cat /etc/wireguard/server_publickey

五、创建服务端接口

uci set network.wg0='interface'
uci set network.wg0.proto='wireguard'
uci set network.wg0.private_key="$(cat /etc/wireguard/server_privatekey)"
uci add_list network.wg0.addresses='10.6.0.1/24'
uci set network.wg0.listen_port='51820'
uci commit network
service network restart
uci show network.wg0

六、开放防火墙端口

uci add firewall rule
uci set firewall.@rule[-1].name='Allow-WireGuard-Inbound'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].dest_port='51820'
uci set firewall.@rule[-1].proto='udp'
uci set firewall.@rule[-1].target='ACCEPT'
uci commit firewall
service firewall restart

七、防火墙区域(推荐方案)

uci add firewall zone
uci set firewall.@zone[-1].name='wg'
uci add_list firewall.@zone[-1].network='wg0'
uci set firewall.@zone[-1].input='ACCEPT'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='ACCEPT'
uci set firewall.@zone[-1].masq='1'
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='wg'
uci set firewall.@forwarding[-1].dest='lan'
uci commit firewall
service firewall restart

八、确认运行状态

wg show

正常应看到 interface: wg0listening port: 51820


九、生成客户端密钥

wg genkey | tee /etc/wireguard/client1_privatekey | wg pubkey > /etc/wireguard/client1_publickey
chmod 600 /etc/wireguard/client1_privatekey
cat /etc/wireguard/client1_publickey

十、添加客户端 Peer

uci add network wireguard_wg0
uci set network.@wireguard_wg0[-1].description='phone'
uci set network.@wireguard_wg0[-1].public_key='客户端公钥'
uci add_list network.@wireguard_wg0[-1].allowed_ips='10.6.0.2/32'
uci commit network
service network restart
wg show

十一、手机客户端配置

Interface

参数
地址10.6.0.2/24
私钥client1_privatekey 内容
DNS192.168.0.3

Peer

参数
公钥server_publickey 内容
Endpoint公网IP:51820
AllowedIPs192.168.0.0/24,10.6.0.0/24
PersistentKeepalive25

十二、爱快端口映射

参数
协议UDP
外部端口51820
内部 IP192.168.0.3
内部端口51820

十三、排错:握手成功但访问不了内网

两种解决方式:

方式一:爱快加静态路由

目标网段10.6.0.0
子网掩码255.255.255.0
网关192.168.0.3

方式二:OpenWrt 做 NAT(已在步骤七配置)

WG-Masquerade 规则:源区域 wg → 目标区域 lan,动作 MASQUERADE。


十四、安全建议

  • 🔒 永远不要公开:服务端私钥、客户端私钥、路由器密码、订阅链接
  • 私钥泄露后应全部重新生成

十五、推荐最终策略

客户端: AllowedIPs = 192.168.0.0/24, 10.6.0.0/24

OpenWrt: wg 区域 + wg→lan 转发 + WG-Masquerade

爱快: UDP 51820 端口映射 + 可选静态路由


本文最后更新:2026-08-15 | 静静整理发布

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。