2015年3月9日星期一

利用AWS科学上网

Amazon AWS给予新申请帐号一年的免费试用期,
免费月流量额度足够科学上网。

一、申请amazon AWS账号
二、创建云主机(推荐ubuntu 14)
三、通过命令行安装并配置shadowsocks


一、申请AWS账号
参考下面网页教程,虽然比较老,但是大致流程是一样的。
http://blog.csdn.net/awschina/article/details/17149515


二、创建云主机
参考网页教程
http://sunny-play.com/2012/03/get-started-with-ec2/
http://blog.csdn.net/williamvalentine/article/details/17306895

注意以下几点:
1、Region推荐Tokyo,国内连接速度较快(update2016-09:US West (N. California)还是快一些
2、虚拟机要选带星号的,属于免费套餐。推荐ubuntu14
3、保存好下载的.pem文件,以后连接虚拟机就靠这个文件了。
4、创建后,注意检查Network & Security下面的Security Groups,将Inbound和Outbound配置都改为:All traffic, All, All, 0.0.0.0/0
5、可以为虚拟机分配一个静态IP,在Network & Security下面的Elastic IPs,创建后Associate到新建的虚拟机上。

三、安装并配置shadowsocks
需要用到的工具:linux或mac的命令行工具
windows需要使用putty


shandowsocks有许多版本,最早为python,后来发展出了各种编程语言版本。
目前推荐的是libev版本,纯C语言编写,内存控制优秀,运行稳定,低端服务器也有很好的表现.

开发页面
https://github.com/shadowsocks/shadowsocks-libev

安装方法:
Debian & Ubuntu
编辑 /etc/apt/sources.list文件,
添加如下两行,shadowsocks的源
# Debian Wheezy, Ubuntu 12.04 or any distribution with libssl > 1.0.1
deb http://shadowsocks.org/debian wheezy main


然后安装shadowsocks
sudo apt-get update
sudo apt-get install shadowsocks-libev


创建配置文件:
sudo mkdir /etc/shadowsocks
cd /etc/shadowsocks
sudo vim shadowsocksMyConfig.json

内容如下(主要配置三项:服务器端口、密码及加密方式,推荐aes-256-cfb)
{
    "server":"0.0.0.0",
    "server_port":1080,
    "password":"mypassword",
    "timeout":100,
    "method":"aes-256-cfb",
}


启动shadowsocks
sudo ss-server -c /etc/shadowsocks/shadowsocksMyConfig.json
至此,shadowsocks已配置完毕,可以使用了。




可以使用supervisor工具让shadowsocks在后台运行,
不必手动启动shadowsocks服务,而且进程出错以后会自动重启shadowsocks服务。

首先安装supervisor
sudo apt-get install supervisor

然后创建supervisor对shadowsocks的配置文件
cd /etc/supervisor/conf.d/
sudo vi shadowsocks.conf

配置文件内容
[program:shadowsocks]
command=ss-server -c /etc/shadowsocks/shadowsocksMyConfig.json
autorestart=true
user=nobody

若需要shadowsocks以小于1024的端口启动,上述最后一行必须使用user=root

下面运行supervisor,
sudo service supervisor start
sudo supervisorctl reload
如果第一条命令不能执行可尝试将服务名由supervisor改为supervisord。

如果需要查看运行状态和log文件可以使用如下的命令
sudo supervisorctl status
sudo supervisorctl tail -f shadowsocks stderr



其它就是一些虚拟主机的优化了
AWS虚拟机时间长了内存占用就高了,
可以配置crontab定时重启,具体方法网上很多。
(update201609:推荐的一个优化是升级到3.5以上内核,可将速度从500K/s提高到1500K/s)