配置Ubuntu ufw后无法登录Azure VM实例 如何不丢失数据恢复访问?
解决方案
你是因为启用ufw前没有提前放通22号SSH端口,导致防火墙拦截了SSH连接请求,可通过以下几种Azure平台原生功能恢复访问,全程不会销毁实例数据:
方法1:使用Azure门户运行命令(操作最简)
- 登录Azure门户,定位到目标VM实例的管理页
- 在左侧导航栏「操作」分类下选择「运行命令」,再选择
RunShellScript选项 - 在脚本输入框中输入以下命令:
sudo ufw allow 22/tcp sudo ufw reload
- 点击「运行」等待命令执行完成(通常1分钟以内),即可重新通过SSH连接实例
方法2:使用串行控制台
- 在VM管理页左侧「支持 + 故障排除」分类下选择「串行控制台」
- 等待控制台加载完成后,输入VM的用户名和密码登录(如果此前仅配置SSH密钥未设置密码,可先通过左侧「支持 + 故障排除」下的「重置密码」功能设置登录密码,该操作不会影响实例内数据)
- 登录后执行
ufw allow ssh命令放通SSH端口,执行ufw status确认规则生效即可
方法3:使用自定义脚本扩展
- 在VM管理页左侧「设置」分类下选择「扩展 + 应用」,点击「添加」
- 选择「自定义脚本扩展」,点击「下一步」
- 直接在脚本内容框粘贴以下内容:
#!/bin/bash ufw allow 22/tcp ufw reload
- 点击「创建」等待扩展执行完成,即可恢复SSH访问
后续注意事项
- 后续调整ufw规则时,务必先执行
ufw allow ssh放通SSH端口,再执行ufw enable启用防火墙 - 如果你的Flask应用需要对外开放HTTP/HTTPS访问,可额外执行
ufw allow 80/tcp、ufw allow 443/tcp放通对应端口
内容的提问来源于stack exchange,提问作者Seng Wee
相关产品推荐
相关产品推荐

