我手上有一台用来搭梯子的Azure服务器,IP经常被墙,有时候又没办法找个电脑登录portal重启机器,所以就想直接用Azure-cli完成。

安装Azure-CLI

先参照这个教程安装好Azure-cli:如何安装 Azure CLI

我是装在另一台Debian的服务器上了,所以直接看的这个:在 Ubuntu/Debian 上使用 apt 进行安装

安装结束后,在命令行输入az,有输出的话就说明安装成功了。

登录Azure-CLI

在命令行输入az login

会有类似的输出:

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code FG9R9VQU2 to authenticate.

就按照提示所说的,把这个链接(https://microsoft.com/devicelogin)复制到随便哪一台电脑的浏览器打开,再输入验证码(FG9R9VQU2)就可以登录了。

使用Azure-CLI

登录portal:https://portal.azure.com

点进你的虚拟机资源,然后点击CLI/PS

这里会有常用的语法,以及写好的命令,直接拷贝下来就可以执行了

我想要重新给机器分配ip的话,只需要依次在命令行执行:

  1. az vm deallocate
  2. az vm start

即可。

你也可以写一个稍微复杂点的判断程序,在ip不通的时候直接自动获取新ip,类似这样:

from os import system

def ip_blocked():
  if *** :
    return 1
  else:
    return 0

def reallocate():
  deallocate = 'az vm deallocate --resource-group ***** --name ***** --subscription *****'
  start = 'az vm start --resource-group ***** --name ***** --subscription *****'
  show_ip = 'az vm list-ip-addresses --resource-group ***** --name ***** --subscription *****'
  system(deallocate)
  system(start)
  system(show_ip)

if __name__ == '__main__': 
    if ip_blocked() == 1:
        reallocate()

再写个什么定时任务过几个小时执行一下就行了。

不过我倒是每次发现被墙才手动执行一下的。

python reallocate.py