提示词:
1、我有一个爱快路由器,型号Q3000 在我老家六盘水盘州。接入300M宽带,有公网IPv6地址。
2、我还有一个cmcc rax3000m路由器,已经刷入immortalwrt24.10.6 在贵阳。接1000M宽带,有公网IPv6地址。
3、2台路由器上我均已配置DDNS 自动解析IPv6地址
现在我想在这2个路由器上配置wireguard.打通2地网络,通过ipv4互通内网。ImmortalWrt 25.12.0-r2 我还没有安装wireguard.
使用的时apk安装软件。请给我详细的教程。根据你的需求(两台 ImmortalWrt 路由器通过 IPv6 公网地址建立 WireGuard 隧道,实现两地 IPv4 内网互通),以下是详细配置教程
该教程文档所搭建得Wireguard服务端主要在爱快路由器,并且可以正常使用。Opentwrt端的服务端不能正常使用,原因我想大概是运营商限制了。为啥爱快路由器上的服务端没有被限制呢,AI搜索了一下,说是爱快在Wireguard的基础上作了改动,可以减低运营商封锁的几率。
第一步:在两台路由器上安装 WireGuard
爱快路由器上无需安装WireGuard
通过 SSH 登录到每台路由器,执行以下命令:
# 更新软件源
opkg update
# 安装 WireGuard 内核模块和工具(关键步骤)
opkg install wireguard-tools kmod-wireguard luci-proto-wireguard
✅ 说明:
wireguard-tools:提供wg和wg-quick命令行工具。
kmod-wireguard:WireGuard 内核模块(必须安装,否则无法创建隧道)。
luci-proto-wireguard:LuCI Web 界面插件(可选,但推荐用于可视化配置)。
安装完成后验证:
modprobe wireguard
wg若无报错,说明安装成功。如果有报错需要解决报错。
安装完成后重启路由器:
reboot第二步:规划网络参数
⚠️ 注意:
确保两台路由器的防火墙放行 UDP 端口
58081(IPv6 流量)。DDNS 已正确解析 IPv6 地址(可通过
ping6 panyu.example.com测试)。
第三步:生成密钥对
在每台路由器上生成密钥(SSH 执行):
盘州路由器 (Q3000)
在immortalwrt上执行
mkdir -p /etc/wireguard
chmod 700 /etc/wireguard
# 生成私钥和公钥
wg genkey | tee /etc/wireguard/private_q3000.key | wg pubkey > /etc/wireguard/public_q3000.key
# 查看公钥(记录下来)
cat /etc/wireguard/public_q3000.key
# 输出示例: A1B2C3...xyz= (记为 PUBLIC_KEY_PANZHOU)
贵阳路由器 (RAX3000M)
mkdir -p /etc/wireguard
chmod 700 /etc/wireguard
wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
cat /etc/wireguard/public.key
# 输出示例: X9Y8Z7...abc= (记为 PUBLIC_KEY_GUIYANG)
第四步:配置 WireGuard 隧道
1. 盘州路由器配置
登录爱快后台 → 网络设置 →VPN客户端-> WireGuard → 添加新接口。
填写以下参数:
名称:
wg0本地公钥: 粘贴
/etc/wireguard/public_q3000.key的内容本地私钥: 粘贴
/etc/wireguard/private_q3000.key的内容监听端口:
58081分配的 IPv4 地址:
10.0.0.1/24
添加对端 (Peer):
公钥: 贵阳路由器的公钥 (
PUBLIC_KEY_GUIYANG)端点主机:
guiyang.example.com(贵阳的 DDNS 域名)端点端口:
58081Allowed IPs:
192.168.8.0/24, 10.0.0.2/32(允许访问贵阳内网)Persistent Keepalive:
25(秒)
2. 贵阳路由器配置(通过 LuCI 界面)
进入 LuCI → 网络 → 接口→ 添加新接口。
填写参数:
名称:
wg0协议WireGuard VPN私钥: 贵阳的私钥
监听端口:
58081分配的 IPv4 地址:
10.0.0.2/24
添加对端 (Peer):
公钥: 盘州路由器的公钥 (
PUBLIC_KEY_PANZHOU)端点主机:
panzhou.example.com端点端口:
58081Allowed IPs:
192.168.9.0/24, 10.0.0.1/32Persistent Keepalive:
25
第五步:配置防火墙和路由
1. openwrt路由器中将 WireGuard 接口加入 wg0区域
在 网络 → 防火墙 中:

放开openwrt路由器中的58081端口。我这里的DDNS解析到br-lan接口的ipv6地址。在网络->通信规则中配置如下,保存应用。

2. 添加静态路由(关键!)
盘州路由器:
网络 → 静态路由 → 添加:
目标:
192.168.8.0/24网关:
10.0.0.2(贵阳的 WG 私有 IP)
贵阳路由器:
网络 → 静态路由 → 添加:
目标:
192.168.9.0/24网关:
10.0.0.1(盘州的 WG 私有 IP) 这里是在Luci界面添加的,我添加后,并不能ping通192.168.9.1 使用以下方式3添加路由
3.通过 /etc/config/network 手动配置(可靠)
vi /etc/config/network在 config interface 'wg0' 下添加:
list iproute '192.168.9.0/24 via 10.0.0.1'然后重启网络:
/etc/init.d/network restart再检查:
ip route show | grep 192.168.9
# 应输出:192.168.9.0/24 via 10.0.0.1 dev wg0第六步:测试连通性
检查隧道状态:
wg show wg0确认
latest handshake时间在 1 分钟内。
测试内网互通:
从盘州内网设备 ping 贵阳内网设备:
ping 192.168.8.1从贵阳内网设备访问盘州的服务(如 NAS、摄像头)。
生成手机端配置文件
在immortalwrt上执行
mkdir -p /etc/wireguard
chmod 700 /etc/wireguard
# 生成私钥和公钥
wg genkey | tee /etc/wireguard/private_vivox200.key | wg pubkey > /etc/wireguard/public_vivox200.key
# 查看公钥(记录下来)
cat /etc/wireguard/public_vivox200.key
# 查看私钥(记录下来)
cat /etc/wireguard/private_vivox200.key客户端下载https://my.feishu.cn/drive/folder/AGYNfOmBal2wiRdkDu4cOOGUnIc?from=from_copylink
在immortalwrt 网络->接口-wg0->对端->添加对端

保存一下对端配置,然后再进入这个对端中,点击生成配置。如下填写。手机端扫码导入配置。

故障排查
无法建立隧道:
检查公网 IPv6 是否可达:
ping6 guiyang.example.com检查防火墙是否放行 UDP 58081(IPv6)。
使用
tcpdump -i eth0 udp port 58081抓包验证流量。
能连通 WG 接口但无法访问内网:
确认静态路由已正确添加。
检查对方路由器的防火墙是否允许来自
10.0.0.0/24的流量。
通过以上步骤,你的两地网络将通过 IPv6 公网建立加密隧道,实现 IPv4 内网无缝互通。