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

#azure #powershell #rdp #azure-vm-scale-set #azure-rm

#azure #powershell #rdp #azure-vm-scale-set #azure-rm

Вопрос:

Я следовал шаблонам быстрого запуска Microsoft для создания масштабируемой виртуальной машины с виртуальными машинами Windows, как описано здесь: https://learn.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 ВКЛЮЧЕН для виртуальной машины и что сетевой маршрут на стороне Azure (созданный в PS pasted blow) правильный? Другие сталкиваются с такой же трудностью? Если да, то как мы выполняем 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.

Ответ №1:

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

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

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

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

Комментарии:

1.Происходит что-то еще; по-прежнему ничего не работает. Чтобы убедиться, что я ничего не перепутал, я запустил эти команды 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 всплывающее окно. Я также пробовал это со своего домашнего компьютера в обычной домашней сети (не работает VPN). Тот же результат.

2. Приведенный выше вывод неправильного порта для сопоставления 3389 на моей стороне. Это не то, InboundNatPools что вы могли бы использовать $rdp=$ip.IpAddress ':' $lb.InboundNatRules[0].FrontendPort . Вы также могли бы использовать Get-AzLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort для проверки карты всех входящих портов nat.

3. Похоже, что приведенные выше команды не создают NetworkSecurityGroup, а это то, что необходимо. Я отправлю ответ, когда получу подтверждение.

4. В вашем первоначальном вопросе вы не упомянули, что хотите создать NSG, также об ошибке RDP, вы пытаетесь подключиться к неправильному порту nat. Вы можете рассмотреть возможность принятия этого ответа? Если вы хотите добавить NSG, связанный с подсетью VMSS, вам необходимо открыть порт 3389 в правиле входящих.

5. Оказывается, что для RDP вам нужна NetworkSecurityGroup (NSG). Я не хотел обязательно создавать NSG, но обнаружил, что это требуется для включения RDP в созданные виртуальные машины. Спасибо за вашу помощь. Командлет в документе не будет работать, как описано — для доступа по протоколу RDP. Несмотря на то, что в документации указано, что NSG создан, это не так. Вы должны создать его самостоятельно. Когда вы создаете NSG, RDP работает должным образом.