openwrt上ipv6 ddns 解析

news2024/12/24 21:53:42

之前写过一个教程如何在openwrt上使用docker版本的ddns解析工具,使用docker的好处是部署简单,支持的域名种类多;openwrt的docker环境安装起来也很方便,尤其有不少编译好的,带docker环境的镜像可以用,例如笔者是用lean的openwrt自行编译的,当然,也有不少现成的,可以下载的,例如恩山。

近几年,国内3大运营商的ipv6已经很普及了,笔者折腾ipv6的唯一原因就是没有NAT穿越,可以支持v6直连,无论是手机还是家里的宽带,只要有ipv6,基本就是端口对端口直接连接(听说也有运营商屏蔽手机端口的)。这样的话,就打通了家庭设备和手机之间的连接通路问题,可以衍生出各种不同的应用场景。

首先,解决openwrt的ipv6连接,网上教程很多,实际用最新的openwrt 21.3版本,配置已经非常简单了

1. 新建一个wan接口(固件自带,可以忽略)

输入宽带的用户名密码即可,这一步不多说了

2. 新建一个wan6接口(视固件情况,可选)

协议配置成DHCPv6客户端,如下图,防火墙、物理网卡与wan保持一致

3.【全局网络选项】中的【IPv6 ULA 前缀】配置为空

 

 经过上面三步,路由器的wan口就获取了ipv6地址,通过ip addr命令验证。

至此,ipv6配置好了,下一步就是配置ddns,笔者用的github上的newfeature ddns

支持的ddns供应商挺多,列举如下:

服务商支持:
 DNSPOD
 阿里 DNS
 DNS.COM(@loftor-git)
 DNSPOD 国际版
 CloudFlare(@tongyifan)
 HE.net(@NN708) (不支持自动创建记录)
 华为云(@cybmp3)

https://github.com/NewFuture/DDNS

使用如下命令创建容器并运行:

docker run -d --name=hwddns --restart=always -v /opt/ddns/config.json:/config.json --network host newfuture/ddns

其中:/opt/ddns/config.json是你的配置文件,根据个人喜好,自行配置路径,内容需要修改。

修改配置文件:vi /opt/ddns/config.json

{
        "$schema": "https://ddns.newfuture.cc/schema/v2.json",
        "id": "xxxxxxxxxxxxxx",
        "token": "xxxxxxxxxxxxxxxxx",
        "dns": "huaweidns",
        "ipv6": ["v6.xxxxxx.top"],
        "ipv4": [],
        "index6": "shell:ifconfig pppoe-wan | grep 2409* | awk '{print $3}' | awk -F'/' '{print $1}'",
        "index4": "",
        "proxy": "DIRECT",
        "debug": true
}

其中id和token是用户名密码,根据你的情况填写

dns字段是dns服务商的名称,根据github上的说明填写.

ipv6字段是待解析的域名,可以填写多个

index6是本教程的关键,按github说明,有如下几种选择:

index4 和 index6 参数说明

  • 数字(0,1,2,3等): 第 i 个网卡 ip
  • 字符串"default"(或者无此项): 系统访问外网默认 IP
  • 字符串"public": 使用公网 ip(使用公网 API 查询,url 的简化模式)
  • 字符串"url:xxx": 打开 URL xxx(如:"url:http://ip.sb"),从返回的数据提取 IP 地址
  • 字符串"regex:xxx" 正则表达(如"regex:192.*"): 提取ifconfig/ipconfig中与之匹配的首个 IP 地址,注意 json 转义(\要写成\\)
    • "192.*"表示 192 开头的所有 ip
    • 如果想匹配10.00.xxxx应该写成"regex:10\\.00\\..\*"("\\"json 转义成\)
  • 字符串"cmd:xxxx": 执行命令xxxx的 stdout 输出结果作为目标 IP
  • 字符串"shell:xxx": 使用系统 shell 运行xxx,并把结果 stdout 作为目标 IP
  • false: 强制禁止更新 ipv4 或 ipv6 的 DNS 解析
  • 列表:依次执行列表中的index规则,并将最先获得的结果作为目标 IP
    • 例如["public", "172.*"]将先查询公网API,未获取到IP后再从本地寻找172开头的IP

