前言

Cloud­flare作为国际知名CDN大厂,堪称业界良心。集成了域名解析,防火墙等功能。这次我们使用Cloudflare提供的api,对家宽动态ip进行ddns解析,保证我们能每次访问到正确的ip。特别是在2022年基本上运行商只提供公网ipv6。众所周知,ipv6地址不同于ipv4,手动输入替换几乎是不可能的事情,所以我们需要用域名访问我们搭建的服务。本教程主要讲解OpenWrt配置Ipv6以及通过公网ipv6访问OpenWrt-Webui,其他服务类似,可以参考进行ddns即可。如果你有ipv4公网,同样照葫芦画瓢即可。

准备工作

  • ipv6公网地址
  • openwrt
  • cloudflare账户
  • 域名一枚

路由器和光猫开启ipv6地址访问

大部分光猫支持并已经开启了ipv6,如果光猫未开启ipv6,下面操作都无效。光猫开启ipv6可能需要使用超级管理员,可能您需要致电对应运营商获取方法。我这边用的是电信的2014年的光猫,同样支持ipv4&ipv6。
大部分路由器不支持ipv6,2022年后新出的路由器大概率支持ipv6,具体是否支持请自行检查。部分路由器需要手动开启ipv6支持,请自行解决。
路由器开启ipv6地址访问
另外多说一下:有条件建议使用光猫桥接模式,具体请谷歌搜索相关教程

OpenWrt开启ipv6地址支持

参考 恩山论坛
在进行这一步请先确定路由器已经开启ipv6并且有ipv6地址,可以将路由器,openwrt以及电脑连接在同一局域网下,在电脑上通过test-ipv6检测。出现如下图即表示路由器已经接入并分配了ipv6地址。
test-ipv6
教程使用的OpenWrt R22.6.16 (2022-06-16 10:31:02 by flippy) 固件,并且作为旁路由,参考论坛上的方法进行设置

添加ipv6新接口

添加新接口(名称:lan6,协议:DHCPv6客户端,自定义接口:@lan,不要误写成@lan6
添加ipv6新接口

设置lan6口防火墙

将lan6接口的防火墙设置选为lan
设置lan6口防火墙

开启IPv6 DNS解析

部分老固件默认关闭ipv6 dns解析,需要手动取消
开启IPv6 DNS解析

清空IPv6 ULA前缀

清空IPv6 ULA前缀

保存后重启

重启后查看接口,如果上面已经接入ipv6,此时应该能查看到OpenWrt已经获取到公网ipv6地址(请勿泄露)
保存后查看

配置Cloudflare-Ipv6-DDNS

编译安装cloudflare-ddns软件包

教程固件版本,f大的OpenWrt R22.6.16 (2022-06-16 10:31:02 by flippy) 固件,已经编译了ddns-scripts_cloudflare.com-v4,如果使用的是未编译的旧固件,可以通过命令行安装

opkg update && opkg install ddns-scripts_cloudflare.com-v4

配置Cloudflare-DDNS-API

首先添加域名(不赘述),添加AAAA解析,注意,取消后面的云朵
添加域名
申请API,为了安全考虑,点击这里创建一个API To­ken ,权限为Zone(区域)-DNS-Edit(编辑)保存即可。
申请api
申请api

OpenWrt-Webui配置动态dns

动态dns
DDNS服务提供商选择cloudflare.com-v4;查询主机名填写刚刚解析AAAA的域名,例如:ddns.baidu.com;域名填写刚刚解析的AAAA域名,注意:二级域名要使用@来分隔,例如,[email protected];用户名填写Bearer;密码填写刚刚申请获得的API,保存
动态dns
在高级设置中修改网络IPV6
动态dns
注意:部分用户如上图设置可能无效,或者经常不能及时更新,可以使用URL方式获取正确IP
用于检测的URL:http://ipv6.ip.sb
动态dns
点击启用,保存&应用,保存后点击启动进程,查看到如下的进程号表明启动成功
动态dns
等待几秒后刷新Cloudflare的DNS管理页面,可以看到IP变更了。此时:等几分钟后,直接浏览器输入AAAA解析的域名,默认80端口即可打开OpenWrt-Webui。

Tip:默认10分钟更新一次ddns,可以自己在高级设置中修改

拓展:使用cdn开启https访问(同样适用于其他服务)

OpenWrt-Webui默认是http页面,我们可以通过cloudflare-cdn开启https访问,由于需要接入cdn,所以这里采用最简单的方法:使用cloudflare提供的证书,直接接入cdn,可以免去复杂的OpenSSL配置和申请证书

申请cloudflare对应域名的ssl证书

注意:这个证书只能在使用cloudflare-cdn时才有效,如果不接入cdn,无法使用
申请cloudflare对应域名的ssl证书

配置OpenWrt-Webui的uhttp配置文件

#修改uhttp配置文件
root@OpenWrt:~# vim /etc/config/uhttpd
config uhttpd 'main'
    #....
    option redirect_https '1'     # --> 访问 http 时跳转到 https
        #....
        option cert '/etc/uhttpd.crt' # --> 刚刚申请的ssl证书,请先删除此文件,再用vim创建后写入
        option key '/etc/uhttpd.key'  # --> 刚刚申请的ssl密钥,请先删除此文件,再用vim创建后写入
#重启uhttpd
/etc/init.d/uhttpd restart

完成后找到刚刚解析的AAAA域名处,点亮后面的云朵
点亮cdn
此时直接浏览器输入刚刚解析的AAAA域名,此时可以看到https已经配置完毕并启用

拓展:关闭OpenWrt-Webui访问(由于暴露在公网安全考虑)

为了更安全, 您可以完全禁用LuCI web服务,并在需要时通过SSH启动服务。

/etc/init.d/uhttpd disable
/etc/init.d/uhttpd stop

如果你需要访问LuCI,只需启动uhttpd服务

/etc/init.d/uhttpd start

使用LuCI完成操作后,请不要忘记停止uhttpd服务

/etc/init.d/uhttpd stop

使用此设置,只要SSH设置是安全的(禁用密码并仅使用公钥身份验证),就可以最大限度地降低LuCI webserver被暴力强制的风险,并防止未经授权访问LuCI-web界面

参考文章

【终极教程】N1做旁路由,IPv6设置教程,超详细
OpenWrt 配置 Cloudflare DDNS
基于Cloudflare的IPv6动态域名解析DDNS
安全地访问LuCI Web界面

最后修改:2024 年 03 月 31 日
如果觉得我的文章对你有用,请随意赞赏