2017.5更新:本文根据最新版Azure修改,方法仍然管用,但是目前更好用的方法是使用http://www.softether.org/ 的VPN,Azure也能搭,然而为了不被喝茶,我无奈不能在博客上公开他的使用方法,大家可以按照官网文档自己探索。

注意,本文的方法不适用于国内世纪互联运营的Azure,首先,国内Azure的网络也是在那个啥之后的,本身就不能访问Google什么的,而且,如果你试图在国内Azure上搞VPN,会接到喝茶电话的,不要问我怎么知道的……

一、服务器设置

1. 创建虚拟机

我选择Windows Server 2016,Size 建议选1.75G内存以上的机器,比如A1 Standard

 

Network security group设置里一定要打开TCP 443端口

 

创建完成之后,一定要分配一个DNS name进去

 

2. 安装VPN服务端

现在,远程桌面进去,在自动弹出的“Server Management”里面点击“Add roles and features

 一路Next到“Server Roles”,然后勾选Remote Access

 

再一路Next到“Role Services”,选择"DirectAccess and VPN(RAS)"、"Routing"。

 

安装完成后,选择“Open the Getting Started Wizard

 

在弹出的向导中选择最后一项:Deploy VPN Only

 

然后在本机名称(edivpn)上点击右键,选择“Configure and Enable Routing and Remote Access

 

在弹出的向导中选择“Custom configuration

 

然后把“VPN access”和“NAT”选上,一路next到底。

 

最后向导会提示你需要启动服务,点击“Start service

 

3. 配置证书

接下来我们需要配置一个VPN使用的安全证书。

工具:Internet Information Services (IIS) 6.0 Resource Kit Tools,到这里下载:http://www.microsoft.com/en-us/download/details.aspx?id=17275

安装完成后以管理员身份运行

然后运行这条命令生成SSL证书:

selfssl.exe /N:cn=你的虚拟机DNS地址 /V:3650

3650的意思是有效期为10年。选择Y确认,不要在意那个“Error opening metabase”的错误。

 

然后运行“mmc”,点击File, Add/Remove Snap-in

 

选择Certificates,点击Add,然后选择Computer account,选择Local computer,点击Finish

 

Certificates, Personal, Certificates下面找到刚才用selfssl创建的证书

在证书上点击右键,All Tasks,选择Export

 

一路Next,在private key的一部里选择“Yes,export the private key

 

然后设置个密码保护证书

 

最后给整数取个有意义的名字然后保存下来。然后也拷贝一份到你本地机器上。

 

现在回到Routing and Remote Access的窗口。右击你的机器名,打开Properties对话框。

 

Security标签页下方,选择刚才用selfssl创建的证书

 

然后再IPv4标签页里,选择“Static address pool”,并根据自己需分配一个地址段给你的VPN客户端使用。

 点击OK退出对话框。这时候会要你重启服务,点击Yes重启。

 

然后展开IPv4节点,在NAT下面右键,选择New Interface...

 

这里选择你VM的外部连接,也就是互联网连接。

这个连接每次VM重启都会变,所以每次重启VPN服务器后都要重新设置一下。不然你的VPN虽然能连上但不能上网!!!

 

选择"Public interface connected to the Internet",勾选"Enable NAT on this interface"

 

4. 设置账号

完成设置后,我们还需要创建VPN账户。运行lusrmgr.msc打开用户账户管理。

Users下面建立你的VPN账号。千万不要选择“User must change password at next logon”

 

账户创建完成后无需加入管理员组。但需要在账户属性的Dial-in标签页里面选择“Allow access

 

至此,服务器上的设置全部完成。

 

二、客户端设置

 

双击安装刚才拷贝到你本机的安全证书,在导入向导里选择“本地计算机

证书储存里面选择“受信任的根证书颁发机构

 

导入完成后,在网络与共享中心里新建一个VPN连接。

 

VPN服务器的地址一定要用azure虚拟机的DNS名,不要绑定自己的域名不然肯定会爆。

 

 

在适配器设置里找到你的vpn连接,在安全选项卡里选择SSTP需要加密允许使用这些协议Microsoft CHAP

 

现在你就可以使用VPN了。输入你刚才在服务器上创建的账号密码连接到你的VPN虚拟机。

 

最后总结一下要注意的地方:

1. Extra Small的VM是免费的,但不要直接建立这种VM,先建个small,再改成extra small(注意重启后重新配置NAT)

2. 如果你是用现有的VM搞VPN,注意在Azure的防火墙设置里打开TCP 443端口

3. Azure VM的位置随意,即使在East Asia也是可以的。但你的Azure一定要是Global版的,国内世纪互联的那个是不可以的。

 

参考文档:这里