Azure VM 远程桌面服务异常排查思路(已更新Azure Portal方式)
Windows 服务默认的远程桌面服务端口号是3389,在创建完Azure VM之后基本都会添加一个any to any的防火墙规则,方便多人登录这个机器。
但是随时随地的3389扫描搞得我很烦,就修改了默认的windows 远程桌面服务的端口号,修改完没有在VM里的windows 自带防火墙中添加inbound新端口规则,重启后好家伙,新端口和老端口全都不能RDP了。
一开始以为是Azure Portal上没有添加防火墙规则,添加了之后依然不行,顿感头大。
接着试了Azure自带的网页Bastion远程桌面服务,后来发现这也是基于RDP服务的,不能使;
在Azure页面上重置了远程桌面服务设置,无效,其实就是修改了注册表的另一个选项,可以把关闭的远程桌面服务打开,但是对于我修改的远程桌面服务端口号无能为力;
使出大招Azure重新部署VM,依然不行;
其实解决问题很简单,找个地方修改注册表就行了,把远程桌面端口号修改回3389,这样就能正常了,然后开始用SSH啊,远程PowerShell啊,包括我又开了一台新的VM,同一个子网下,试图远程修改注册表,也都失败了。
最后想起来Azure Portal上有个可以执行SAC命令的地方,SAC可以运行cmd和powershell,但是Azure变成中文了之后找了好半天才找到,翻译成了“串行控制台”。
https://learn.microsoft.com/zh-cn/troubleshoot/azure/virtual-machines/serial-console-overview
然后直接进去了这台机器,直接运行了PowerShell命令:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value 3389
我爱SAC!
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
7月29日更新,我发现Azure VM里有专门的远程执行命令的方式!甚至还有贴心的直接修改远程服务端口号:
顺便给Azure VM开了个备份,昨天RDP不上去的时候想着这些东西要是没了还是挺麻烦的,果然是不丢不知道珍惜。。。。