科学上网Shadowsocks

2015-08-16

说在前面的话

  • 首先要说的是这应该是目前性价比最高的科学上网的方式,AWS免费一年,到期后,再去买VPS来搭建shadowsocks,也是一个道理,关键是比购买vpn或shadowsocks账户划算的多
  • 这篇教程中的步骤是有一定时效性的,有些步骤可能随着AWS升级,相关软件升级等等会变得不太一样,这时候需要灵活应变;
  • 这是一篇非常啰嗦的教程,特别是申请AWS的步骤,写这么细主要是想把整个过程还原出来
  • 如果因为哪些步骤被卡住无法进行下去,均可在留言中说明,我会尽可能解答并更新到文中

服务端配置

申请AWS

  1. 打开 AWS官网
    A
  2. 输入邮箱,选择新用户,点击 登录
    A
  3. 填写注册信息,点击 创建账户
    A
  4. 填写信用卡信息,点击 继续
    A
  5. 填写手机号码,点击 立即呼叫我
    A
    几十秒后就会有一个电话打来,等电话里的妹子说完话,输入PIN码
    A
    输完后,妹子又说几句话就挂了电话,这时身份验证已经完成,点击 继续 选择支持方案
    A
  6. 选择方案,默认选基本,点击 继续
    A
  7. 这时账户创建成功,点击 启动管理控制台
    A

新建EC2

  1. 进入AWS主页,选择第一个:EC2
    A
  2. 进入EC2控制台,选择右上角弗吉尼亚北部,弹出下拉菜单,推荐选择 亚太地区(东京)

这里啰嗦一下为什么最好选择东京的节点,因为各个地区的互联网链接依靠的海底电缆进行连接的,日本是沿海国家,而且网络发达,和各个地区都有直连的电缆,虽然我们访问大多网站都是在美国,但是访问网站时速度的瓶颈大多都是从我们的代理服务器到客户端这一段,所以还是选择这段选择近一点的地方时比较好的,有人会说那为什么不选择新加坡,或者澳大利亚,东南亚那一块的电缆布局很混乱,我本人测试后感觉速度确实不行,而澳大利亚到中国存在运营商问题,比如电信的网络就需要到美国中转,所以实测速度也不行。。。。。说了这么多,其实这些并不是绝对的,如果你懒,选择日本没错,如果你很闲,可以一个个的试,没关系,

EC2控制台刷新后,点击 启动实例
A

  1. 选择 符合条件的免费套ubuntu
    A
  2. 默认的选择第一个即可, 点击 审核和启动
    A
  3. 点击 启动,
    A
  4. 创建新密钥对,输入名称,点击下载密钥对(一个*.pem文件),保存到电脑上,点击 启动实例
    A
  5. 这样就创建好一个在东京的服务器节点,点击查看实例
    A
    这个时候AWS开始初始化的你的服务器节点,大概需要一两分钟

连接远程服务器

  • 如果是windows,参考官方教程使用putty连接远程服务器
  • 如果是mac,
    首先,找到刚刚保存的*.pem文件,比如文件名叫amazon.pem,确认文件路径,
    打开终端,进到amazon.pem文件所在目录,
    执行chmod 400 amazon.pem 修改文件权限
    执行ssh -i amazon.pem ubuntu@你的服务器节点ip即可连接上远程服务器
    A

安装shadowsocks依赖

  1. sudo -s // 获取超级管理员权限
  2. apt-get update // 更新apt-get
  3. apt-get install python-pip // 安装python包管理工具pip
  4. pip install shadowsocks // 安装shadowsocks

配置shadowsocks

vi /etc/shadowsocks.json

(ps. 可能有人不会用vi,这里简单说下,vi打开文件后,按i即可进入编辑状态,编辑完后,按esc退出编辑状态,按:进入命令状态,输入wq即可保存并退出,还不懂的话自行百度vi吧)

  1. 单一端口配置:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    "server":"0.0.0.0",
    "server_port":8388,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"cai123",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":false
    }
  2. 多端口配置:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    "server":"0.0.0.0",
    "port_password": {
    "端口1": "连接密码1",
    "端口2" : "连接密码2"
    },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
    }
    配置完成后启动shadowsocks
    ssserver -c /etc/shadowsocks.json -d start

###开启AWS入站端口(重要!!)
配置好shaodowsocks后,还需要将配置中的端口打开,这样客户端的服务才能链接得上EC2中的shadowsocks服务
首先打开正在运行的实例,向右滚动表格,
A
看到最后一项,安全组,点击进入
A
点击操作,编辑入站规则
A
默认是开启了一个22端口(这是给ssh访问的),再建一个如下图红框标示的端口,我的shadowsocks配置的端口是8388,所以这里就开启8388,
A

订单监控(非必须)

  • AWS提供的服务是每个月15G流量,目前我不知道有什么方法可以监控每个月流量使用的情况,但是可以通过设置订单监控来提醒我是否有超过免费使用的额度,即每当我的账号费用超过$0,那amazon就会发邮件提醒我
  1. 点击右上角的用户名 -> 我的账户,然后点击左边首选项即可打开以下页面
    勾选接收账单报警,点击 保存首选项
    A
  2. 点击左上方服务,点击 账单
    A
  3. 点击 设置第一个账单警报
    A
  4. 点击 创建账单警报
    A
  5. 第一个项填写0即可,第二项填写你能接收到邮件的邮箱地址,点击 创建警报
    A
  6. 这时会弹出这个页面,这个时候登录邮箱,打开Amazon发来的邮件(有可能在垃圾邮件里),点击邮件里的链接确认即可
    A
  7. 登录邮箱确认后,会变成这样,点击查看报警,
    A
    这样就完成了订单监控
    A
    至此,服务端的要做的事情就全部完成了。

客户端配置

  • 其实这里已经开始离题了,但是为了给第一次用的童鞋最直接的方便,还是啰嗦一下,已经能科学的上网的童鞋不用看了

下载客户端

进入shadowsocks客户端下载页
可以在这里选择对应平台的客户端
一般来说
mac 选择
windows 选择
ios 直接去AppStore里搜 shadowsocks
android 去google play下???23333333
算了,还是给个网盘吧,包括mac和windows的客户端都在里面了
链接: http://pan.baidu.com/s/1hqgwO5I 密码: m5yb

配置

这里以mac为例,无论哪个平台要填的东西就这三个东西

  • 地址:服务器实例的外网ip
  • 密码:shadowsocks配置的密码
  • 加密:aes-256-cfb
    A

点击确定保存配置后,点击 打开Shadowsocks 即可。
默认是选择 自动代理模式 ,这个模式下,GWF白名单的站点不会通过代理访问,
如果出现一些访问不了的情况,那就改成 全局模式
当然也可以通过chrome插件Proxy SwitchyOmega实现chrome浏览器的局部代理,
配置也非常简单,如下图
A
这个端口是客户端服务的端口,保持1080即可,不用改,
要说明的一点是当客户端的客户端打开后,本地的服务就跑起来了,这个时候,客户端的状态是关闭的情况下,chrome才能实现局部代理,因为客户端选项中的开启和关闭只是代理的开启和关闭,chrome实现局部代理相当是把代理的开关交给SwitchyOmega完成。