在AWS上搭建shadowsocks-nodejs环境并搭配obfsproxy使用

本文作者为unclepulp,感谢赐稿

本文服务端为Amazon Linux AMI 2012.09(32bit),客户端为Windows7。

Amazon AWS的注册、EC2的开通(电话验证如不成功,可用Google voice验证)以及实例的启用请参考Amazon AWS 漫游指南

首先使用PuTTY登录EC2,然后输入如下命令:

1
sudo su

为避免部署的过程中出现网络中断的情况,可使用screen命令创建一个会话(screen命令的使用请参考SSH远程会话管理工具 - screen使用教程):

1
screen -S nodejs

接着更新一下系统:

1
yum update

部署服务端

部署shadowsocks-nodejs

1
2
3
4
5
6
mkdir tmp
cd tmp
yum install git
git clone https://github.com/clowwindy/shadowsocks-nodejs.git
cd shadowsocks-nodejs
vi config.json

i开始修改,修改server_port(如12345)和password。修改好后按ESC,然后输入 :wq 保存退出。

1
2
3
cd ..
mkdir /var/shadowsocks
cp shadowsocks-nodejs/ /var/shadowsocks -r

安装并部署nodejs

nodejs最新版可以在官网获取

1
2
3
4
wget http://nodejs.org/dist/v0.8.18/node-v0.8.18-linux-x86.tar.gz
tar zfvx node-v0.8.18-linux-x86.tar.gz
cp node-v0.8.18-linux-x86/bin/node /usr/bin/
echo "(node /var/shadowsocks/server.js >/dev/null 2>&1 &)" >> /etc/rc.local

部署obfsproxy

安装obfsproxy支持环境

1
yum install autoconf automake gcc make openssl-devel pkgconfig

安装libevent2

libevent2最新版本可在官网获取

1
2
3
4
5
6
7
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar zfvx libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make
make install
cd ..

安装并配置obfsproxy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
git clone https://git.torproject.org/obfsproxy.git
cd obfsproxy
export libevent_CFLAGS=-I/usr/local/include
export libevent_LIBS="-L/usr/local/lib -levent"
export LD_LIBRARY_PATH=/usr/local/lib/
./autogen.sh
./configure
make
make install
cp /usr/local/lib/libevent-2.0.so.5 /usr/lib/
cd ..
echo "(/usr/local/bin/obfsproxy obfs2 --dest=127.0.0.1:12345 server 0.0.0.0:54321 >/dev/null 2>&1 &)" >> /etc/rc.local
iptables -A INPUT -p tcp --dport 54321 -j ACCEPT
yum install policycoreutils
service iptables save
service iptables restart
exit
exit
exit

此处端口12345为shadowsocks-nodejs的server_port,54321为obfsproxy 负责接收和发送混杂数据的端口。

然后请参考Amazon AWS 漫游指南三:VPN一文里的防火墙设置,并将12345和54321两个端口添加一下,添加好后重启实例。


部署客户端

  1. tor官网下载含Obfsproxy的Tor包,此包是自解压包,将解压后得到的APP目录中的所有文件拷贝到一个合适的目录,如D:\nodejs

  2. nodejs官网下载node Windows包,下载得到node.exe直接拷贝到D:\nodejs

  3. 访问shadowsocks-nodejs项目主页,点击界面中的zip,下载得到一个zip包,解压后将shadowsocks-nodejs-master目录中的所有文件全部拷贝至D:\nodejs

  4. 编辑config.json,将password修改为之前制定的密码,其它无需修改。

  5. 在D:\nodejs目录中新建一个文件,输入:

    1
    2
    3
    START node.exe local.js
    START obfsproxy obfs2 –dest=111.111.111.111:54321 client 127.0.0.1:8388
    EXIT

其中111.111.111.111为服务器IP地址,例如,如果Amazon EC2实例的public dns为ec2-111-111-111-111.us-west-1.compute.amazonaws.com,那么,此处的IP就填111.111.111.111。然后将文件保存为批处理文件,后缀为bat

  1. 双击该批处理文件,并将浏览器的代理设置为SOCKS5 127.0.0.1:1080 即可。

参考