MoreRSS

site iconDolingou

技术爱好者,加密货币关注者。对Linux、Neovim、OpenWRT等技术有研究,
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Dolingou 的 RSS 预览

Dae搭配AdGuard Home使用指南

2024-11-07 08:00:00

😀
在之前配置好家庭网络环境后,稳定运行了很久,大致上也基本满足日常需要,但是还有一些小的问题需要去解决。之前使用的是Dae + MosDNS配置,由DAE劫持流量进行最后的分流和代理,MosDNS主要用于DNS的并发请求和使用DOH、DOT服务,同时也负责DNS去广告。在使用过程中,由于MosDNS的队列化和无图形界面配置,进行特殊规则配置过于麻烦,最终决定还是在整体的DNS链路中增加AdGuard Home单独负责去广告和相关特殊规则的指定,MosDNS仅作为DNS转发器使用,不再兼顾过滤器的作用。
由于Dae的DNS处理方式与OpenClash、Singbox等不同,是通过劫持流量方式实现,无法直接指定端口进行DNS劫持,所以主要的配置部分在于Dae,MosDNS与AdGuard Home的配置部分基本维持原有配置即可。
另一个配置前提:由于我在主路由RouterOS上已经使用ospf进行了国内外流量的分流,所以此教程可能不一定适合于完全使用Dae进行分流的用户,如果存在分流错误等问题,可以尝试修改Global配置中的连接选项为domain++模式。

📝 Dae配置部分

Dae安装

可以参考Github上的教程,我自己使用的是Daed,提供一个可视化的网页管理面板,日常进行自定义配置时候更为方便一些,Debian或者Ubuntu安装执行如下命令:
其他系统可参考:
getting-started.md
daeuniverse

Global配置

连接选项使用domain模式,其他无需修改。

DNS

由于处理DNS分流和解析不再由Dae负责,所以DNS部分的配置非常简单:
其中adg即AdGuard Home,配置为AdGuard Home监听的地址和端口。此处我使用的默认53端口,如果53端口已经被占用或者存在其他问题,可替换为其他非标端口。

路由部分

路由部分需要在原有的配置基础上,对AdGuard Home进程、MosDNS进程以及系统默认的NetworkManager进程使用direct(must)规则特殊处理,从而避免产生路由回环。
同时,为了在AdGuardHome中可以正确的显示各设备的IP地址,需要对geoip:private 规则进行修改,使用direct(must)规则。如果使用的是direct规则,那么在AdGuard Home中显示的设备信息均为localhost(127.0.0.1)
 

Route整体规则

整体规则大致如下,里面有一些自定义的配置,可以根据自己需要进行删减。

direct与direct(must)区别

must_rules表示不将DNS流量重定向到dae并继续匹配。对于单一规则,directmust_direct的区别在于direct会劫持和处理DNS请求(用于流量分割使用),但must_direct不会。当存在DNS请求的流量循环时,must_direct很有用。must_direct也可以写成direct(must)
在上述配置中,以AdGuard Home为例,即进程AdGuardHome匹配的规则不进行DNS流量的劫持和处理且为直连,由AdGuard Home及其上游进行处理,同时由于规则:
将通过Google DNS的流量使用代理处理,从而避免DNS污染。

📝 AdGuard Home配置部分

AdGuard Home部分没有什么需要特别注意配置的,只需要指定上游DNS为MosDNS即可。如果不使用MosDNS,也可以直接指定自己需要的上游DNS,公共DNS服务器可以参考:国内外DNS推荐列表 | Dolingou
notion image

🤗 总结归纳

目前情况良好,暂时没有出现错误问题,且能够更方便的对特定客户端、域名进行放行。

📎 参考文章

 
💡
有关AdGuard Home安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~

小米15手机(澎湃OS2):如何关闭推荐广告

2024-11-05 08:00:00

