IStoreOS 固件开启 Ipv6 并实现异地远程访问
前言
眼馋 ipv6 很久了,在查看相关的文字教程和视频后 开始对自己的家的路由器下手了,一顿折腾后,终于可以通过 ipv6 (配置了域名) 访问自家的设备了,附上成功的截图,通过域名访问
如果你想通过 ipv6 + 域名 + https
异地访问自家的路由器管理后台,可以参考我的配置方式
设备环境
我的网络拓扑如下(运营商是联通的):
- 光猫:让安装人员改好了桥接模式,开放了
IPv6
下发; - 主路由:
R2S
,安装了iStoreOS
(版本:22.03.7 2024120615)的openwrt
固件,负责pppoe
拨号; - 无线
AP
:斐讯k2p
,设置成了无线 AP 模式,不负责DHCP
,地址分配任务交给了openwrt
(能减少一层nat
算一层)
准备好了,我接下会按照 ipv6 + 域名 + https
的顺序介绍,一步步实现异地访问自家的路由器管理后台
一、openwrt 获取 ipv6
光猫开启了 ipv6
后,openwrt
还没有配置 IPv6
相关的设置
所以第一步,要先配置好相关的 IPv6
设置
在iStoreOS
固件中,可以通过系统便利工具
,方便地配置好 IPv6
相关的设置
该工具可以在侧边栏的
iStore
插件商店中找到,安装即可
选择 IPv6 Full
,点击执行,等待执行完成,关闭弹出的命令行窗口
接下来配置 openwrt
的网络
,还需要配置一下接口 lan
的有关 IPv6
的设置
找到 lan
接口,点击 编辑
按照顺序完成如下的配置,最后再点击保存
修改高级设置
修改 DHCP
的 IPv6
设置,RA 选择服务器模式,不启用 DHCPv6 服务
修改
IPv6 RA
设置,RA 标记选择 无
完成这几项配置后,回到刚刚的
网络 --> 接口
页面,点击保存并应用,等待一会
二、获取域名并配置 DDNS-GO
通过
dync6
注册一个免费域名,域名的注册方法不在这里赘述,你也可以用自己已有的域名,方法类似
假设你已经注册好了域名,现在需要先把 DDNS-GO
和 ACME 证书
要用的信息记录下来
- 注册好的域名
- 配置
DDNS-GO
和ACME 证书
需要的token
令牌
接下来就是 DDNS-GO
的配置,请参考下图
URL 的链接格式如下
https://dynv6.com/api/update?zone=#{domain}&token=替换成你的token令牌&ipv6=#{ip}
点击 save
,等待 3~5
分钟,去
dynv6
网站的后台,查看域名的 DNS
记录里,是否自动添加一条 AAAA
的记录,正常情况如下所示
已经成功一大半了,接下来,我们还需要配置 ACME 证书服务,以及 uhttpd 服务,为了能够,安全的从外网异地访问我们的路由器管理后台,麻烦一点也是值得的!
三、配置 ACME 证书服务
找到 服务 --> ACME 证书
,打开 ACME 证书
插件(没有请自行安装),如下图所示,填入自己注册域名使用的邮箱,删除默认提供的示例
添加新配置
配置常规设置,添加域名信息
配置质询验证
相关配置项:
- DNS API:
dns_dynv6
- DNS API 凭证:
DYNV6_TOKEN=你的TOKEN令牌
DNS API 的值,每家域名提供商的值都不一样,请在这里找自己域名家的 ACME 支持的 API 列表
完成上面的配置,最后点击保存,可以看到添加如下的配置,点击保存并应用
耐心等待 3~10
分钟等待证书颁发,登录路由的器 SSH
,检查证书密钥文件是否下发到我们的设备,正常应该如下图所示:
查看的路径为:
/etc/acme/你的域名/
如果拿到了 fullchain.cer
和 域名相对应的 *.key
密钥,就可以配置最后的 uhttpd
服务了
如果还是没有拿到,请检查
证书配置
,是否填写正确 !
四、配置 uhttpd 服务与 socat 端口转发
打开 uhttpd 插件,选择对应的证书和密钥
选好了证书和密钥
如果你之前配置了其他的证书和密钥,建议删除后再配置,以免发生冲突!
由于 iStoreOS
采用的是 22.03
版本的 openwrt
,防火墙的端口转发,不支持转发 ipv6 地址,所以只好用 socat
来进行端口转发,曲线救国
接下来开始配置 socat
,找到 网络 --> socat
插件(没有请自行安装)
添加转发规则
返回概览,检查端口转发的状态是否开启,如果失败可能是监听的端口有冲突
五、测试 ipv6 是否可达
终于到最后一步了,成败在此一举! 通过 ipv6 测试站点 ,测试我们的路由器后台是否可达,得带上端口号测试!
成功!
域名的记录,需要一些时间,等一会再测试会比较稳定
碎碎念
拿到公网 IP,可以做的事情就很多了,包括单不限于
- 和朋友游戏远程联机更加方便;
- 搭建自己的属于自己服务器,部署一些服务
- 部署自己的 AI 服务,异地远程访问
uhttpd
服务也许可以换成 Nginx
反向代理?
这样可以更加灵活的配置一些需要加密访问的服务
IPv6
有时候会有点不稳定,配置的过程中不要着急,一步步来
特别是 DDNS-GO 和证书,域名的记录和证书的颁发,需要一些时间
参考资料
参考了很多大佬的资料和视频,少走了很多弯路,感激涕零,整理如下