求助, Windows 远程桌面从前几天开始不能连接外网自定义的 ipv6 地址主机了

141 天前
 MuJian
一直用 widonws 远程桌面,相对于 ipv4 需要做局域网转发,我更喜欢用 ipv6 地址直连。因为我这都是华硕路由器,ipv6 也都需要经过防火墙,如果要远程桌面连接,必须防火墙开放 3389 端口,但是有个问题,开放 3389 后,这个局域网内所有 ipv6 设备的 3389 端口都暴漏在了公网下了,所以上个月想了个办法,通过 bat 脚本给 windows 设备手动指定一个 ipv6 地址,例如 xxxx:xxxx:xxxx:xxxx::5 ,这样我只需要在华硕路由器防火墙放行::5 的 3389 就行了。这样使用了 1 个月,个人还是挺满意的。但是前几天一台 win10 dell xps 设备突然这个手动指定的 ipv6 地址远程桌面连接不上了!尝试通过路由器分配的 ipv6 地址没问题,能够使用!我这还有一台 win11 的设备,一点问题没有,于是折腾了 2 天!发现 win10 设备作为 RDP 服务器,打开 TCP+UDP 后,连接不上,仅用 TCP 没问题; TCP+UDP 开启的情况下,需要指定安全层设置为 RDP 就能用了,用 ssl 不行!本来告一段落了,今天想着,没事就把这 win10 升级 win11 吧,毕竟另外一台 win11 这么用一点问题没有,啥特别设置都没有改,于是装上 win11 ,没想到 win11 下无论怎么设置,这个自定义个 ipv6 地址都不能被远程后面连接了,装好系统后是能用的,过一会一更新补丁和驱动就不能用了!真是无语了,另外一台笔记本就没问题!

通过查看 RemoteDesktopSerices-RdpCoreTS 日志

发现自定义 ipv6 地址连接失败的记录如下:(如果在同一局域网下用这种自定义 ipv6 地址能够成功!)

服务器已接受来自客户端 [2408:841d:22e4:84f3:31db:4b03:f566:9a08]:55956 的新 TCP 连接。
连接 RDP-Tcp#0 已创建
调用的接口方法: PrepareForAccept
调用的接口方法: SendPolicyData
PerfCounter 会话已启动,实例 ID 为 0
TCP 套接字读取操作失败,出现错误 121
RDP_TCP: 从 StateUnknown 转换以响应 Event_Disconnect 时遇到错误(错误代码 0x80070079)。
TCP 套接字写入操作失败,出现错误 121
调用的接口方法: OnDisconnected
服务器已终止到客户端的主 RDP 连接。
此连接期间,服务器在 0 秒内尚未发送数据或图形更新(Idle1: 0 ,Idle2: 0)。
传输隧道上服务器与客户端之间的通道 rdpinpt 已关闭: 0 。
传输隧道上服务器与客户端之间的通道 rdpcmd 已关闭: 0 。
传输隧道上服务器与客户端之间的通道 Microsoft::Windows::RDS::CoreInput 已关闭: 1 。
传输隧道上服务器与客户端之间的通道 rdplic 已关闭: 0 。


连接路由器分配的 ipv6 地址成功的日志如下

服务器已接受来自客户端 [2408:841d:22e4:84f3:31db:4b03:f566:9a08]:57786 的新 TCP 连接。
连接 RDP-Tcp#0 已创建
调用的接口方法: PrepareForAccept
调用的接口方法: SendPolicyData
PerfCounter 会话已启动,实例 ID 为 0
由于 Reason Code: 2(Server Configuration).,已禁用网络特性检测功能。
已使用传输隧道连接服务器和客户端之间的通道 rdplic: 0 。
已使用传输隧道连接服务器和客户端之间的通道 rdpcmd: 0 。
调用的接口方法: OnStartLicensing
调用的接口方法: AcceptConnection
客户端时区与 UTC 相差 [8] 小时;
连接 RDP-Tcp#0 使用显示器驱动程序 RDPUDD 。
......

从第六条开始不一样
由于 Reason Code: 2(Server Configuration).,已禁用网络特性检测功能。
不成功的没能禁用网络特性检测功能?
是不是要核查 ssl 证书?这个特性能够手动禁用吗?

有没有大佬给解解惑,真的现在是头大+糊涂,用了一个多月的方法,一更新就没了,关键是另外一台 win11 笔记本也更新到最新了,就没事……
1452 次点击
所在节点    程序员
12 条回复
e3c78a97e0f8
141 天前
RDP bug 一大堆
我现在的做法是开一个 WireGuard server ,外面的机器先连 WireGuard ,再连 RDP 。这样不仅绕过了 Windows RDP server 的 bug ,还更安全,毕竟 RDP authentication 只能用密码有点不安全。
MuJian
141 天前
@e3c78a97e0f8 wireguard 已经开了,但是还是喜欢 ipv6 直连,在外面不用先连接 wireguard 。
MuJian
141 天前
部署了一个腾讯的免费 ssl 证书,貌似解决了 2 台 win11 之间的连接,但是 android rdp 连上就断……
sodulty
140 天前
直接 ipv6 + DDNS 吧,找个域名就行,非常稳定,电脑上或路由器上整个 ddns-go 等服务。
MuJian
140 天前
@sodulty 现在就是 ipv6+域名啊,一觉醒来莫名其妙的连 ssl 签名域名都不行了......
sodulty
140 天前
@MuJian #5 那确实没遇到过,我这个也是腾讯云免费的 SSL 证书,安卓用 rd client 连 ipv6 没问题。防火墙的问题吗? ACL 规则用 MAC 地址来屏蔽试过没,爱快路由器可以的
MuJian
140 天前
@sodulty 应该是 windows 的问题,不知道微软升级搞了什么,查不到质量。
Mumu2580
140 天前
目前是 ipv6 全放行了,v6 地址多,每天定时重启一下路由器,快一年了,没出问题,要远程先 wol 然后,都是直接 ipv6 公网 rdp 。
Joeysergey
102 天前
一样的问题,现在发现通过 frp 就会报错而且无法连接,但是直连 ipv6 正常。局域网也正常
MuJian
101 天前
@Joeysergey 不知道是不是 windows 或者某个驱动的安全策略,只能使用系统当前使用的 ipv6 地址。
Joeysergey
101 天前
@MuJian #10 win11 某次更新后出现的问题,排查了 frp 和本地注册表设置防火墙之类都不行,修复系统也没用。现在只有用 zero 之类的了或者 ipv6 解决了。
YICHUJIFA
5 天前
刚用了 ipv6 +ddns-go 远程 3389 到 windows , 大家是怎么防止别人远程桌面登录呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1039244

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX