Eu tenho uma caixa 6.x do Debian que eu precisava mover para o Azure. Antes de subir, verifiquei se o SSH está escutando em qualquer porta, assim como o Apache. Meu NSG tem todas as portas certas abertas (22, 443 por enquanto). Carreguei o VHD e usei os seguintes comandos do PowerShell para criar a VM com base no VHD:
$vnet = get-AzureRmVirtualNetwork -Name $VnetName -ResourceGroupName $VnetRG
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "$SubnetName" -VirtualNetwork $vnet
$pip = Get-AzureRmPublicIpAddress -Name "$pipName" -ResourceGroupName $resourceGroupName
$NSG = Get-AzureRmNetworkSecurityGroup -Name "$NSGName" -ResourceGroupName $resourceGroupName
$nic = New-AzureRmNetworkInterface -ResourceGroupName $resourceGroupName -Name $nicName -Subnet $subnet -Location $location -PrivateIpAddress $newVMIP -DnsServer $dnsServer1,$dnsServer2 -PublicIpAddress $pip -NetworkSecurityGroup $NSG
$newVM = New-AzureRmVMConfig -VMName $newVMName -VMSize $newVMSize | Add-AzureRmVMNetworkInterface -Id $nic.Id | Set-AzureRmVMOSDisk -VhdUri $vhdPath -Name $diskname -CreateOption attach -Linux -Caching ReadWrite
New-AzureRMVM -ResourceGroupName $resourceGroupName -Location $location -VM $newVM -DisableBginfoExtension
Posso ver que a máquina está funcionando, pois posso ver a área de trabalho de login automático no diagnóstico de inicialização. No entanto, quando tento SSH ou quando tento acessar o site com mais de 22 e 443, ele não está retornando nenhuma resposta. O Telnet expira e está agindo como se a porta não estivesse sendo encaminhada.
Eu entendo que porque é o Debian 6.x, o waagent não é suportado. Mas eu não precisaria de waagent para encaminhamento de porta, deveria? Pelo que entendi sobre rede e pelo que vejo nos fóruns do MSDN, "O encaminhamento de porta deve ser invisível para sua máquina final. À medida que o público atinge a porta pública e sua VM recebe na porta interna." (https: //social.msdn.microsoft.com/Forums/en-US/bd93f5cb-a674-4b9c-aa5a-9f6e7b364f2c/port-forwarding-still-broken?forum=WAVirtualMachinesforWindows)
Identifiquei errado ou perdi algo no meu script do PowerShell? Alguma ideia?
Eu tentei excluir e recriar a VM e tentei fazer o upload novamente do arquivo VHD. Eu tive que convertê-lo de VHDX para VHD, mas isso não deve importar, já que ele está realmente inicializando e vejo a tela em diags de inicialização.
O NSG que eu usei funciona para qualquer outra máquina recém-criada via portal ou PowerShell, mas não essa máquina carregada, o que me faz pensar que eu anulei algo no script. Tudo mostra que ele está aberto para as portas 22 e 443. Aqui está uma captura de tela do blade Effective Security Rules:
captura de tela das regras
Os iptables na máquina local estão vazios, como mostrado em esta captura de tela .
O que é estranho é que não consigo SSH para ele de outra máquina na mesma rede virtual também. Eu tentei passar pelas etapas em https: //docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-linux-debian-create-upload-vhd?toc=%2Fazure%2Fvirtual-machines% 2Flinux% 2Ftoc.json, mas como é o Debian 6, o waagent não será instalado. Mas, novamente, não precisaria de um agente na máquina para o encaminhamento de portas para o trabalho. Nenhuma outra tecnologia de virtualização requer um agente para o NAT funcionar.
Editar - isso foi sugerido como uma duplicata do StackOverflow. Eu originalmente fiz a pergunta lá, mas todos sugeriram que eu postasse minha pergunta aqui. Então fiz isso, marcando a resposta do StackOverflow como resposta.