Synology DSM 5.2上编译Shadowsocks-libev

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

准备

  1. 下载与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

“Synology DSM 5.2上编译Shadowsocks-libev”的6个回复

  1. 您好,我在 Compile openssl for ARM 的过程中遇到这样的提示,然后后面就进行不下去了,请问您有相关的经验可以分享吗?

    The library could not be configured for supporting multi-threaded applications as the compiler options required on this system are not known.See file INSTALL for details if you need multi-threading.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据