Невозможно выполнить RDP для виртуальной машины в Azure VM ScaleSet

Я следовал шаблонам Microsoft Quick Start для создания VM ScaleSet с виртуальными машинами Windows, как описано здесь: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/tutorial-create-and-manage-powershell.

Я могу определить общедоступный IP-адрес балансировщика нагрузки масштабируемого набора, а также входящие порты, которые можно использовать для RDP / 3389 и, таким образом, запустить mstsc /v:a.b.c.d:nnnn.

Я получаю Initiating remote connection всплывающее окно. Однако вместо диалогового окна проверки личности, которое должно последовать, я получаю (нормальное, но здесь нежелательное) всплывающее сообщение об ошибке Remote Desktop can't connect to the remote computer for one of these reasons:. Это как будто ВМ не работает, сеть меня блокирует или на ВМ отключен RDP.

Могу ли я предположить, что RDP включен ON для виртуальной машины и что сетевой маршрут на стороне Azure (созданный во вставленном ударе PS) правильный? Сталкиваются ли другие с такой же трудностью? Если да, то как подключить эти виртуальные машины по протоколу RDP?

Powershell из образца документа (я использую разные имена, но в остальном это одна и та же команда):

$cred=Get-Credential
New-AzureRmVmss `
  -ResourceGroupName "myResourceGroup3" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet3" `
  -VirtualNetworkName "myVnet3" `
  -SubnetName "mySubnet3" `
  -PublicIpAddressName "myPublicIPAddress3" `
  -LoadBalancerName "myLoadBalancer3" `
  -UpgradePolicyMode "Automatic" `
  -VmSize "Standard_F1" `
  -Credential $cred

Обратите внимание, что я использую версию 6.13.0 командлетов AzureRm.


person Howard Hoffman    schedule 26.03.2019    source источник


Ответы (1)


Команды PowerShell должны работать, поскольку вы успешно создали VMSS. Этот сценарий хорошо работает и на моей стороне. Я предлагаю проверить следующее о возможности подключения по RDP на вашей стороне:

  • Убедитесь, что исходящий порт 3389 не блокируется брандмауэром на локальном компьютере или локально установленным программным обеспечением прокси-сервера клиента или программным обеспечением для мониторинга сети, которое препятствует подключению к удаленному рабочему столу. Вы можете попробовать подключиться по RDP к другому компьютеру в той же локальной сети. Или проверьте, не блокирует ли ваша корпоративная сеть исходящий порт 3389. Вы можете попробовать подключиться по RDP к другой виртуальной машине Azure.
  • По умолчанию виртуальной машине Azure разрешено подключаться к порту 3389 RDP. Вы можете проверить, правильно ли вы вводите порт сопоставления при запуске mstsc /v:a.b.c.d:nnnn. Конкретный порт, который вы можете найти с помощью правил NAT для входящего трафика для каждого экземпляра. На моем рисунке вы увидите конкретный порт 5000 и целевой порт 3389.

введите описание изображения здесь

Для получения дополнительных сведений см. устранение неполадок Remote Подключения рабочего стола к виртуальной машине Azure и Подробные инструкции по устранению проблем с подключением удаленного рабочего стола к виртуальным машинам Windows в Azure.

person Nancy Xiong    schedule 27.03.2019
comment
Происходит что-то еще; все еще не работает. Чтобы убедиться, что я ничего не перебирал, я выполнил следующие команды PS: $ip=Get-AzureRmPublicIpAddress -Name myIpName -ResourceGroupName myRg $lb=Get-AzureRmLoadBalancer -Name myLb -ResourceGroupName myRg $rdp=$ip.IpAddress+':'+$lb.InboundNatPools[0].FrontendPortRangeStart mstsc /v:$rdp Я все еще не получаю запрос на сертификат; точно так же Remote Desktop can't connect to the remote computer for one of these reasons popup. Я также пробовал это со своего домашнего компьютера в обычной домашней сети (не рабочий VPN). Тот же результат. - person Howard Hoffman; 27.03.2019
comment
Приведенный выше вывод неверный порт для отображения 3389 на моей стороне. Это не InboundNatPools. Вы могли бы использовать $rdp=$ip.IpAddress+':'+$lb.InboundNatRules[0].FrontendPort. Вы также можете использовать Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort для проверки всей карты входящих портов nat. - person Nancy Xiong; 28.03.2019
comment
Похоже, что приведенные выше команды не создают NetworkSecurityGroup, и это то, что необходимо. Я отправлю ответ, когда подтвердю. - person Howard Hoffman; 29.03.2019
comment
В исходном вопросе вы не упомянули, что хотите создать NSG, а также об ошибке RDP, это неправильный порт nat, с которым вы пытаетесь подключиться. Вы можете принять этот ответ? Если вы хотите добавить группу безопасности сети, связанную с подсетью VMSS, вам необходимо открыть порт 3389 во входящем правиле. - person Nancy Xiong; 01.04.2019
comment
Оказывается, вам нужна группа NetworkSecurityGroup (NSG) для RDP. Я не хотел обязательно создавать группу безопасности сети, но обнаружил, что это необходимо для включения RDP в созданные виртуальные машины. Спасибо за вашу помощь. Командлет в документе не будет работать, как описано - для доступа RDP. Хотя в документации указано, что группа безопасности сети создана, это не так. Вы должны создать его сами. Когда вы создаете группу безопасности сети, RDP работает должным образом. - person Howard Hoffman; 17.04.2019
comment
Я не думаю, что вам нужна группа безопасности сети для включения RDP. NSG похож на брандмауэр, вы можете добавить его или нет. это необязательно. Я проверил правильность командлетов в документе. Проблема в неправильном сценарии в вашем первом комментарии. Вы просто ссылаетесь на неправильный порт сопоставления правил NAT для 3389. Вы действительно используете сценарии в качестве первого рабочего комментария? например, использовать InboundNatPools вместо InboundNatRules? Вы должны использовать $lb.InboundNatRules[0].FrontendPort в качестве моего ответа. - person Nancy Xiong; 17.04.2019