一、解决方案架构解析
- 获取公网 IPv6 地址
- 动态 IP 上报
- 更新 DNS 记录
- 域名绑定 IP
- 输入您的域名
- 解析到当前 IP
- 路由到设备
您的 Win10 笔记本家庭/公司网络 -> DDNS-GO 客户端 -> dynv6 域名服务 -> 全球 DNS 系统 -> 异地访问者
核心组件:
- dynv6:免费 IPv6 动态域名服务(支持 https://dynv6.com)
在 Windows 10 环境下,利用 dynv6 免费域名服务和 ddns-go 客户端配置动态 DNS 的方法。通过获取公网 IPv6 地址,自动更新域名解析记录,实现无需公网 IPv4 即可进行远程桌面、文件共享等服务的异地访问。内容涵盖环境准备、服务注册、客户端配置、防火墙设置及安全加固措施,并提供故障排查指南,帮助用户构建基于 IPv6 的家庭或办公网络远程访问方案。
您的 Win10 笔记本家庭/公司网络 -> DDNS-GO 客户端 -> dynv6 域名服务 -> 全球 DNS 系统 -> 异地访问者
核心组件:
| 特性 | IPv4 方案 | IPv6 方案 |
|---|---|---|
| 需要公网 IP | 必需 | 不需要(移动宽带已分配 IPv6 公网地址) |
| 网络穿透能力 | 需路由器端口映射 | 直连设备 |
| 延迟 | 较高(NAT 转换) | 极低(端到端直连) |
| 移动网络支持 | 部分运营商限制 | 完全支持 |
| 安全性 | 需防范端口扫描 | 地址空间巨大更安全 |
| 配置复杂度 | 中等(需端口转发) | 简单(直接访问) |
结论:优先使用 IPv6 方案,当访问端不支持 IPv6 时再使用 IPv4 方案作为备用。
| 项目 | 要求 | 检测方法 |
|---|---|---|
| 宽带网络 | 支持 IPv6 | ipconfig 查看 IPv6 地址 |
| Windows 10 版本 | 1903 及以上 | winver 查看版本号 |
| 管理员权限 | 必需 | 右键菜单'以管理员身份运行' |
| 防火墙配置 | 开放目标端口 | 控制面板->系统和安全->防火墙 |
IPv6 连通性测试:
# 检查 IPv6 地址
ipconfig | findstr "IPv6"
# 测试 IPv6 连通性
ping -6 ipv6.baidu.com
注意:若无法获取 240 开头的公网 IPv6 地址,需联系宽带运营商开通 IPv6 服务
| 工具 | 下载地址 |
|---|---|
| ddns-go | https://github.com/jeessy2/ddns-go/releases |
| dynv6 | https://dynv6.com |
| 远程桌面客户端 | https://aka.ms/rdclient |
访问 https://dynv6.com → Sign Up → 邮箱验证
https://dynv6.com
用户登录控制面板 Zones → Add new zone 输入域名前缀 (如:mywin10) 分配域名 mywin10.dns.army
使用 Powershell 管理员权限执行
# 创建安装目录
mkdir C:\DDNS
cd C:\DDNS
# 下载最新版 (v6.0.0)
Invoke-WebRequest -Uri "https://github.com/jeessy2/ddns-go/releases/download/v6.0.0/ddns-go_6.0.0_Windows_x86_64.zip" -OutFile "ddns-go.zip"
# 解压文件
Expand-Archive -Path ddns-go.zip -DestinationPath .
# 启动配置向导 (管理员权限)
Start-Process -FilePath ".\ddns-go.exe" -Verb RunAs
浏览器自动打开 http://127.0.0.1:9876
DNS 服务商选:Callback # 回调方式配置
回调地址 URL (用于 IPv6): https://dynv6.com/api/update?zone=#{domain}&token=YOUR_TOKEN&ipv6=#{ip}
# 参数配置:
YOUR_TOKEN: your_api_token # 替换为 dynv6 API 令牌
其他变量不用调整
IPV4:不启用 IPV6 获取 IP 方式:通过网卡获取(选择实际连接的网络适配器) Domains:dynv6 申请的域名 禁止公网访问本页面 设置用户名和密码
查看日志是否调用成功
# 成功判断:成功内容包含:updated
# 创建 Windows 服务
New-Service -Name "DDNS-Go" `
-BinaryPathName "C:\DDNS\ddns-go.exe" `
-DisplayName "DDNS-Go Service" `
-StartupType Automatic
# 启动服务
Start-Service -Name "DDNS-Go"
# 域名解析测试(创建后需等待 1-10 分钟)
Resolve-DnsName yourhost.dns.army -Type SOA
# 正常返回:
# Name Type TTL Section NameAdministrator
# ----------------------------------- yourhost.dns.army SOA 3600 Answer hostmaster.dns.army
# 允许 IPv6 远程桌面
New-NetFirewallRule `
-DisplayName "RDP over IPv6" `
-Protocol TCP `
-LocalPort 3389 `
-Direction Inbound `
-Action Allow `
-InterfaceType Any `
-LocalAddress Any `
-RemoteAddress Any `
-Enabled True
# 启用远程桌面
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0
# 允许网络级别认证
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Value 1
访问方式示例 | 服务类型 | 访问格式 | 必备条件 | |-------------|----------------------------------|--------------------| | 远程桌面 (RDP) | mstsc.exe /v:[yourhost.dns.army] | 开放 3389 端口 + 启用远程桌面 | | 文件共享 (SMB) | [yourhost.dns.army]\Share | 开放 445 端口 + 启用文件共享 | | Web 服务 (HTTP) | http://[yourhost.dns.army]:8080 | 开放目标端口 + 运行服务 | | SSH 服务 | ssh [email protected] | 开放 22 端口 + 安装 OpenSSH 服务 |
# 查看域名解析的 IPv6 地址
Resolve-DnsName mywin10.dns.army -Type AAAA | Format-List
# 测试远程桌面端口
Test-NetConnection -ComputerName mywin10.dns.army -Port 3389 -InformationLevel Detailed
# 部署轻量 Web 服务
docker run -d -p 8080:80 --name webserver nginx
# 开放防火墙端口
New-NetFirewallRule -DisplayName "WebService" -Protocol TCP -LocalPort 8080 -Action Allow
# 创建共享文件夹
New-Item -Path "C:\MyNAS" -ItemType Directory
Grant-SmbShareAccess -Name "MyNAS" -AccountName "Everyone" -AccessRight Full -Force
# 跨网络访问
\\mywin10.dns.army\MyNAS
# 开放 Minecraft 端口
New-NetFirewallRule -DisplayName "Minecraft" -Protocol TCP -LocalPort 25565 -Action Allow
连接地址:mywin10.dns.army:25565
| 故障现象 | 排查命令 | 解决方案 |
|---|---|---|
| 域名解析失败 | Resolve-DnsName mywin10.dns.army -Type AAAA | 检查 ddns-go 日志是否更新成功 |
| 无法连接服务 | Test-NetConnection -Port 3389 -ComputerName ::1 | 确认防火墙已开放目标端口 |
| IPv6 地址变化未更新 | 查看 C:\DDNS\ddns-go.log | 重启 ddns-go 服务 |
| 远程桌面认证失败 | Get-ItemProperty 'HKLM:\System\CurrentControlSet\Control\Terminal Server' | 确认已启用网络级别认证 |
| 外部无法访问 | tracert -6 mywin10.dns.army | 检查路由器是否禁用 IPv6 转发 |
# 只允许特定 IPv6 前缀访问
New-NetFirewallRule `
-DisplayName "RDP Restricted" `
-RemoteAddress 240e:3b4:2023::/48
# 替换为你的办公网络前缀
# 安装 Google 身份验证器
Install-Module -Name GoogleAuthenticator
# 绑定远程桌面
Set-RDMTFA -Enable $true -Provider "GoogleAuthenticator"
# 修改远程桌面端口
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber" -Value 53389
# 更新防火墙规则
Set-NetFirewallRule -DisplayName "RDP over IPv6" -LocalPort 53389

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online