使用Azure快速搭建SS服务器

先聊两句

感谢土豪的微软爸爸,前一阵刚拿到了 MSDN 的订阅,发现其中包含了国际版 Azure 的订阅,不能浪费,决定来搭建一个 ss 服务器,方便自己查论文搜代码。这是一篇入门版本的教程,有关 SS 的原理或者更多使用方法,我在后面可能会有更新。

关于 ss ,这里就不多说了。我对 Python 环境比较熟悉,在这里就使用 Python 版本的 SS 作为示例。顺便说一下,因为截图用处不大,所以我会尽量用文字说清楚每一步,有问题欢迎在文章下面留言讨论。

创建 Azure 虚拟机环境

首先登录 Azure 的 Protal(注意是国际版的,国内版的类似,这里不做介绍):https://portal.azure.com

接着使用激活了 MSDN 订阅的微软账户登录,然后就可以看见控制面板了。

接着点击控制面板中的“新建”按钮,之后选择虚拟机。可以弹出一个虚拟机列表,因为我很熟悉 CentOS,所以我点击查看全部,然后在应用商店中搜索 CentOS,选择了“CentOS-based7.2”,在后面弹出的介绍卡片中选择“创建”,(部署类型选择默认的资源管理器即可)。

不出意外的话,现在会弹出创建虚拟机的选项卡。基本配置中填写名称(虚拟机的名字,随便起一个就行),用户名(用于远程登录的用户名,自己起一个,需要记住),验证类型为了方便选择密码就行,密码(用于远程登录,自己起,需要记住),订阅选择 Visual Studio Enterprise(如果有其他可用订阅也可以选择),以前没有建立过资源组的话就新建一个吧(照例名字随便起就可以),最后的位置看心情吧(我也没有测试过到底哪里更快,反正都不在国内可以随便选择,我选择了美国西部),点击确定继续。

接着进入第二步,选择虚拟机大小,本着省钱的目的(ss 服务器也用不了多少资源的),选择 A1 就可以啦,然后放心进入第三步。

第三步里配置比较麻烦,下面一一叙述。 磁盘类型,选择标准(A1 也不让用 SSD)。

公共 IP 地址,在新的卡片里点击新建,创建的时候起一个名字,注意将分配选择静态就好,然后确定。

网络安全组,为了方便我们先允许所有的网络通信,等搭建完毕之后可以再行修改。点击创建网络安全组卡片里的添加入站规则,新的卡片中,先自己起一个名称,优先级填写 100(具体规则可以点击小感叹号图标查看),将目标端口改为,剩下的设置不做改动,点击确定。再点击创建网络安全组卡片里的添加出站规则,新的卡片中,先起一个名字,优先级 100,再将目标端口范围改成,点击确定即可。然后在创建网络安全组卡片中点击确定。

现在回到设置卡片中,将其余选项保持默认,点击确定。

进入第四步,点击确定即可。然后系统将会开始创建环境(需要等十分钟左右,具体进度可以点击页面右上角的铃铛图标查看)。

创建完成以后,在 portal 的左栏中选择虚拟机(没有的话点左栏最下面的浏览找一下),选择刚刚创建的虚拟机(显示的就是刚刚起的名字),记下概要中显示的公共 IP 地址。

远程连接虚拟机

Windows 下推荐使用 SecurCRT 连接,这里使用 SecureCRT 为例,如果图方便的话也可以使用 Putty,使用方法类似。其余系统可以通过命令行连接。

打开 SecureCRT,按 Alt+Q 打开快速连接,Protocal 选择 SSH2,Hostname 填写刚刚记录下的公共 IP 地址,Port 选择 22,Firewall 选择 None,Username 输入创建虚拟机时候第一步自己起的用户名,其余设置保持默认,点击 Connect。不出意外的话会弹出对话框让你输入密码,这里的密码也是第一步创建虚拟机时候自己输入的密码,点击 ok 即可(可以选择 Save password 复选框记住密码)。现在就已经连接到刚刚在啊 azure 上面创建的服务器了。

搭建 SS 服务器

SS 的 github 地址:https://github.com/shadowsocks/shadowsocks

进入之后可能会发现啥都没有,别着急,在 branch 里面选择 master,就可以看见所有的代码了。接下来按照 readme.md 里面的说明安装 SS,注意执行一些命令时候需要使用 sudo 提升权限(可能需要输入密码)。如果执行命令出错很可能是没有使用 sudo 提权运行。

先安装 python 的包安装工具 pip

1
2
sudo yum install python-setuptools
sudo easy_install pip

再安装 SS

1
sudo pip install shadowsocks

让 SS 在后台运行起来

1
sudo ssserver -p 443 -k password -m aes-256-cfb --user nobody -d start

命令中的-p 后的字段是服务的端口号,可以自定义,-k 后面的字段是密码,可以自定义,剩下的不需要改动。 后台运行之后可以使用 ps -aux 命令查看是否运行成功。

SS 开机自启动

1
sudo vim /etc/rc.local

打开文件以后在 exit 0 之前键入

1
sh /usr/bin/python /usr/local/bin/ssserver -p 443 -k password -m aes-256-cfb --user nobody -d start

然后按 esc 输入:wq 保存退出,给 rc.local 可执行权限

1
sudo chmod +x /etc/rc.local

这样,在下次开启的时候,SS 就会开机自启动了。

使用 Windows 的 SS 客户端连接搭建好的 SS 服务器

github 地址:https://github.com/shadowsocks/shadowsocks-windows

下载地址:https://github.com/shadowsocks/shadowsocks-windows/releases/download/3.0/Shadowsocks-3.0.zip(最新版本为 3.0,如果有新版可以在https://github.com/shadowsocks/shadowsocks-windows/releases页面中下载)

其他系统的客户端可以在https://github.com/shadowsocks中自行查找下载。

下载客户端之后运行,Server IP 输入 Azure 虚拟机的 IP,Server Port 输入刚刚后台运行 SS 时候键入的端口号(比如 443),Password 输入刚刚后台运行 SS 时输入的密码字段,Encryption 选择 aes-256-cfb,然后点击左边一栏的 Add,再点击 OK,不出意外的话 SS 客户端已经启动成功了。

接下来就是配置浏览器代理了,按按照上面配置好 shadowsocks 客户端后,点击 OK 后会最小化到任务栏托盘,此时,右击托盘图标,指向 Server,确保勾选的是 PAC 模式(如果是 Global 的话是全局模式 PAC 则是 GFWList 智能模式),然后点击菜单最上面的启用后即可。IE 的代理配置会被自动配置好。如果要取消代理,再次点击“启用”即可,此时程序会自动修改系统代理配置,然后就可以通过浏览器自动代理了(确保浏览器的代理设置为“系统代理配置”)。如果您装有 360 等国产流氓软件,请确保把 shadowsocks 添加进白名单,不要阻拦其修改网络配置,最好直接将这类软件卸载,换成更加给力的国外软件。

不过我更喜欢浏览器配置代理模式。

firefox 上推荐使用插件 foxyproxy,具体教程百度上面有很多,可以自行搜索。只是注意 GFWList 的地址已经换成了https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt,以前的地址已经失效。

chrome 上也可以用 foxyproxy 插件,配置方法和 firefox 类似,也可以使用 Proxy SwitchySharp 插件,具体配置方法可以自行搜索。

最后填一个坑,配置网络安全组的时候不过滤端口可能会有一些风险,可以根据自己 SS 配置的端口号适当过滤端口号(但是要保证 SSH 的 22 端口可用)。