😀
最近把服役了3年多的三星S21换成了小米15,整体使用上体验上升了一大截,澎湃OS2的流畅程度也不错,唯一难受的就是无处不在的各种推荐广告的狗皮膏药,用机洁癖的我整理了一下各种推荐广告及乱七八糟后台体验计划的关闭方法。本文所列出的方法同样适用于其他使用澎湃OS2的机型,例如小米14等。
 

📝 主旨内容

系统广告

位置位于:设置 → 小米账号 → 关于小米账号 → 系统广告 ,关闭系统工具广告
notion image

桌面文件夹广告

位置位于:长按文件夹名称 → 编辑文件夹,关闭今日推荐
notion image

负一屏广告

位置位于:长按桌面 → 桌面设置 → 更多设置 → 负一屏, 关闭推荐卡片热门活动
notion image

搜索广告

位置位于:
  • 点击搜索框 → 搜索框后面三个点 → 设置 → 首页展示模块, 关闭搜索提示词
notion image
  • 点击搜索框 → 搜索框后面三个点 → 设置 → 首页展示模块 -> 热门榜单 ,将我的热榜中选项全部删除(例如京东好物榜、全网热搜榜、知乎热搜榜等)。
notion image
  • 点击搜索框 → 搜索框后面三个点 → 设置 → 搜索项 ,关闭搜索精选
notion image

电话内广告

位置位于:电话 → 联系人 → 设置, 关闭营业厅 ,同时建议开启
notion image

短信内广告

位置位于:短信 → 设置 → 高级设置,关闭允许WAP推送
notion image

日历内广告

位置位于: 日历 → 设置 → 用户体验计划,关闭内容推广
notion image

天气内广告

位置位于:天气 → 设置 → 用户体验计划,关闭内容推广
notion image

下载应用内广告

位置位于:下载管理 → 设置 → 信息流设置,关闭资源推荐热榜推荐
notion image

软件安装广告

位置位于:需要先安装随便一个apk软件,在安装页面点击设置,关闭资源推荐
notion image

应用商店广告

  • 位置位于:应用商店 → 我的 → 设置 → 通知设置,关闭新手帮助应用更新通知点赞消息评论消息 ,此处不涉及广告,也可不管。
notion image
  • 位置位于:应用商店 → 我的 → 设置 → 功能设置,关闭显示福利活动显示游戏抽奖
notion image

手机管家内广告

  • 位置位于:手机管家 → 设置 → 隐私设置,关闭个性化推荐
notion image
  • 位置位于:手机管家 → 设置 → 垃圾清理,关闭推荐内容
notion image
  • 位置位于:手机管家 → 应用管理 → 其他设置,关闭资源推荐
notion image

智能服务广告(伪装推送广告及部分开屏广告)

位置位于:手机管家 → 隐私与安全 → 其他权限 → 特殊权限设置 → 显示在其他应用上层 → 更多 → 显示系统应用, 关闭智能服务
notion image

关闭APP摇一摇广告

位置位于:设置 → 隐私与安全 → 其他权限 → 获取设备动作与方向,右上角全部拒绝 ,部分APP可能会因为这个设置而无法横屏,需要自行斟酌是否使用。
 

搜狗输入法广告

位置位于:设置 → 输入设置,关闭节日活动提醒 ,同时如果没有字库等同步需求,建议开启隐私
notion image

🤗 总结归纳

本文中仅列出了部分系统内广告的关闭办法,但对于类似于小米钱包等预置APP,我已经卸载,所以本文内就未进行列出。同时我也很惊叹于小米设计师在广告入口设置方面的刁钻,部分入口设置简直如同迷宫。
在完成上面的这些配置之后,再搭配李跳跳及规则,能够很大程度上避免各种广告对日常手机使用的困扰。
临近年底实在是太忙了,之前挖了好几个坑都还没填,类似OpenWRT使用DAE一类的,博客的SEO最近也没怎么关心,Adsense的复核申请也被拒绝。

📎 参考文章

 
💡
有关Android安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~

