You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从互联网通过私有IP地址SSH连接Azure Ubuntu虚拟机

解决无公网IP Azure Ubuntu虚拟机的SSH连接问题

先给你说清楚为啥之前的操作都失败了:

  • Azure Cloud Shell超时:Cloud Shell其实是跑在Azure的一个独立容器里,这个容器默认不在你的虚拟机所在的虚拟网络(VNet)里,没有路由能到达你的虚拟机私有IP,所以连不上很正常。
  • 家里笔记本直接SSH:你的本地局域网和Azure的VNet是完全隔离的,笔记本会在自己的局域网里找10.x.x.x,肯定找不到,超时是必然的。

下面给你几个靠谱的解决方案,按易用性排序:

方案1:用Azure Bastion(最推荐,不用折腾本地设备)

Azure Bastion是官方的堡垒机服务,部署好之后不用给虚拟机开公网IP,就能安全通过私有IP访问。步骤很简单:

  1. 登Azure门户,找到你的虚拟机所在的虚拟网络(VNet)
  2. 在VNet的页面左侧菜单里找「Bastion」,点「创建Bastion」
    • 注意:Bastion必须部署在你虚拟机所在的VNet里,而且需要一个专用子网(默认叫AzureBastionSubnet,子网大小至少得是/27)
  3. 等Bastion部署完成,回到你的虚拟机页面,点「连接」→「Bastion」
  4. 输入虚拟机的用户名和密码(或者你的SSH密钥),就能直接在浏览器里打开SSH会话了
    • 如果想用本地的SSH客户端连接,也可以用这条命令(把里面的参数换成你自己的):
      ssh -i ~/.ssh/your_private_key azureuser@10.x.x.x -o ProxyCommand="az network bastion tunnel --name your-bastion-name --resource-group your-resource-group --target-resource-id /subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.Compute/virtualMachines/your-vm-name --port 22"
      

方案2:搭点到站点(P2S)VPN(适合经常要访问VNet里资源的情况)

这个方法相当于把你的家里笔记本加入到Azure的VNet里,和虚拟机处于同一个“虚拟局域网”,之后就能直接SSH私有IP了:

  1. 在Azure门户里,给你的虚拟机所在VNet创建一个VPN网关(注意:VPN网关需要专用子网GatewaySubnet,大小至少/27)
  2. 配置VPN网关的点到站点连接:
    • 选认证方式,比如自签名证书(需要生成根证书和客户端证书,把根证书上传到VPN网关),或者Azure AD认证
  3. 下载VPN客户端配置文件,在你的笔记本上安装并连接VPN
  4. 连接成功后,你的笔记本会拿到一个Azure VNet内的私有IP,这时直接用SSH命令就能连了:
    ssh azureuser@10.x.x.x
    

方案3:用Azure串行控制台(应急用)

如果只是临时要操作虚拟机,不想部署额外服务,可以试试串行控制台:

  1. 登Azure门户,进入你的虚拟机页面,左侧菜单找「支持 + 故障排除」→「串行控制台」
  2. 点「Connect」,输入虚拟机的用户名和密码,就能进入文本控制台了
    • 这个是基于串口的连接,体验不如SSH,但应急足够用

内容的提问来源于stack exchange,提问作者SeaDude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:05:33