標籤彙整: RDP

如何通过IPv6远程桌面连回家里的Windows电脑

之前的一篇文章,介绍过手搓Python脚本或者bat批处理文件,向cf更新自己的ipv6地址的方法。现在介绍一个傻瓜式的方案。我已经把程序写好直接使用即可。

使用前提:你必须有一个域名,且托管在cloudflare。家里路由器请开启ipv6功能,并调整防火墙设置放行3389端口入站。因为中国网络的特殊原因,很多家庭宽带没有公网ipv4,所以我们使用ipv6连接。

首先获得cf的api token:登录cloudflare,右上角点设定,左边菜单选择api权杖。点击建立token按钮,选择模板,编辑区域DNS,选择你准备用来ddns的域名并点击继续。(如下图)

拿到 token 之后。

添加你需要使用ddns的域名dns记录:回到首页,点击你的域名,左边菜单选择 DNS – 记录,点击添加记录。因为我们需要添加的是ipv6的记录,所以选择AAAA记录。如下图。

类型选择AAAA,名称填写你需要的前缀,比如你的域名是 lilith.pro,那么你填写一个 ipv6,未来需要使用的ddns域名就是 ipv6.lilith.pro。下面的地址随便写一个,因为之后会被我们真实的地址覆盖,现在可以随便写 8888::8 即可。注意proxy这个橙色小云彩需要选择关闭。然后点击储存。

cf这边的设置就全部完成了。下面去下载和使用我写好的程序即可。
请在github页面直接下载即可:https://github.com/kujourin/cfddns-ipv6-win
点击右侧Release选项对应你系统的版本,一般是x64

将这个 .exe 文件放到一个你以后不会随便移动的文件夹里(比如 D:\Tools\CFDDNS\)
双击运行它一次。
此时程序会发现当前没有配置文件,它会自动弹出一个提示框,并在同一文件夹下生成一个 config.ini 文件。
使用记事本打开刚刚生成的 config.ini 文件,你会看到以下内容,请替换为你自己的信息:

API_TOKEN:填入你在cf获得的token。
DNS_NAME:填入你想要绑定的完整子域名(我们刚才添加AAAA记录的那个)。
ZONE_NAME:填入你的主域名(例如 example.com)。
SLEEP_INTERVAL_SEC:检查 IP 变动的间隔时间,单位为秒。默认 3600(即 1 小时检查一次),建议保持默认或设为 600(10分钟),不要设置得太小以免触发 API 限制。
填写完成后,保存并关闭 config.ini。
再次双击运行 .exe 文件。
这一次,程序没有任何界面,它已经开始在后台静默运行了。只要你的电脑开着,它就会自动更新 IPv6 地址。
退出程序可以直接结束任务。

如果需要开机自启:找到你存放 cfddns-ipv6.exe 的文件夹,右键点击该程序,选择创建快捷方式。按下键盘上的 Win + R 键打开运行窗口,输入 shell:startup 并回车。这时会打开一个启动文件夹,将刚才创建好的快捷方式剪切或复制到这个文件夹中。以后每次开机它都会自动在后台运行了。

你使用这个域名得到的ip就是你运行程序的Windows电脑的ipv6地址。
使用Windows自带的远程桌面,连接刚才的域名。如果弹出输入用户名密码选项,则说明成功,其他情况请自查ddns ip是否正确,防火墙是否放行。

使用cf域名ddns连接家用ipv6公网地址

最近又折腾了一个其实没什么需求的东西,把家里Windows服务器的ip通过DDNS连接,使我在外面也能通过远程桌面连回家里。

其实我的路由器本身就有华硕官方的ddns,也安装了支持cf的ddns插件,而且家里也有公网ipv4和ipv6,所以平时我都是wg直接连回家使用家里的远程桌面。但是总觉得还要连一个wg有点麻烦,直接ipv4端口映射又不安全。所以想把家里Windows服务器的ipv6直接用cf的api做成ddns。

其他小伙伴也可以参考,适用于家中有ipv6公网地址且会分配给下面的设备,想通过域名直接连回家中Windows远程桌面的情况。需要准备:cf的域名,ipv6防火墙放行相关端口(如3389),Windows的机器安过Python。

在需要连接的机器上创建以下两个文件:

update_ipv6.bat 是用来循环执行 update_ipv6.py 的,当然如果你更喜欢用计划任务定时运行也一样。个人爱好,我比较喜欢开机自启bat然后能看见一个窗体让我知道它在运行。

运行 update_ipv6.bat 即可每小时更新一次相关的dns记录。该脚本只更新AAAA记录,也就是ipv6,因为个人感觉ipv6连内网安全一点,如果需要连同A记录也更新,可以自行修改,但需要通过第三方网站获得本机外网ip(因为网卡上的ipv4是内网地址,不能直接获得)。

如果你的服务器是2022或者以上版本应该会支持powershell,这样的话不需要使用Python也可以,这样更方便了。两个文件可以改为如下:

以上。凛。