OpenWRT安装WireGuard实现内网穿透

2024-10-15 08:00:00

😀
之前介绍过一些关于内网穿透的内容,例如使用Tailscale、Zerotier等等,但是这些软件都有一个缺点,在外面需要使用特点的客户端才能实现内网穿透,需要频繁的切换VPN软件,很麻烦。今天介绍的Wireguard可以实现在使用大部分代理App的同时,还可以兼顾实现内网穿透回家,不必切换软件。
 

📝 Wireguard介绍

WireGuard是一个现代化的VPN协议,于2019年正式发布。它以极简设计和高性能著称,旨在提供更快速、更安全的VPN连接。WireGuard的代码库非常精简,仅有几千行代码,这不仅提高了审计和维护的效率,也减少了潜在的安全漏洞。
主要特性包括:
  1. 高效加密:WireGuard使用现代加密技术,如ChaCha20和Poly1305,确保数据传输的安全性和隐私性。
  1. 简洁配置:相比传统VPN,WireGuard的配置更加简单直观,易于部署和管理。
  1. 快速连接:由于其轻量级的设计,WireGuard能够提供快速的连接速度和低延迟。
  1. 跨平台支持:WireGuard可在多种操作系统上运行,包括Linux、Windows、macOS、iOS和Android,同时作为一种VPN协议,可以兼容大部分代理软件,包括Mihomo、Singbox等核心均已完成协议支持,例如FlClash、Surge、Stash、OpenClash等等。
业界对WireGuard的评价也很好,许多安全专家和技术社区成员称赞其简洁性和高效性,认为它是VPN技术的显著进步。Linus Torvalds(Linux内核的创始人)曾表示,WireGuard是“过去十年中最好的VPN”,并在2020年将其集成到Linux内核中,进一步提升了其可靠性和性能。
WireGuard首次在OpenWRT中得到支持是在OpenWRT 18.06版本。目前OpenWRT已经更新到22.05版本,对WireGuard的各种特性已经基本全部支持,同时得益于WireGuard的轻量设计,使其通过OpenWRT安装在嵌入式设备以及ARM设备上也可以具有非常高的网络性能,支持较高的网络吞吐量和不俗的低延迟体验,完全可以满足家庭网络实现内网穿透的需求。

📝 OpenWRT安装WireGuard指南

配置前提

需要一个域名,并已经配置DDNS指向当前OpenWRT机器。有关DDNS相关配置,可以参考之前的文章:OpenWRT中为局域网设备配置IPv6 DDNS | Dolingou
需要注意的是,在局域网下,可能会有两个具有公网特征的IPv6地址,global deprecated dynamic noprefixrouteglobal dynamic noprefixroute ,前者是在IPv6地址产生变动之前的地址,后面为新的地址,旧地址可能存在无法访问的情况,因为没有相对应的路由。我们需要将新地址提取出来。可以在DDNS-GO中指定使用@2 进行选择。
OpenWRT版本需大于18.06版本,目前主流最新版本包括OpenWRT官方源、ImmoralWRT、LEDE、iStore等应该都可以。

WireGuard程序安装

默认的OpenWRT并没有直接集成WireGuard的安装程序,需要手动进行安装。

Luci界面方式安装

打开系统 → 软件包 ,点击更新列表 ,并等待软件列表更新完成。
notion image
过滤器中搜索WireGuard,并选择luci-proto-wireguard ,进行WireGuard协议的安装。同时需要安装qrencode,用于显示WireGuard对端的二维码。
notion image

SSH方式安装

在登入OpenWRT的SSH之后,执行以下命令:
返回以下内容,且没有Error报错即安装完成:

OpenWRT上WireGuard配置

常规设置