数字即网卡编号,敲ip addr即可,注意此处的index是从零开始,ip addr是从1开始,还有个关键的是,index是容器中执行的结果,而不是openwrt shell中的执行结果;还有另外一个坑就是笔者的环境下怎么也无法获取到2409开头的ipv6,失败

default,不好使,放弃

public是利用默认的公网服务器探测ipv6,笔者不好使,放弃

url是利用自定义的公网服务器探测ipv6,笔者试了花生壳的和6.ipw.cn,结果都是错的,放弃

reg是正则,从描述上看,不符合笔者的诉求,放弃

shell:ifconfig pppoe-wan | grep 2409* | awk '{print $3}' | awk -F'/' '{print $1}'

这行命令是手动解析字符串的方式从ifconfig输出的结果中,过滤出ipv6,可用。

其他字段参考github的说明填写,没有特殊要求就保持默认。

容器默认是5分钟执行ddns更新脚本,可以登录容器的shell手动运行,对于openwrt,在容器的详情页中,选择【控制台】,这样就可以根据自己的情况调试配置文件。

 至此,教程结束,enjoy!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/757692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是向量数据库?

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

via24种人格力量之学习的力量,爱学习的特征和益处

人格力量是一种可支配的价值观,通常是正向的,有益于学习工作和日常生活的,在via 24种人格力量测试中,爱学习是其中的维度之一,爱学习的人格特征会让人终生受益,但是凡事都适度,如果过度的痴迷于…

检测到会话cookie中缺少HttpOnly属性

绿盟科技"远程安全评估系统"安全评估报告,这里记录一下处理过程。 检测到会话cookie中缺少HttpOnly属性 详细描述 会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本、Applet等)获取到用户的cookie信息,造成用户cookie信息泄露&#xff0c…

Java 中 注解是什么?如何使用

当谈到 Java 中的注解时,我们指的是 Java 5 中引入的一种元数据机制,它允许我们在代码中添加元数据信息并在运行时读取它们。在本文中,我们将深入探讨 Java 中的注解,包括它们是什么、如何使用它们以及一些示例代码。 注解是什么&…

浅读《商用密码应用性评估白皮书》

