使用New-AzVm时遗漏-openports参数,创建VM后能否修改?
AZ-104练习:漏开VM 22端口的快速补救方法
方法1:复用现有资源重建VM
如果VM尚未进行额外配置,这是最直接的方式:
- 删除现有VM,删除时选择保留磁盘、虚拟网络、公共IP等关联资源
- 重新执行
New-AzVm命令,添加-OpenPorts 22参数,同时指定之前保留的资源名称,示例命令:
New-AzVm -ResourceGroupName "你的资源组名" -Name "原VM名称" -Image "原使用的镜像" -OpenPorts 22 -VirtualNetworkName "原虚拟网络名" -SubnetName "原子网名称" -PublicIpAddressName "原公共IP名称"
该命令会复用已有的网络资源,自动配置好22端口的NSG规则,无需手动操作。
方法2:PowerShell一键添加NSG规则
虽然本质还是通过NSG开放端口,但命令行操作比门户手动配置高效很多:
- 获取VM对应的NSG:
$vm = Get-AzVm -ResourceGroupName "你的资源组名" -Name "VM名称" $nsg = Get-AzNetworkSecurityGroup -ResourceId $vm.NetworkProfile.NetworkInterfaces[0].IpConfigurations[0].NetworkSecurityGroup.Id
- 添加允许SSH入站的规则:
$nsg | Add-AzNetworkSecurityRuleConfig -Name "AllowSSH" -Description "允许SSH访问" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 22
- 保存NSG配置:
$nsg | Set-AzNetworkSecurityGroup
执行完成后,22端口立即开放。
注:Azure VM的端口开放本质依赖NSG规则管控流量,不存在脱离NSG的端口开放方式。上述两种方法都是针对新手的快速补救方案,避免繁琐的手动配置。
内容的提问来源于stack exchange,提问作者Monta
相关产品推荐
相关产品推荐