在WireGuard协议安装完成之后,需要重启一次路由器,否则在接口协议中看不到WireGuard协议。
在OpenWRT的管理网页点击网络 → 接口 → 添加新接口 进行WireGuard接口的添加操作,接口名称随便填写,接口协议选择WireGuard VPN。
notion image
点击创建接口
notion image
因为是新建的配置,所以没有私钥和公钥,可以通过点击生成新的密钥对进行创建,创建完成后会自动填充到对应的输入框内。
监听端口:建议配置特定高位端口,即1024以上端口,避免Qos和端口扫描,可以使用默认的51820 端口。
防火墙设置:选择LAN防火墙区域,允许主机间通讯。不要使用WAN区域,否则会导致无法连接家里主机。
IP地址:WireGuard接口所处于的IP地址,建议使用和LAN局域网不同的网段,例如我在平常家里的局域网使用网段为10.0.0.0/24, 这里我会使用10.0.10.1/32, 从而让WireGuard使用在10.0.10.0/24网段。
 

对端(Peer)设置

对端(Peer)设置的意思就是配置客户端接入点。
notion image
已禁用对端: 取消勾选
描述:随便填写主要用于记住当前对端配置是给哪些设备或者地址使用。
公钥、私钥:点击下面的生成新的密钥对自动生成和填充。
预共享密钥:可选,如果需要可点击生成预共享密钥按钮自动填充。
允许的IP:填写IP地址 ,如果你的设备处于固定网段内或具有固定IP地址,可以填写,相当于IP地址白名单,不在IP地址范围内的则无法连接。
路由允许的IP:可选 ,勾选后允许连接到WireGuard的客户端访问所在设备的其他网段。
端点主机:作为WireGuard服务器使用时不用填写
端点端口:作为WireGuard服务器使用时不用填写
持续Keep-Alive:作为WireGuard服务器使用时不用填写
 
配置文件导出:点击后完善对端信息,并生成配置文件及对应二维码,二维码需要安装qrencode才可以显示。
notion image
连接端点:填写DDNS域名
允许的IP:如果无特殊白名单需求,可不用更改。
DNS服务器:为对端客户端下发的DNS服务器,作为解析DDNS域名使用,可以选择国内的223.5.5.5或者119.29.29.29 ,需要注意的是此处不支持使用DOH或者DOT的DNS服务。
地址:为客户端所分配的WireGuard局域网IPv4地址,需与上面WireGuard基本配置中的IP地址处于同一网段。
 
以上信息完善后,会自动更新下面的配置文件代码,可复制到客户端内使用。或者对于Android与iOS等移动设备,也可以直接进行扫码添加配置文件。
 

Windows系统使用WireGuard

notion image
点击Add Tunnel 后面的下拉箭头,选择Add Empty Tunnel ,粘贴刚刚导出的内容进去,随便填写一个名称。
然后点击Active 即可正常连接,显示如下:
notion image
其他系统基本也大同小异,Android和iOS系统可直接通过扫码方式创建配置文件,Linux、macOS等系统可通过和Windows类似的方式新建WireGuard配置文件。

防火墙配置

由于我们配置了51820端口作为WireGuard UDP通信端口,所以需要在主路由中添加对应的端口放行规则。例如在OpenWRT中,在网络 → 防火墙 → 通信规则 中新建一条WireGuard通信规则:
notion image
源区域:WAN
源IP地址:不用填写
源端口:51820
目标区域:如果WireGuard部署在当前路由上,则选择输入,如果WireGuard部署在局域网内其他设备上,例如旁路由上,则选择任意区域(转发)
目标地址:选择WireGuard设备的IP地址,如果使用IPv6,则需要选择对应IPv6的地址。IPv6地址放行可参考:OpenWRT IPv6防火墙规则:如何放行客户端地址及端口 | Dolingou
目标端口:51820
操作:接收
 

Mihomo使用WireGuard

Mihomo目前已经能够还好的支持WireGuard协议,可在配置文件中增加type: wireguard 的配置项,同时可在规则中增加局域网网段的规则,从而自动分流局域网网段使用WireGuard。
理论上目前的FlclashClash Meta均可以正常使用。个人测试Flclash是没有问题的。