浅读《商用密码应用性评估白皮书》 密码的重要性商用密码概念商用密码典型应用场景(一)电信和互联网领域(二)工业互联网领域(三)车联网领域(四)物联网领域(五&#xff09…

路径规划算法:基于驾驶训练优化的路径规划算法- 附代码

路径规划算法:基于驾驶训练优化的路径规划算法- 附代码 文章目录 路径规划算法:基于驾驶训练优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

Redis实战篇(五)

8、达人探店 8.1 达人探店-发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个: tb_blog:探店笔记表,包含笔记中的标题、文字、图片等tb_blog_comments:其他用户对探店笔记的评价 具体发布流…

使用SiO2和高介电常数介质的SiC功率MOSFET的栅极阻抗分析

Impedance n.阻抗 dielectric n.电解质 propagation n.传播 标题:Gate Impedance Analysis of SiC power MOSFETs with SiO2 and High-κ Dielectric 阅读日期:2023.7.13 研究了什么 这篇论文研究了SiC功率MOSFET的门电阻Zgg特性,包括SiO2…

大语言模型举例和相关论文推荐

大语言模型如火如荼。甚至已经爆发了“百模大战” 2023年,“百模大战”,一触即发。 因为工作需要,我除了参加行业、企业、研究机构的发布会和闭门会,还需要基于自身的业务,不断了解最新的AI大模型和AIGC应用。 2024…

Java线程状态

Java线程状态 有哪几种 在Java中,线程可以存在多种状态。以下是常见的几种线程状态: 新建状态(New):当创建一个线程对象时,线程即处于新建状态。此时尚未调用线程的start()方法。 可运行状态(…

26-分布式锁

1、JMeter下载安装 Index of /dist/jmeter/binaries 1.1、JMeter配置 1.1.1、JMeter页面显示中文 将jmeter.properties文件中的language=zh_CN。 1.1.2、JMeter发送请求返回的Response显示中文 将jmeter.properties文件中的sampleresult.default.encoding=UTF-8 1.2、启…

Vue绑定class样式

效果&#xff1a;指定变换成某种颜色 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{backg…

Redis数据类型和使用场景

Redis五大基本数据结构 String,Hash,List,Set,ZSet String String是Redis最基本的数据结构&#xff0c;用来设置KV键值对&#xff0c;redis有16个数据库&#xff0c;可直接在当前数据库中set添加String的KV对。 使用场景 KV对&#xff0c;记录学生ID和姓名。<ID, NAME&g…

【高效】极致简化vuex.js(仅需6行代码),让快速敏捷开发不是梦!

vuex.js import Vue from vue; import Vuex from vuex; Vue.use(Vuex); // 设置vuex所有变量 let state {_qiangGe: false,//需要添加全局变量就在此处回车添加一个即可&#xff0c;非常方便&#xff01;&#xff01;&#xff01; }, getters {}, mutations {}, actions …

Spring【Spring体系结构、IOC_控制反转思想、Spring实现IOC 】(一)-全面详解(学习总结---从入门到深化)

目录 Spring简介 Spring体系结构 IOC_控制反转思想 IOC_自定义对象容器 IOC_Spring实现IOC IOC_Spring容器类型 IOC_对象的创建方式 Spring简介 Spring是一个开源框架&#xff0c;为简化企业级开发而生。它以IOC&#xff08;控制 反转&#xff09;和AOP&#xff0…

视频转动图怎么做?一招轻松学会

当需要将下载的视频转gif动图时&#xff0c;该怎样来操作才能更加的简单快捷&#xff0c;相信很多小伙伴都会遇到这个问题。那么想要将视频做成二维码&#xff0c;一般情况下可以使用gif制作工具来处理&#xff0c;对于不经常制作的小伙伴而言&#xff0c;下载视频转gif&#x…

make/Makefile【Linux系统编程】

一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定&#xff0c;哪些文件需要先编译&#xff0c;哪些文件需要后编译&#xff0c;哪些文件需要重新编译&#xff0c;甚至于进行更复杂的功能操作 makef…

哈希的应用(2)——布隆过滤器

布隆过滤器的提出 目录 布隆过滤器的提出 布隆过滤器概念 布隆过滤器的插入 ​编辑 布隆过滤器的查找&#xff08;保证可能存在&#xff0c;一定不存在&#xff09; 布隆过滤器的删除 布隆过滤器的优点 布隆过滤器的缺点 布隆过滤器的使用场景 布隆过滤器&哈希切…

基础算法之搜素(bfs和dfs模板和例题)

目录 一、深度优先搜索与回溯1、四阶数独2、排列类问题3、红与黑&#xff08;dfs或bfs和Flood fill&#xff09; 之前学习了暴力枚举策略&#xff0c;将所有可能的情况都枚举一遍以获得最优解&#xff0c;但是枚举全部元素的效率如同愚公移山&#xff0c;无法应付数据范围稍大的…

【LLM】Langchain使用[三](基于文档的问答)

文章目录 一、基于文档的问答1. 创建向量存储2. 不同类型的chain链 二、本地知识库问答Reference 一、基于文档的问答 1. 创建向量存储 使用Dock Array内存搜索向量存储&#xff0c;作为一个内存向量存储&#xff0c;不需要连接外部数据库创建向量存储&#xff1a;导入一个索…