Azure RDP 3389 端口被修改后无法连接远程桌面的解决办法

将默认的3389端口修改为31313端口,然后在azure的控制台也将原来的入站规则3389修改为31313,但是从此之后就死活都连不上远程桌面了! 重启虚拟机、重新部署虚拟机都没用!

Azure RDP 3389 端口被修改为其它端口之后,如果新端口没有被添加到防火墙白名单内,则很可能会出现新旧端口都无法连接上RDP远程桌面的情况,本文正是这种情况的解决办法。

问题描述:我的windows主机一开始用的是3389端口连接远程桌面,在入站规则里面也配置了3389端口,远程桌面连接一直都是正常的!今天我想着用默认的端口不安全,于是通过远程桌面,通过修改虚拟机的注册表(修改方法参考本站另外一篇文章:修改Window Remote Desktop 远程桌面的默认端口3389)将默认的3389端口修改为31313端口,然后在azure的控制台也将原来的入站规则3389修改为31313,但是从此之后就死活都连不上远程桌面了! 重启虚拟机、重新部署虚拟机都没用!

求助了强哥之后明白了原因在哪里:因为Azure虚拟机的Windows自带的防火墙规则只开放了默认的3389端口,而一旦RDP的默认端口被更改后,虽然Azure上的NSG也开放了新的31313端口,但是Windows自带的防火墙却没有放开这个新的端口,所以远程桌面连接失败。

解决办法很简单,就是要修改windows的防火墙配置,开放这个新的端口!

但是这个时候又碰到新的问题:既然这台虚拟机不能通过远程桌面连接了,那要如何去修改Windows的防火墙配置呢?简直就是一个先有鸡还是还有蛋的问题。

这就需要我们用别的方法去更改了,好在Azure给我们提供了一种方式,下面就是强哥给出的最终解决办法:

使用Azure 虚拟机CustomScriptExtension来自动配置Azure虚拟机。

Azure为我们的虚拟机提供相当丰富的Extension,这些Extension既有微软自己开发的,也有其他第三方开发的,简单理解Extension就是一种打包好的扩展,你只需要选择相应的扩展,并提供相应的必要参数就可以了。

下图是一台Windows虚拟机的部分Extension列表:

Azure RDP 3389 端口被修改为其它端口之后,如果新端口没有被添加到防火墙白名单内,则很可能会出现新旧端口都无法连接上RDP远程桌面的情况

其中选中的是Acronis Backup用做备份的Extension,当你点击“Create”后,你只需要提供Acronis备份服务器的IP地址以及用户名密码就好了,这个Extenstion就会自动安装到该虚拟机。

Azure RDP 3389 端口被修改为其它端口之后,如果新端口没有被添加到防火墙白名单内,则很可能会出现新旧端口都无法连接上RDP远程桌面的情况

而今天我们需要用的这个Extension则是其中比较特殊的一种 – 由微软提供的Custom Script Extension,即该Extension安装的不是一个软件或者程序,而是提供一种方式让我们去部署一个客户化的脚本。

该Extension可以不需要远程桌面,也不需要文件共享就可以通过Azure的管理工具(Portal/CLI/PowerShell)去Azure 的虚拟机上部署并运行一个由你自己开发的脚本,这样就解决了我们刚才先有鸡还是先有蛋的问题。

现在我们有一台虚拟机,已经通过修改注册表

(HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/Wds/rdpwd/Tds/tcp/PortNumber

以及

 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/Winstations/RDP-Tcp/PortNumber)

的方式修改了RDP的端口为31313

Azure RDP 3389 端口被修改为其它端口之后,如果新端口没有被添加到防火墙白名单内,则很可能会出现新旧端口都无法连接上RDP远程桌面的情况
Azure RDP 3389 端口被修改为其它端口之后,如果新端口没有被添加到防火墙白名单内,则很可能会出现新旧端口都无法连接上RDP远程桌面的情况

相关联的NSG(网络安全组)也已经放开了入站的31313端口:

Azure RDP 3389 端口被修改为其它端口之后,如果新端口没有被添加到防火墙白名单内,则很可能会出现新旧端口都无法连接上RDP远程桌面的情况

但是重启之后该虚拟机无法使用RDP连接。

我们先通过一种简单的方式来运行Custom Script  – Azure Portal,注意通过Portal只能运行PowerShell脚本,并且脚本文件必须从客户端本地上传,并由Azure存储到一个临时的Storage Account下面,这个临时的Storage Account会在一天内被删除。

先创建一个allow-rdp.ps1的PowerShell脚本,内容如下:

$RDPPort = “31313”
New-NetFirewallRule -DisplayName “Allow RDP HighPort” -Direction Inbound -LocalPort $RDPPort -Protocol TCP -Action Allow

然后我们到该虚拟机去通过Custom Script Extension部署该脚本:

Azure RDP 3389 端口被修改后无法连接远程桌面的解决办法

接着在Install Extension的窗口里面选择刚才的脚本,Argument填脚本文件名,参数保持空白,当然这里大家可以自己发挥一下,比如将RDPPort设置成一个变量,这样就不需要在脚本里面写死RDP端口了,方便重复利用。

点击“OK”部署脚本。

Azure RDP 3389 端口被修改后无法连接远程桌面的解决办法

等待脚本部署成功后可以看到该虚拟机的Extension下面多了一“CustomScriptExtension”

Azure RDP 3389 端口被修改后无法连接远程桌面的解决办法

点击该Extension之后可以看到脚本部署的详细信息。

Azure RDP 3389 端口被修改后无法连接远程桌面的解决办法

现在就可以通过31313的端口远程桌面再次连接到该虚拟机了。

Azure RDP 3389 端口被修改后无法连接远程桌面的解决办法

原创文章,作者:arthur,如若转载,请注明出处:https://bitchina.info/genggaia-azure-rdp-3389-xunijideyuanchengzhuomianmorenduankouhouwufalianjieyuanchengzhuomiandejiejuebanfa/.html

发表评论

登录后才能评论