Shadowsocks的python版本现在已经不再维护,万幸的是Shadowsocks-libev还在更新,而且编译后资源消耗更少。所以打算更新版本,但是搜了半天,只用适用于Openwrt的Shadowsocks-libev。而且安装包是IPK的。没办法直接安装,所以只好自己编译。
环境
NAS:
Model:Synology DS214+, CPU:Marvell Armada XP, OS: DSM 5.2
编译服务器:
Aliyun服务器,Centos 6.5 32Bit ,1CPU 1G RAM
准备
- 下载与DSM版本相匹配的Toolchain进行Cross-compiling
NAS上没办法进行程序编译,缺少编译环境,需要在一台Linux服务器上进行Cross-compiling,需要注意的是一定要是32位的操作系统。
前往Synology Open Source Project (http://sourceforge.net/projects/dsgpl/files/) 下载。
进入DSM 5.2 toolchain,而后根据CPU类型为Armada XP进入子目录。下载
armadaxp-gcc464_glibc215_hard_armada-GPL.txz
输入以下命令进行解压:
tar xvf armadaxp-gcc464_glibc215_hard_armada-GPL.txz --use-compress-program xz
解压后得到目录arm-marvell-linux-gnueabi
新建一环境变量文件 toolchain.env
export CC=/root/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc
export LD=/root/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ld
export RANLIB=/root/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ranlib
export CFLAGS=”-I/root/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/include -mhard-float -mfpu=vfpv3-d16″
export LDFLAGS=”-L/root/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/lib”
Shadowsocks需要zlib和OpenSSL,我们需要先编译zlib和OpenSSL的Arm版本。
wget http://zlib.net/zlib-1.2.8.tar.gz
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
source /root/toolchain.env
./configure –prefix=/root/zib4arm
make
make install
cp zlib.h zconf.h /root/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/include
cp libz.so.1.2.8 /root/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/lib/libz.so
Compile openssl for ARM
wget https://www.openssl.org/source/openssl-0.9.8zg.tar.gz
tar zxvf openssl-0.9.8zg.tar.gz
./Configure dist –prefix=/root/openssl2
make
make install
cd /root/openssl2
cp -r include/openssl /root/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/include
cp lib/libcrypto.a lib/libssl.a /root/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/lib
编译shadowsocks-libev
git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
./configure –host=armle-unknown-linux –target=armle-unknown-linux –build=”i686-pc-linux” –prefix=/root/ssforarm
make
make install
编译好的shadowsocks会在/root/ssforarm文件夹。
将ssforarm文件夹的四个文件夹打包传到Nas的/usr/local目录下的同名目录即可。。
启动ss-redir.
设置下iptables.就可以畅快上网了。
iptables -t nat -A PREROUTING -p tcp -d 8.8.0.0/16 -j REDIRECT –to-ports 1080