🤗 总结归纳

目前内容还没有完结,大部分主流的代理软件都已经集成了WireGuard协议,之后会进行这部分内容的补充,例如Mihomo等。
已基本完结。

📎 参考文章

 
💡
有关OpenWRT安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~

国内外DNS推荐列表

2024-09-05 08:00:00

😀
之前介绍了不少关于MosDNS的内容,里面绕不开的一个部分就是用来解析国外域名的DNS服务器应该选择哪家,或者说有哪些无污染的公共DNS服务器可以选择。

📝 主旨内容

国内DNS服务器

我认为国内DNS只有三个选择,AliDNS、DNSPod以及运营商下发的DNS。Ali和DNSPod均支持ECS(edns-client-subnet)协议,在一定程度上可以缓解整体解析速度不如运营商DNS的情况。
名称
标准DNS地址
DOH地址
DOT地址
是否支持H3
ECS
DNSPod
119.29.29.29 / 182.254.116.116
https://doh.pub/dns-query
dot.pub
支持
AliDNS
223.5.5.5 / 223.6.6.6
https://dns.alidns.com/dns-query
dns.alidns.com
支持

国外DNS服务器

我个人一般会用Cloudflare和NextDNS作为主要无污染DNS使用,NextDNS的免费额度足够家庭使用。在Cloudflare不行的时候,会选择Quad9或者OpenDNS。
在衡量国外公共DNS服务时,延迟与丢包一般是我首先考虑的因素,其次就是DOH和DOT的支持,如果能够支持H3(http3)或者pipeline的话,那么一般就会是首选的DNS服务。其他次级考虑的因素还包括是否支持ECS,如果可以支持ECS,我会选择代理出口位置附近的IP。通过MosDNS的ECS功能,可以自定义ECS地址,提高解析结果的访问速度。
同时在使用DOT或DOH使,可使用dial_addr替代域名,可免去每次建立连接时解析服务器域名。dial_addr一般为标准DNS的IPv4和IPv6地址。
由于一些公共DNS使用DNSCRYPT,需要使用DNS服务器公钥,存在局限性,所以暂时未列入表单内。
同时大部分公共解析服务均为IPv4和IPv6双栈,即使用IPv4的DNS公共解析服务也可以解析IPv6地址,所以列表内不再进行IPv4和IPv6的区分。
名称
标准 DNS 地址
DoH 地址
DoT 地址
是否支持 H3
ECS
Google DNS
8.8.8.8 / 8.8.4.4
https://dns.google/dns-query
dns.google
支持
Cloudflare
1.1.1.1 / 1.0.0.1
https://cloudflare-dns.com/dns-query
1dot1dot1dot1.cloudflare-dns.com
支持
Quad9
9.9.9.9 / 149.112.112.112
https://dns.quad9.net/dns-query
dns.quad9.net
支持
AdGuard DNS
94.140.14.14 / 94.140.15.15
https://dns.adguard.com/dns-query
dns.adguard.com
支持
NextDNS
45.90.28.0 / 45.90.30.0
https://dns.nextdns.io
45.90.28.0 / 45.90.30.0
支持
OpenDNS
208.67.222.222 / 208.67.220.220
https://doh.opendns.com/dns-query
208.67.222.222 / 208.67.220.220
支持
Yandex DNS
77.88.8.8 / 77.88.8.1
https://doh.yandex.net/dns-query
dns.yandex.net
不支持
CleanBrowsing
185.228.168.9 / 185.228.169.9
https://doh.cleanbrowsing.org/dns-query
security-filter-dns.cleanbrowsing.org
不支持
HKBN DNS
203.80.96.10 / 203.80.96.9
不支持
不支持
不支持
NTT Communications DNS
61.213.169.170 / 61.213.169.171
不支持
不支持
不支持
NEC BIGLOBE DNS
202.225.96.66 / 202.225.96.68
不支持
不支持
不支持
Yahoo Japan DNS
182.22.70.1 / 182.22.70.2
不支持
不支持
不支持
jp.tiar.app
172.104.93.80
https://jp.tiarap.org/dns-query
jp.tiar.app
不支持
DNS.SB
45.11.45.11
https://doh.dns.sb/dns-query
dot.sb
不支持
腾讯国际
162.14.21.178/ 162.14.21.56
不支持,可通过腾讯云套娃DOH
不支持,可通过腾讯云套娃DOT
不支持
Comodo Secure DNS
8.26.56.26
https://doh.comodo.com/dns-query
dns.comodo.com
不支持
DNS.WATCH
84.200.69.80
https://dns.watch/dns-query
不支持
Blahdns(新加坡)
46.250.226.242 2407:3640:2205:1668::1
https://doh-sg.blahdns.com/dns-query
dot-sg.blahdns.com
不支持
CleanBrowsing
185.228.168.9 185.228.169.9
https://doh.cleanbrowsing.org/doh/security-filter/
security-filter-dns.cleanbrowsing.org
不支持
Block malware
76.76.2.1
https://freedns.controld.com/p1
tls://p1.freedns.controld.com
不支持
DeCloudUs 
78.47.212.211:9443
https://dns.decloudus.com/dns-query
tls://dns.decloudus.com
不支持
Mullvad(新加坡)
-
https://dns.mullvad.net/dns-query
tls://dns.mullvad.net
不支持
 

