ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

华为云 Windows 服务器远程桌面自定义端口排障指南

华为云 Windows 服务器远程桌面自定义端口排障指南 tags:华为云Windows Server远程桌面RDP安全组华为云 Windows 服务器远程桌面自定义端口排障指南一、问题现象一台华为云 Windows 服务器出现了以下情况通过云堡垒机可以正常进入服务器Windows 的远程桌面服务处于运行状态华为云安全组和云防火墙看起来都已经放行但是本地电脑仍然无法通过远程桌面连接。这类问题很容易让人误以为是远程桌面服务故障。实际上堡垒机和本地电脑走的是两条不同的网络路径堡垒机堡垒机 → VPC 内网 → 云服务器 本地电脑本地出口公网 IP → Internet → 云防火墙 → EIP/公网映射 → 安全组 → Windows 防火墙 → RDP 服务因此“堡垒机能连接”只能说明服务器和内网路径基本正常并不能证明公网入口也配置正确。二、本次案例的关键原因服务器没有继续使用 RDP 默认端口3389注册表中的端口值为PortNumber REG_DWORD 0xc4d50xc4d5是十六进制换算成十进制为0xc4d5 51389也就是说服务器实际使用的远程桌面端口是51389。本地连接、安全组、云防火墙和 Windows 防火墙必须全部围绕这个端口配置。正确的远程桌面地址格式为服务器公网IP:51389如果只填写公网 IP远程桌面客户端会默认访问3389自然无法连接。安全组中即使放行了3389对当前服务也没有作用。此外安全组规则如果使用/32白名单规则中的源地址必须是本地电脑当前的公网出口 IP而不是电脑的局域网地址。家庭宽带、公司网络、VPN 和手机热点都可能改变出口 IP。三、服务器端检查1. 检查远程桌面服务在服务器的 CMD 中执行sc query TermService如果在 PowerShell 中执行建议写成sc.exe query TermService正常情况下应看到STATE : 4 RUNNING2. 查看实际 RDP 端口执行reg query HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp /v PortNumber如果返回十六进制值可以在 PowerShell 中换算[Convert]::ToInt32(c4d5,16)输出513893. 确认端口正在监听仅仅看到服务处于RUNNING还不够还要确认系统真的监听了目标端口netstat -ano | findstr :51389正常结果类似TCP 0.0.0.0:51389 0.0.0.0:0 LISTENING或者TCP [::]:51389 [::]:0 LISTENING也可以使用 PowerShellGet-NetTCPConnection-LocalPort 51389-State Listen如果没有任何监听结果说明端口设置尚未生效或远程桌面监听器存在异常。修改端口后通常需要重启远程桌面服务或服务器。执行下面的命令会中断现有远程桌面会话应确保还能通过堡垒机或控制台重新进入Restart-ServiceTermService-Force4. 检查 Windows 防火墙为 TCP 51389 创建入站允许规则New-NetFirewallRule-DisplayNameRDP TCP 51389-Direction Inbound -Protocol TCP -LocalPort 51389 -Action Allow可以进行本机端口测试Test-NetConnection127.0.0.1-Port 51389如果显示TcpTestSucceeded : True说明服务器本机的 RDP 监听和 TCP 防火墙路径基本正常。RDP 还可以使用同端口的 UDP 来改善连接体验但 UDP 并不是建立基本远程桌面连接的必要条件。需要时可以额外添加New-NetFirewallRule-DisplayNameRDP UDP 51389-Direction Inbound -Protocol UDP -LocalPort 51389 -Action Allow四、配置华为云安全组远程桌面是从本地电脑主动访问服务器因此主要配置安全组的入方向规则配置项建议值方向入方向策略允许协议TCP端口51389源地址本地当前公网 IP/32例如本地当前公网出口 IP 为203.0.113.10源地址应填写203.0.113.10/32注意上面的地址只是文档示例不能直接照抄。可以在浏览器中搜索“我的 IP”查询当前公网出口 IP。不要填写192.168.x.x、10.x.x.x或172.16.x.x之类的局域网地址。是否还要配置出方向规则通常不需要为这次 RDP 连接单独添加出方向规则。安全组是有状态的已允许入站连接的响应流量会自动放行。出方向保持默认允许即可。只有在还配置了无状态网络 ACL、第三方防火墙或者设置了特殊的严格出站策略时才需要进一步检查返回方向规则。临时排障方法如果无法确定是否为源 IP 不匹配可以短时间将源地址改为0.0.0.0/0如果修改后立即能够连接基本可以确定是原来的源 IP 白名单不正确。测试完成后应立刻恢复为自己的公网 IP/32不要长期向整个互联网开放远程桌面端口。五、检查云防火墙和公网映射如果服务器的 EIP 已纳入华为云防火墙防护还需要确保云防火墙允许以下流量来源本地当前公网 IP 目的服务器 EIP 协议TCP 目的端口51389 动作允许安全组和云防火墙是不同的控制层。只配置其中一层另一层仍然拒绝时连接依旧无法通过。如果公网 IP 不是直接绑定在云服务器上而是经过 NAT 网关还要检查 DNAT 规则是否正确例如公网 EIP:51389 → 云服务器私网 IP:51389公网端口与服务器端口也可以不同但连接时必须使用 DNAT 规则中的公网端口。六、从本地电脑验证公网端口在本地 Windows PowerShell 中执行Test-NetConnection服务器公网IP-Port 51389重点观察TcpTestSucceeded结果为 True说明公网 TCP 路径已经连通。此时如果远程桌面客户端仍然报错应继续检查用户名和密码账号是否有远程登录权限网络级别身份验证NLA远程桌面授权和会话限制客户端是否确实填写了公网IP:51389。结果为 False优先检查是否使用了正确的公网 IP服务器是否监听 TCP 51389安全组是否放行 TCP 51389安全组源地址是否等于本地当前公网出口 IP云防火墙是否放行相同的 IP、EIP 和端口是否存在 NAT/DNAT 端口映射本地是否启用了 VPN、代理或更换了网络公司网络或运营商是否限制了该端口。可以再使用手机热点测试一次。如果热点可以连接、原网络不能连接问题通常位于本地网络出口或源 IP 白名单而不是服务器。七、正确发起远程桌面连接在“远程桌面连接”的“计算机”输入框中填写服务器公网IP:51389也可以按Win R执行mstsc /v:服务器公网IP:51389八、推荐排障顺序建议严格按照从内到外的顺序排查TermService 是否运行 ↓ 注册表端口是否为预期值 ↓ 服务器是否监听 TCP 51389 ↓ Windows 防火墙是否允许 TCP 51389 ↓ 安全组入方向是否允许 TCP 51389 ↓ 源地址是否为本地当前公网 IP ↓ 云防火墙是否允许访问 EIP:51389 ↓ NAT/DNAT 映射是否正确 ↓ 本地 Test-NetConnection 是否成功 ↓ 使用 公网IP:51389 发起 RDP 连接这种排查方式可以快速定位问题究竟发生在服务器、Windows 防火墙、云侧访问控制还是本地网络。九、安全建议远程桌面端口暴露到公网存在扫描、爆破和漏洞利用风险建议安全组源地址只允许可信公网 IP/32不要长期使用0.0.0.0/0开放 RDP使用强密码并限制可远程登录的账号启用账户锁定策略和登录审计及时安装 Windows 安全更新优先通过 VPN、堡垒机或零信任接入访问服务器修改默认端口只能减少普通扫描不能代替真正的访问控制。十、总结本案例最值得注意的不是“端口有没有放行”而是每一层使用的端口和源地址是否完全一致RDP 实际监听端口51389 Windows 防火墙允许 TCP 51389 入站 安全组允许本地当前公网 IP 访问 TCP 51389 云防火墙允许同一来源访问服务器 EIP 的 TCP 51389 远程桌面客户端连接 公网IP:51389安全组通常只需要配置入方向返回流量由有状态连接自动放行。堡垒机能够进入服务器只能证明内网访问链路正常本地电脑能否连接还取决于公网入口上的每一层配置。
返回列表