在 OpenWrt 上配置 IPv6 版 DDNS 實現远程桌面的访问

Windows 平臺上真·远程桌面的意思是,只要 PC 接入了互联网开着机,就可以用另一台設備通過互联网從世界任意角落访问使用它。然而,PC 的 IPv4 地址不固定为此带来了麻煩。FRP 内网穿透技术是一種应对方案。DDNS(動態DNS)技术是另一种(當然其用途不止远程桌面)。原理上來說,後者更简洁,流量不像前者需要经过中转服务器。然而,由於國內的电信运营商(例如我所用的移动家宽)甚至连動態公网 IPv4 也不分配了,欲通過配置 IPv4 的 DDNS 来实现外网访问也成了不可能。这时候配置 IPv6 的 DDNS 似乎成了唯一的优解。

我用的小米路由器官方固件虽有 DDNS 功能,却不支持 IPv6 特性,所以我把它刷成了 ImmortalWrt —— OpenWrt 的一個分支。欲按本文思路配置,你需要有:

  • 一台刷了 OpenWrt 固件的路由器(我的是 openwrt-23.05 branch)
  • 一個自有域名(本文以 Cloudflare 托管的域名为例)

前期工作

首先,仔细参照這篇文章:正确地配置 IPv6 防火墙和 DDNS 以在公网访问设备 | 绒布地球 (rongrongbq.moe)。本文的产生完全有賴於這篇文章。
该文中,【环境】裏「需要暴露的主机」在本文场景裏爲需要被远程访问的 Windows PC。

【准备工作】全照做,其中【取得设备的不变后缀】本文按选项一操作(別的我也搞不懂)。

【配置防火墙】,照做。「目标端口:暴露特定端口」,在本文场景下,可以填远程桌面端口 3389。

【配置DDNS】章节不照做,本文採用更好懂的图形界面而非脚本操作。

安装和配置 DDNS-GO

OpenWrt 提供两个實現 DDNS 的软件包,ddns-scripts 和 ddns-go。本文採用後者。如欲用另一个,也可自行研究。

在路由器管理界面“系统 -> 软件包”,点更新列表,完成后在过滤器输入“ddns”,在下方選“luci-app-ddns-go”点安装。

刷新路由器管理界面,点“服务 -> DDNS-GO”,勾选「启用」,点下方保存并应用,然後「打開 Web 界面」。

DNS服务商按需選擇,本文选 Cloudflare,然後点下方提示链接跳转至 Cloudflare 创建令牌。复制令牌回来填入下方「Token」栏。取消勾选“是否启用” IPv4,勾选“是否启用” IPv6。「获取 IP 方式」選「通過命令获取」。因爲前两个选项获取到的 IPv6 地址都不是電腦的而是路由器的。

路由器获取局域网中指定设备 IPv6 地址的命令

请参考通过命令获取IP参考 · jeessy2/ddns-go Wiki (github.com) 或者 通过命令获取IP参考 · Issue #531 · jeessy2/ddns-go (github.com)

命令格式爲:

1
ip -6 route | awk '{print $1}' | awk '/240:?/' | awk -F::/ '{print $1 ":suffix of other mac"}'

其中, suffix of other mac 替换爲電腦的 IPv6(EUI-64) 后缀(注意:suffix 前的英文冒号不可省略)。關於何为 EUI-64,前面提到的文章有講。如果不放心,可以 ssh 連接路由器後输入命令看看。

在 DDNS-GO 面板的 【IPv6】 -> 「获取 IP 方式栏」填入你的命令。

然後

來到 Cloudflare 官网(或你的域名服务商),選擇你的域名,添加一条“AAAA”類型的 DNS 记录,名称自定义,它会成为你后续用到的子域名,內容可以临时隨便填一個 IPv6 地址(因爲 DDNS 部署完成后,这个值會自动更新),关闭代理狀態的开关,改为“僅 DNS”(這個我是试出来的,开启连不上),保存。

之後

回到 DDNS-GO 面板,在【Domains】栏输入刚才自定义的子域名,也就是“AAAA记录名称.你的域名”。

该面板其余选项保持默認,点击【保存】。

一切順利的話,右上角日志会显示更新域名解析成功。至此大功告成。

接下来,只需要在欲遠程访问该電腦的設備上安装微软官方的 Remote Desktop(RD Client),添加電腦,主机名爲自定义子域名即可。假如报错 0x204,可以参看:怎么解决远程桌面错误代码0x204?(3种方法) (anyviewer.cn)

其实本文的设置将远程桌面默认端口3389暴露在公网了,可能有些不安全。或许改下防火墙、端口之类的设置可以改善。但我现在还没研究明白,就到此为止啦!


在 OpenWrt 上配置 IPv6 版 DDNS 實現远程桌面的访问
https://tommylibra.site/2024/08/12/在 OpenWrt 上配置 IPv6 版 DDNS 實現远程桌面的访问/
作者
Tommy
發布於
2024年8月12日
許可協議