openwrt(iStoreOS)配置wireguard服务端,以及手机客户端配置

前言

最近把之前收来的洋垃圾重装了个黑群晖系统,然后群晖的虚拟机启动了一个iStoreOS的虚拟机以旁路由模式启动的(就是只有一个lan口),然后开始折腾异地组网、远程回家什么的

在整wireguard的时候遇到了一些问题,这里分享给大家

先给大家推荐一些好用的异地组网方案:

  • zerotier: 这个最简单也最平民了,不用公网IP,而且速度什么的都挺好(openwrt、群晖、PC、手机什么客户端都有)
  • 节点小宝:这个免费版的也够用,服务器应该是在国内
  • Tailscale:这个基于 WireGuard 协议的简单易用虚拟局域网服务(还没体验过,有体验过的可以分享)
  • frp:这个需要有个公网的云服务器,在云服务器开启frp服务端,然后家里和你在外面的设备安装客户端(如果家里有公网IP,也可以直接在家里部署服务端)
  • wireguard:和frp一样,可以部署在公网的云服务器,如果家里有公网IP的话,也可以部署在家里

我最初用的是Zerotier,但是由于公司的态势感知,封禁了很多网站,估计是白名单模式,所以后来用了节点小宝,不过因为我家里有公网IP,自己也有个域名配置了ddns,就打算自己搞个wireguard服务端

前提条件

在openwrt安装wireguard需要你的openwrt所在网络有公网IP,否则没法搞

软件包安装

由于官方的iStoreOS默认是不带wireguard相关软件,所以需要手动安装

点击系统,然后点击软件包,进入软件安装界面。

  1. 先点击更新
  2. 然后在搜索框内输入wireguard进行软件筛选,安装如下软件
  3. 所有软件安装完成后重启系统,让wireguard生效

image

#wireguard软件包
kmod-wireguard
luci-app-wireguard
luci-i18n-wireguard-zh-cn
luci-proto-wireguard
wg-installer-server
wg-installer-server-hotplug-babeld
wg-installer-server-hotplug-olsrd
wireguard-tools
qrencode    #可选,建议,将wireguard配置生成二维码,方便手机扫描添加

luci-app-wireguard、luci-i18n-wireguard-zh-cn这两个我没有找到,谁有离线包的话可以分享一下,非常感谢!

如果更新软件包失败的话,可以在首页配置软件包,或者直接离线上传

image

我的步骤也是参考别的大佬搞的 https://ikula.org/istoreos作为旁路由安装wireguard/

wireguard 配置

点击网络,在点击接口,添加一个接口,名称随意(我直接输入了wg),协议选择wireguardVPN

image

常规配置

打开添加接口的常规配置页面,配置这几项:

  1. 直接点击生成新的密钥对,私钥和公钥就生成了
  2. 监听端口这里随便输入一个openwrt未被占用的端口(1-65535),最好是大于2000的
  3. 输入一个wireguardVPN的内网IP地址,(不要和你路由器的IP在同一个网段)
  4. 点击IP地址的加号

如果你之前有服务端配置,可以直接点击导入配置文件导入

防火墙

创建/分配防火墙区域设置为lan,也可以再手动输入一个区域,比如wg

image

Peers

配置对端(这里的对端就是客户端)

点击添加对端(如果你有配置文件,可以直接导入)

image

  1. 输入配置名称,随意
  2. 点击生成新的密钥对
  3. 点击生成预共享密钥
  4. 输入允许的IP(这里的IP需要和前面常规配置中的wireguardVPN的内网IP地址在同一个网段内,并且不重复)
  5. 点击允许的IP表单的加号,添加上去
  6. 可以勾选一下路由允许的IP
  7. 持续Keep-Alive我配置的25,
  8. 端点主机配置你的公网IP或者域名(大佬的文档中是空着的)

image

image

  1. 点击生成配置,这里修改一些内容:
  • 连接端点:输入你的公网IP或域名
  • 允许的IP,输入允许在隧道内放通的流量,一般是你局域网的网段(不是wireguard的网络)
  • DNS服务器:配置Peer端的DNS,可以直接输入8.8.8.8
  • 地址就是前面配置的Peer端的地址
  1. 手机可以用wireguard app扫码快捷配置
  2. 最后保存即可,保存对端和保存接口
  3. 在接口页面点击保存并应用

image

把wireguard的服务端端口通过路由器转发出去

你的光猫需要是桥接模式,路由器直接拨号,要不然转发不出去

在路由器的端口转发这里,添加一个端口转发,把你openwrt这个IP的wireguard应用端口转发出去

前面已经设置好了wg使用外部公网ip的4321端口作为数据传输接口,但iStoreOS作为旁路由的是作为一台内网的机器,所以还需要将公网的4321端口映射到iStoreOS上才能完成数据的传输,这里以Redmi AX6S硬路由举例。登录路由器管理后台,选择高级设置,端口转发。添加一条如下的规则。避免出现什么bug,协议建议选择TCP和UDP

image

配置openwrt的防火墙规则

大佬们分享的时候,是点击网络,选择防火墙,选择自定义规则,填写如下规则。填写完成后需要重启系统,让wireguard接口与防火墙规则生效。

# 注意此条防火墙网段 10.1.1.0/24 需和上文服务端 IP 网段保持一致.
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o br-lan -j MASQUERADE

借用大佬的截图

image

但是我这里的版本没有防火墙规则这个表单项啊,难搞,有知道怎么配置的可以分享下

image

因为我这里是旁路由,所以我openwrt的防火墙规则就瞎搞了,以能放通wireguard为目的

可以不添加这个规则,直接测试

手机客户端配置

手机打开WireGuard软件,扫描前面的配置二维码,就会自动同步配置

扫码会提醒配置隧道名称,这里你随便写,然后编辑这个隧道,看看那些配置对不对,我这里就遇到了一些没有自动生成的内容

image

配置完成后,点击保存,然后连接vpn,可以点进配置文件,看下有没有握手成功,没有握手成功就检查openwrt

如果握手成功了,可以手机输入openwrt的内网IP地址(不是vpn的地址)测试一下

问题排查过程

如果连上vpn发现不通,可以进行一些简单的排查

查看WireGuard状态

点击状态 - WireGuard,可以看到WireGuard的状态,如果没有的话,估计是WireGuard没有成功运行,点击网络 - 接口,重启wg这个接口

查看wireguard的IP有没有生成

连接openwrt的shell(可以开启ssh权限,也可以用openwrt的terminal)

执行ip a命令,查看wireguard的接口有没有,并获取到了IP(网卡名和前面创建的接口名一致)

image

我发现一旦有点改动,WireGuard的接口就会丢,需要在网络 - 接口,重启这个wg接口

并且这个接口不会开机自启

posted @ 2025-07-05 12:25  明月,  阅读(5154)  评论(2)    收藏  举报