📝 参考信息

enable_pipeline: TCP/DoT 使用 RFC 7766 新的 query pipelining 连接复用模式。
  • 启用后可大幅提高连接利用率,减少建立连接/握手的次数,进而降低响应延时。
  • 并非所有服务器都支持。必须确定服务器支持后再启用该选项。
  • Tips: 已知 Google 和 Cloudflare 的 TCP/DoT 是支持该模式的。知名的公共 DNS 服务商大多数都支持该模式。可以使用 mosdns probe pipeline {tcp|tls}://server_ip[:port] 测试命令测试服务器是否支持。比如 mosdns probe pipeline tls://8.8.8.8
 

什么是ECS?

ECS(EDNS Client Subnet)是扩展DNS查询的一种机制,旨在提升内容分发网络(CDN)和地理位置相关的服务的效率。通常DNS服务器只看到客户端的 IP 地址,但通过ECS,DNS请求会包含客户端IP的一部分(子网信息)。这样,内容分发网络可以根据客户端的地理位置,返回更接近用户的服务器,减少延迟,提升性能。ECS主要用于优化网络和加速服务的访问,但也可能带来一定的隐私泄露风险。
 

什么是DOH?

DoH(DNS over HTTPS)是一种技术,用来加密你的 DNS 查询。通常情况下,DNS 查询是明文的,容易被别人看到和监控。而 DoH 会通过 HTTPS 协议加密这些查询,确保你的请求内容是安全的,不会被别人偷看。就像你在发送加密的信息一样,DoH 保护了你上网时的隐私,并在一定程度上避免劫持。
 

什么是ECH?

ECH(加密客户端你好,Encrypted Client Hello)是一种技术,用来加密你访问网站时的 SNI(服务器名称指示)信息。通常情况下,当你想访问某个网站时,这个请求是明文的,运营商或其他第三方可以轻易看到你在访问什么网站,并可能进行拦截或阻断(例如 SNI 阻断)。这也是为什么有时你在国内访问 GitHub 会遇到问题的原因之一。有了 ECH,这些 SNI 信息就被加密了,外面的人就看不到你要访问哪个网站,从而提高了你的隐私和安全性。简单来说,ECH 就像是在发送加密的信息,让你的浏览行为更加私密。
 
💡
有关DNS上的问题,欢迎您在底部评论区留言,一起交流~

OpenWRT中为局域网设备配置IPv6 DDNS

2024-08-29 08:00:00

