AWS配置shadowsocks和node.js

听说AWS绑定信用卡免费使用一年,屁颠屁颠跑去开了个账户,折腾了半天,搞了个shadowsocks代理(不懂是什么?google一下你就知道了,对了,有了它你就能google了),装了个node.js,这里简要说说。

申请AWS

首先是注册账户并绑定信用卡,这个不需要我多说了,打开AWS官网,按照操作提示进行即可,绑定信用卡会有一个电话打来,让你打开键盘输入网页上显示的PIN码,绑定成功后选择支持方案为“基本(免费)”,即创建成功。

创建和配置EC2

(网上看到一篇类似的配置文章可作为参考:http://www.cnblogs.com/gyouxu/p/3617906.html

进入AWS选择第一个:EC2,即云中的虚拟服务器,进入控制台选择地区,然后点击“启动实例”,之后要选择一个系统映像(AMI),我选择的是第一个“Amazon Linux AMI (HVM)”,大部分的Linux操作系统在Amazon EC2中是可以免费使用的,但是不包括SuSe Linux Enterprise Server 和 Red Hat Enterprise Linux (RHEL),然后根据提示都选择默认的下一步,存储好像是限制30G,我填的10G,其他都没变,流量和存储超出限额的话是会计费的,到时候会在信用卡上扣费。最后点击“启动”,需要创建密钥对,输入名称、密码,点击下载密钥对(一个*.pem文件),保存到电脑上,ssh连接的时候需要用到。

注意EC2控制面板有个弹性IP(Elastic IP)如果申请了Elastic IP而没有与任何Instance绑定的话,每小时会收1美分,如果已经与某一Instance绑定则不会收费,所以没有用到的时候千万不要申请,避免被无辜扣费。

详细问题可查看:AWS FAQ

连接EC2服务器

下载.pem文件后会提示一个连接远程服务器的命令,在你的shell终端里执行这个命令(注意:.pem文件要在终端运行当前目录下,且权限为“400”才可以成功连接):

1
2
3
4
# 首先,找到刚刚保存的*.pem文件,比如文件名叫amazon.pem,确认文件路径,
# 打开终端,进到*.pem文件所在目录,
# 执行chmod 400 *.pem 修改文件权限
ssh -i "pem文件名.pem" 服务器用户账号名@你的服务器节点和ip信息

上传文件:

1
scp -i pem文件.pem 上传的文件 服务器用户账号名@你的服务器节点和ip信息:/home/ec2-user/接收文件路径

安装配置shadowsocks

注:以下安装配置都是针对Amazon Linux AMI,也即CentOS Linux系统的,其他系统安装配置方法会有所不同。

安装shadowsocks

首先我们需要安装python包管理工具,绕个弯然后用pip安装shadowsocks:

1
2
3
$ sudo yum install python-setuptools #安装python包管理工具pip
$ sudo easy_install pip
$ sudo pip install shadowsocks

配置shadowsocks

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

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo vi /etc/shadowsocks.json
#在文件里输入如下内容,其中端口和连接秘密自己填写,连接时用到
{
"server":"0.0.0.0",
"server_port":端口,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"连接密码",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false
}

运行shadowsocks

安装配置好shadowsocks后,便可以运行了:

1
$ ssserver -c /etc/shadowsocks.json -d start #启动shadowsocks

AWS配置入站端口

配置好shaodowsocks后,还需要将配置中的端口打开,这样客户端的服务才能链接得上EC2中的shadowsocks服务,
首先打开正在运行的实例,向右滚动表格,记录下公有IP
公有IP
然后到最后一项安全组,点击进入编辑入站规则
安全组
选择编辑
认是开启了一个22端口(这是给ssh访问的),再建一个如下图红框标示的端口,我的shadowsocks配置的端口是1080,所以这里就开启1080,填入你上面配置的端口,因为下文需要安装node作为http服务器,也顺便开了个80端口:
入站规则

shadowsocks客户端配置

进入下载页,选择对应平台的客户端下载。

打开客户端,配置要填的东西就这三个东西:

  • 地址:服务器实例的外网ip,端口
  • 密码:shadowsocks配置的密码
  • 加密:aes-256-cfb
    shadowsocks客户端配置

默认是选择自动代理模式,这个模式下,GWF白名单的站点不会通过代理访问,当然也可以通过chrome插件Proxy SwitchyOmega实现chrome浏览器的局部代理,配置也非常简单,如下图:
SwitchyOmega配置

安装配置node.js

下载安装

在个人目录下新建一个packages文件夹用来存放安装包,然后下载node.js并解压:

1
2
3
$ mkdir packages & cd packages/
$ wget http://nodejs.org/dist/v6.9.4/node-v6.9.4.tar.gz #版本号可替换成你当前最新的node版本
$ tar -zxvf node-v6.9.4.tar.gz

解压好了需要编译安装node,这里需要用到gcc-c++,如果没有的话就需要安装:

1
2
$ sudo yum update #先更新yum
$ sudo yum install gcc-c++ make

编译安装node,编译过程较久,请耐心等待:

1
2
3
4
$ cd node-v6.9.4 #进入解压后的文件夹
$ ./configure --prefix=/usr/local/node #配置安装路径
$ make #编译,时间较长
$ sudo make install #完成安装

配置环境

安装完成了,这时候执行node -v是找不到命令的,node安装在/usr/local/node/下,因为node的安装路径还不在环境变量中,下面来配置node运行的环境变量:

1
$ sudo vi /etc/profile

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL这一行前面添加两行:

1
2
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH

然后输入命令source /etc/pro来使编辑立即生效,这时输入node -v发现已成功配置:

1
2
$ node -v
v6.9.4

最后,运行node作为http服务器的话要开启端口,就是编辑上面的AWS实例的安全组,添加入站规则允许80端口就好了。