1118 字
6 分钟
测试immoralwrt和手机安装使用wireguard隧道连接功能
1. 路由器设置
1.1 安装
luci-proto-wireguardwireguard-tools1.2 重启路由器
1.3 网络—>接口—>添加新接口:
- 名称:
wg0 - 协议:选
WireGuard VPN - 创建接口
1.3.1 常规设置:
- 点击生成新的密钥对
- 设置监听端口:
23456 - IP地址:
10.66.66.1/24
1.3.2 高级设置:
- MTU:
1380 - 去掉勾选:使用该接口的网关作为默认网关
1.3.3 防火墙设置:
自定义,名称wg0,本处创建一个防火墙,具体配置要在 1.4.1配置
1.3.4 DHCP服务器:
- 不设置
1.3.5 对端:
添加对端:
- 點擊生成新的密钥对
- 允许的 IP 填写
10.66.66.2/32 - 持续保持连接 填写
25
多个对端ip向后排,在接口ip网段的范围内,掩码必须是32位,避免路由表冲突覆盖
1.4 网络—>防火墙
1.4.1 編輯1.3.3創建的防火墻
常规设置:
- 名称
wg0 - 入站数据:
接受 - 出站数据:
接受 - 区域内转发:
接受 - IP动态伪装(Masquerading):
可选 - 涵盖的网络(Covered networks):
wg0 - 允许转发到 目标区域(Allow forward to destination zones):
lan - 允许来自 源区域 的转发(Allow forward from source zones):
留空
高级设置
保持默认
- 覆盖的设备:未指定
- 覆盖的子网:留空
- IPv6 伪装:不勾选
- 地址族限制:默认 IPv4 和 IPv6
- 将 IP 动态伪装源地址限制在指定子网:0.0.0.0/0
- 将 IP 动态伪装目的地址限制在指定子网:0.0.0.0/0
- 启用此区域的日志记录:不勾
连接跟踪设置
保持默认
- 允许“无效”流量: 不勾
- 自动助手分配:默认,勾选
1.4.2 通信规则—>添加
常规设置
- 名称:自定义
allow wireguard - 协议:
UDP - 源区域:
wan wan6 - 源地址:
默认,不做配置 - 源端口:
任意 - 目标区域:
设备(输入) - 目标端口:自定义,与1.3.1端口相同,
23456 - 操作:
接受
高级设置:默认
时间限制:默认
2. 手机端操作
2.1 在路由器网页生产二维码
网络 → 接口 → wg0 → 编辑 → 对端 → 编辑 → 最下方的生成配置二维码(不要保存,完成2.3步之后再保存)
2.2 WireGuard App
添加 → 扫描二维码 → 起名字 → 保存
2.3 返回第2.1步路由器网页生产二维码操作
返回对端配置—>删除路由器里面的peer里的私钥,然后保存—>上一级保存,最后上一级保存并应用,避免服务端异常、多个peer只有一个能用问题
2.4 编辑刚才保存的节点
MTU
1380
对端把IP地址改成动态域名
若只需要访问内网设备,把最下面的**路由的IP地址(段)**改成:内网网段,例如192.168.1.0/24
区别:
| 写法 | 意义 |
|---|---|
| 0.0.0.0/0 | 手机上所有流量走 VPN |
| 192.168.1.0/24 | 只访问家里内网,目的地址非这个网段的都走手机本身的出口 |
3. 避坑
3.1 peer都不能握手
如果客户端开启了wg节点,但是不显示上次握手时间,也就是隧道无效果,那么重启wg0接口,或者重启路由器,再测试。
3.2 AllowedIPs 掩码坑
服务端 peer 写成 /24,多个peer情况,路由表会冲突被覆盖,结果仅一个peer可握手
解决办法:
1.3.1 常规设置章节的,设置一个大段用来容纳多个peer,各个peer的允许ip,既在接口ip网段内,又不能相互覆盖网段,最好都用32位掩码。例如:
| 位置 | 掩码 |
|---|---|
| 接口 IP | /24 |
| Peer AllowedIPs | /32 |
3.2.1 多 peer 正确结构举例:
| 服务端 | 客户端(peer) |
|---|---|
| wg0: 10.66.66.1/24 peer1: 10.66.66.2/32 peer2: 10.66.66.3/32 peer3: 10.66.66.4/32 | Address = 10.66.66.X/24 Address = 10.66.66.X/24 |
3.3 服务端不能填写 peer 私钥
在 OpenWrt 里,给 peer 填了:私钥,会导致只有一个peer正常连接,因此在保存完peer配置后,必须’删除peer的私钥’并保存应用:
- OpenWrt 生成一个“本地 peer 接口”
- 内核状态异常
- 新 peer 握手失败
- 或覆盖旧 peer
WireGuard 正确的密钥关系:
| 服务端(wg0 接口) | 每个 Peer(客户端) |
|---|---|
| 有自己的私钥 有自己的 公钥 | 只填写 客户端的公钥 ❌ 不应该填写客户端私钥 ❌ 服务端绝对不应该保存客户端私钥 |
3.4 peer用同公网出口冲突
peer使用相同公网出口,wireguard服务端只会记住最后一个,其他都忽略,因此,peer不能使用同一个公网出口。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
测试immoralwrt和手机安装使用wireguard隧道连接功能
https://blog.rax.pp.ua/posts/openwrt-wireguard/ 最后更新于 2026-02-15,距今已过 39 天
部分内容可能已过时
Firefly