草庐IT

OpenWrt路由器设置IPv6域名动态解析,同时实现IPv4设备访问IPv6节点

engineerlzk 2023-04-06 原文

文章目录


0、前言

前不久刚写了一篇《OpenWrt路由器设置域名动态解析手把手教程》,对ipv4动态解析有了基本的认识。但随着ipv4地址的匮乏,很多地方已经不提供公网的动态ip了,只有ipv6公网地址可以访问了。于是想在上一篇博文的基础上补充ipv6的设置,并增加ipv4设备访问ipv6地址的解析方法,分享给有同样需求的博友们。


1、准备工作

同前一篇文章(略)

2、详细步骤

2.1、OpenWrt路由器软件包安装

同前一篇文章(略)

2.2、防火墙放行入站数据(修改为“接受”并保存应用)

同前一篇文章(略)

2.3、路由器做好ipv6设置(略)


如上图中显示的240e开头的ipv6即是可实现外网访问的IPv6地址,记住它,一会儿在域名解析商那里有用。

2.4、域名解析服务商对域名的解析设置

以dynv6为例:
①.首先在dynv6.com注册一个账号(输入邮箱、密码即可,但注意要在邮箱中去点击激活链接,且有一个非机器人验证——好像edge浏览器可以通过
②.在dynv6中添加一个域名(在IPv6 prefix中填入上一步得到ipv6地址):

③.在dynv6中获取token,同前一篇文章(略)

2.5、路由器中动态域名插件的设置

直接上图(注意密码出填写token值而非账户密码!):



这样设置后,你就可以在拥有IPv6地址的计算机(或手机)登客户端上用域名访问你的路由器管理界面了。

3、关于IPv4设备访问IPv6设备的讨论

通过前述设置虽然实现了IPv6的动态解析,但要访问它还需要客户端同样处于IPv6环境,而我们的大多数设备还是只有IPv4地址的,是无法访问IPv6设备的。有没有办法实现所有设备都可以无缝访问IPv6设备呢?经过我的一番探索,发现用cloudflare提供的动态解析可以完美的实现这个目标。

3.1、获取cloudflare的api-token

登录cloudflare后在API Tokens点击【Create Token】创建token,然后选择Edit zone DNS并点击右侧的【Use template】,在之后弹出的页面中选择【All Zones】可以将此token用于所有域名。


`最后点击【copy】按钮将此token复制保存好,一会儿在ddns-go插件中会用到。

3.2、OpenWrt中DDNS-GO插件设置

参照下图填入token、待解析的域名等信息,保存应用,即可。

至此,你就可以在如何设备上愉快的用你自己的域名随时随地访问你的OpenWrt路由器管理界面了。,唯一美中不足的是cloudflare的api方式已经不能解析freenom提供的免费域名了,只能讲你自己注册其他域名至NS设置到cloudflare中解析。

有关OpenWrt路由器设置IPv6域名动态解析,同时实现IPv4设备访问IPv6节点的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  3. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  4. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  5. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

  6. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  7. ruby-on-rails - Rails - 从命名路由中提取 HTTP 动词 - 2

    Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba

  8. ruby-on-rails - 如何在 Rails 中设置路由的默认格式? - 2

    路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。

  9. ruby - 在 Ruby 中动态创建数组 - 2

    有没有办法在Ruby中动态创建数组?例如,假设我想遍历用户输入的书籍数组:books=gets.chomp用户输入:"TheGreatGatsby,CrimeandPunishment,Dracula,Fahrenheit451,PrideandPrejudice,SenseandSensibility,Slaughterhouse-Five,TheAdventuresofHuckleberryFinn"我把它变成一个数组:books_array=books.split(",")现在,对于用户输入的每一本书,我想用Ruby创建一个数组。伪代码来做到这一点:x=0books_array.

  10. ruby - 有没有办法从 ruby​​ case 语句中访问表达式? - 2

    我想从then子句中访问c​​ase语句表达式,即food="cheese"casefoodwhen"dip"then"carrotsticks"when"cheese"then"#{expr}crackers"else"mayo"end在这种情况下,expr是食物的当前值(value)。在这种情况下,我知道,我可以简单地访问变量food,但是在某些情况下,该值可能无法再访问(array.shift等)。除了将expr移出到局部变量然后访问它之外,是否有直接访问caseexpr值的方法?罗亚附注我知道这个具体示例很简单,只是一个示例场景。 最佳答案

随机推荐