IPv6 + DDNS + RDP 实现内网穿透
当外出时,我需要用笔记本电脑或者手机通过远程桌面(微软的 RDP)连接到家里台式机。众所周知,RDP 需要一个 IP 地址才能连接。虽然我家的宽带没有 IPv4 公网地址,但是 IPv6 已开通,所以我可以通过 RDP 直连我家台式机的 IPv6 地址。然而,运营商分配给我家宽带的 IPv6 地址是动态的,所以还需要通过 DDNS (动态 DNS 解析)将这个动态 IPv6 地址解析到一个域名,在 RDP 中连接这个域名。以下是操作步骤。
一、准备工作
-
找电信运营商开通 IPv6。
-
在光猫中将连接方式改为桥接。
-
需要支持 IPv6 的路由器。我的路由器是小米 AX1800 路由器,打开了 SSH,并且用 iptables 命令控制 IPv6 防火墙。(该路由器无法用图形界面控制 IPv6 防火墙)。
-
购买域名,注册 Cloudflare 账号,并将域名添加到 Cloudflare。
-
在家里的台式机上启用远程桌面。
二、安装并配置 ddns-go
DDNS-GO 是动态 DNS 解析工具。下载DDNS-GO
到本地并解压,使用管理员权限运行 Windows 终端,在 PowerShell 中执行以下命令安装并设置 DDNS-GO:
1 |
|
在浏览器中打开 127.0.0.1:9876
,配置 DDNS-GO。
-
DNS 服务商设置为 Cloudflare。
-
在 Cloudflare 中创建一个 Token(令牌),模板为“编辑区域 DNS”,在“区域资源”中选择“所有区域”,然后点击“创建”。把创建的 Token 复制到 DDNS-GO 中,点击“保存”。
-
在 DDNS-GO 中,取消勾选“IPv4”,保持勾选“IPv6”,把“获取 IP 方式”设置为“通过网卡获取”,“Domains”输入域名,此处假设为 rdp.kukmoon.com。
-
DDNS-GO 会在 Cloudflare 中自动新建一条 DNS 解析记录,域名为 rdp.kukmoon.com,IP 地址为“通过网卡获取”的 IP 地址。
-
配置路由器防火墙,允许访问 3389 端口的流量通过。
三、为了安全,更改 RDP 端口
-
打开注册表,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
,导出RDP-Tcp
为 reg 文件。 -
复制 reg 文件,然后编辑这个复制的reg文件。找到
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
这行,把最后的RDP-Tcp改成RDP-Tcp-1。再把PortNumber
这行的值改成0000d431
(对应十进制的 54321)。 -
将这个reg文件导入注册表,重启电脑,就可以通过 3389 和 54321 端口访问本机的远程桌面了。
-
配置本机防火墙和路由器防火墙,开启 54321 端口。
注意:路由器不开启 3389 端口,这样就不允许外网访问 3389 端口,3389 仅在我家内部的局域网中使用。
四、测试
手机(网络为中国电信 4G)开热点共享给笔记本电脑,在笔记本上新建远程连接,地址为“rdp.kukmoon.com:54321”,连接很顺利,操作比较流畅。
五、图片版权
题图:By Rawpixel from Negativespace.co
头图:Photo by urbex clan on StockSnap