🍌
之前介绍过如何在OpenWRT上实现OpenClash与IPv6的共存,不但主路由有公网IPv6地址,所有的客户端也都有了唯一的IPv6公网地址。有了IPv6之后我们可以做很多事情,例如远程回家进行网络管理、公网的远程串流、Emby媒体服务器的公网使用、自建DNS服务器等等。目前大部分的DDNS教程都只是如何获得插件所在设备的IPv4及IPv6地址及DDNS域名绑定,今天来分享一下如何在旁路由(旁路网关)上安装配置DDNS-GO,通过IPv6地址为局域网内需要的设备绑定域名。
notion image
DDNS(动态域名系统,Dynamic DNS)是一种允许用户在IP地址变化时自动更新DNS记录的服务。通常,互联网服务提供商会给家庭或小型办公室的网络分配动态IP地址,这意味着IP地址会周期性变化。如果你运行一个需要被外界访问的服务(比如家庭服务器或游戏主机),IP地址的变化会导致外界无法访问你的服务。
DDNS的工作原理如下:
  1. 动态IP监测:DDNS客户端软件在你的设备上运行,定期检查你的公共IP地址是否变化。
  1. 更新DNS记录:当检测到IP地址变化时,客户端会自动将新的IP地址更新到DDNS服务提供商的DNS服务器上。
  1. 域名解析:外界的请求通过DDNS服务提供的域名解析到你当前的IP地址,确保即使IP地址改变,服务仍可正常访问。
常见的DDNS服务提供商包括No-IP、DynDNS和Cloudflare等。我使用DDNS主要用于Wake On Lan以及通过Moonlight+Sunshine进行远程串流打游戏。
DDNS-GO是一个开源的动态DNS解决方案,帮助用户通过DDNS访问家庭内网服务,实现内网穿透等。DDNS-GO支持在多种操作系统上使用,包括Linux(各种发行版,包括飞牛fnOS)、Windows、macOS以及使用OpenWRT的路由器,包括主路由和旁路由。DDNS-GO兼容多个DNS服务提供商,比如Cloudflare、阿里云DNS(AliDNS)、GoDaddy、DNSPod等,非常灵活,且同时支持IPv4和IPv6动态地址获取及设置,并提供简洁的Web管理界面,便于配置和监控动态DNS服务。
本文内容不仅适用于OpenWRT系统,其他类似飞牛fnOS等系统,在使用DDNS-GO插件的情况下,也可适用。

📝 付费内容

配置前提

本次配置教程所使用的ddns服务提供商为Cloudflare,需要自备域名并将域名绑定到cloudflare。
另外,需要你的局域网下设备可以正常获取公网IPv6地址,教程参考🌐IPv6与旁路由共存:实现策略代理与原生地址的完美平衡
在ddns-go服务的安装设备上,我个人推荐安装在旁路由(旁路网关)上,因为我们的IPv6 RA(Router Advertisement)服务器也是这台设备,如果安装在主路由上,那么可能无法获取到完整的IPv6邻居列表。如果主路由开启了RA服务器模式,也可以在主路由上进行安装。

安装luci-app-ddns-go

大部分仓库均提供luci-app-ddns-go这个插件,可以通过系统 - 软件包进行安装,或者像我一样通过SSH输入命令安装。
安装成功之后,刷新路由器管理页面,在服务选项卡下应该就有DDNS-GO了。如果没有的话,可以注销路由器管理页面,重新登录即可。
notion image
 

配置luci-app-ddns-go插件

luci-app-ddns-go插件的作用是为ddns-go提供一个可视化的luci操作界面,用于对ddns-go核心的配置和管理,并不直接负责ddns的检测、更新和域名解析服务,只有在配置完成luci-app-ddns-go插件并启动服务之后,才可以进行ddns的配置。
notion image
 
配置非常简单:
  1. 勾选启动的复选框。
  1. 如果需要自定义ddns-go的访问端口,可以修改设置访问端口,我这里维持不变。
  1. 指定DNS解析服务器,选择Ali DNS或者Tencent DNS都可以。如果你路由器本机也经过代理,可以选择国外dns,或者设置为你自己自定义的DNS
  1. 其他项无特殊偏好,维持不动。
  1. 保存并应用。
  1. 看到DDNS-GO服务器已启动,即表示成功,可以通过http://路由器ip地址:9876进行访问。
  1. 首次登录需要设置管理员账号和密码,直接根据提示配置即可。
 

配置ddns服务

访问Cloudflare的User API Tokens页面:User API Tokens - Cloudflare
或者通过右上角账户 - 外观 - API令牌 进入User API Tokens页面。
我们需要创建一个API令牌给DDNS-GO使用,用于修改对应域名的解析地址。
点击创建令牌,选择编辑区域dns,点击后面的使用模板。
notion image
区域资源 - 特定区域 - Select的下拉中选择你绑定的域名
notion image
然后点击继续以显示摘要 - 创建令牌 即可看到API令牌(API Token)的字符串,复制保存到安全的地方。

配置路由本机DDNS域名

如果你的路由器本机不需要配置ddns域名也可以跳过这部分。
 
通过http://路由器ip地址:9876 访问DDNS-GO的web界面。
notion image
DNS Provider:
  1. 选择Cloudflare
  1. Token填写刚刚我们获得的API令牌(API Token)
  1. TTL不用动,只有产生IP变动之后TTL才会生效。
 
IPv4部分:
  1. 域名(domain)填写你希望使用的域名,例如我写的是home.xxxx.xom
  1. 其他不用动
 
IPv6部分:
  1. 启动的复选框勾上
  1. Get IP Method不用动
  1. 域名(domain)填写和ipv4相同的域名即可。
 
然后拉到最下方,点击保存,然后点击右上角的日志(logs)查看运行情况:
看到added domain xxxxxx successfully即表示添加成功。稍等片刻,等待DNS解析广播结束之后即可用这个域名:端口的方式在公网进行访问。
 

配置局域网客户端DDNS域名

再次说明,如果你是通过旁路由(旁路网关)提供局域网的IPv6 RA服务,那么需要将DDNS-GO安装在旁路由(旁路网关)上,否则无法获取到完整的IPv6路由列表,也无法为客户端进行DDNS域名绑定。
配置局域网客户端的DDNS域名其实与配置路由器本机的DDNS流程大致相同,使用的Cloudflare API Token还是上面我们申请的Token。
在DDNS-GO的管理页面点击右上角的新增(Add)
notion image
DNS Provider:
  1. 选择Cloudflare
  1. 令牌(Token)填写我们上面获取到的API Token
  1. TTL选择Auto
 
IPv4部分:
  1. 取消勾选启动按钮。我们IPv4只有一个公网地址,已经分配给路由器本机使用了,所以这里就不再对IPv4进行配置。
 
IPv6部分:
  1. 勾选启动
  1. 获取IP地址方法(Get IP Method)选择最后一个By Command ,也就是命令模式
  1. 输入以下命令来提取特定局域网设备的IPv6地址,mac地址注意要小写,同时如果从Windows复制过来,需要把-替换为:
然后拉到最下方,点击保存,然后点击右上角的日志(logs)查看运行情况:
看到added domain xxxxxx successfully即表示添加成功。稍等片刻,等待DNS解析广播结束之后即可用这个域名:端口的方式在公网进行访问。

🤗 总结归纳

通过对局域网客户端DDNS域名的配置,就可以避免记又臭又长的IPv6地址,同时也可以避免因为IPv6地址变动而访问不了家里所部署服务的情况。当前在绑定DDNS之后,记得在防火墙中为对应服务的端口配置规则,否则还是访问不了的。
尽管本文使用的DDNS服务商为赛博大善人Cloudflare,但其他家服务器商的配置也大同小异,可以举一反三。

📎 参考文章

 
💡
有关OpenWRT安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~