月下博客

ShadowsocksR 安装libsodium 以支持 Chacha20/Chacha20-ietf 加密方式

本文最后更新于 2017年11月18日 22:53 可能会因为没有更新而失效。如已失效或需要修正,请留言!

很多人都知道安装 libsodium 就能用 Chacha20/Chacha20-ietf 加密方式了,ShadowsocksR得 Wiki 写的也有,但是我网站除了在手动安装ShadowsocksR教程里提到过Debian/Ubuntu的安装步骤以外,其他地方都没有写,所以我把 Github Wiki的 libsodium安装教程给转载过来凑数了。

本教程转载自:https://github.com/breakwa11/shadowsocks-rss/wiki/libsodium

libsodium Github项目:https://github.com/jedisct1/libsodium

libsodium 一键安装脚本:应一些逗比要求 单独写了个 libsodium 一键安装脚本 (Chacha20 / Chacha20-ietf 等)

注意:ShadowsocksR以及其他分支客户端/服务端,欲使用chacha20系列加密方式,只需要服务端 安装libsodium支持库,C#客户端使用这系列加密方式时不需要 安装libsodium支持库,但是Python版客户端(和服务端在一起)则需要安装libsodium支持库!

CentOS 安装步骤

CentOS有两种安装方式:一种是 通过包管理器来安装,但不是最新版本。一种是 通过编译安装。

首先请更新包管理器列表:

yum update

包管理器 安装(非最新版本)

点击展开 查看步骤

yum install epel-release -y
yum install libsodium -y

注意到这里 包管理器方式安装就完毕了,不要继续下面的 源码编译方式 重复安装!


源码编译 安装(推荐)

点击展开 查看步骤

安装 编译所需组件包:

yum -y groupinstall "Development Tools"

获取 libsodium最新版本:

Libsodiumr_ver=$(wget -qO- "https://github.com/jedisct1/libsodium/tags"|grep "/jedisct1/libsodium/releases/tag/"|head -1|sed -r 's/.*tag//(.+)/">.*//1/') && echo "${Libsodiumr_ver}"

如果上面的自动获取最新版本代码获取失败(正常情况下应该返回 x.x.xx 格式版本号,如果不是则代表失败),那么请前往 Github 手动查看最新版本,例如 1.0.15 ,然后执行 Libsodiumr_ver="1.0.15" 即可继续下面的步骤。

下载最新 libsodium版本编译文件:

wget --no-check-certificate -N "https://github.com/jedisct1/libsodium/releases/download/${Libsodiumr_ver}/libsodium-${Libsodiumr_ver}.tar.gz"
tar -xzf libsodium-${Libsodiumr_ver}.tar.gz && cd libsodium-${Libsodiumr_ver}
./configure --disable-maintainer-mode && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

编译安装完毕后,就可以删除刚才下载和解压的文件了。

cd .. && rm -rf libsodium-${Libsodiumr_ver}.tar.gz && rm -rf libsodium-${Libsodiumr_ver}

Debian/Ubuntu 安装步骤

Debian/Ubuntu有两种安装方式:一种是 通过包管理器来安装,但不是最新版本。一种是 通过编译安装。

首先请更新包管理器列表:

apt-get update

包管理器 安装(非最新版本)

点击展开 查看步骤

apt-get install libsodium-dev

注意到这里 包管理器方式安装就完毕了,不要继续下面的 源码编译方式 重复安装!


源码编译 安装(推荐)

点击展开 查看步骤

安装 编译所需组件包:

apt-get install -y build-essential

获取 libsodium最新版本:

Libsodiumr_ver=$(wget -qO- "https://github.com/jedisct1/libsodium/tags"|grep "/jedisct1/libsodium/releases/tag/"|head -1|sed -r 's/.*tag//(.+)/">.*//1/') && echo "${Libsodiumr_ver}"

如果上面的自动获取最新版本代码获取失败(正常情况下应该返回 x.x.xx 格式版本号,如果不是则代表失败),那么请前往 Github 手动查看最新版本,例如 1.0.15 ,然后执行 Libsodiumr_ver="1.0.15" 即可继续下面的步骤。

下载最新 libsodium版本编译文件:

wget --no-check-certificate -N "https://github.com/jedisct1/libsodium/releases/download/${Libsodiumr_ver}/libsodium-${Libsodiumr_ver}.tar.gz"
tar -xzf libsodium-${Libsodiumr_ver}.tar.gz && cd libsodium-${Libsodiumr_ver}
./configure --disable-maintainer-mode && make -j2 && make install
ldconfig

编译安装完毕后,就可以删除刚才下载和解压的文件了。

cd .. && rm -rf libsodium-${Libsodiumr_ver}.tar.gz && rm -rf libsodium-${Libsodiumr_ver}

注意事项

如果要升级libsodium,只需要重复以上安装步骤即可更新到最新版,只有v1.0.4以上版本才支持 Chacha20-ietf 加密方式


Chacha20系列加密方式,并没有什么黑科技、特殊加成,不要迷信这些。

加密方式的速度取决于,加解密时间,而加解密时间取决于设备性能和加密算法复杂程度等等。

而 手机和路由器 等性能不足的设备,使用Chacha20等加密方式可能会稍微快一点,当然如果你不在意加密安全性,只追求速度,那么为什么不用 rc4-md5 呢?

编译安装,内存不足问题

使用编译安装,需要注意的是如果VPS内存过小,可能会导致编译安装内存不足 安装失败,所以如果不是OpenVZ虚拟化构架,那么可以手动添加 虚拟内存 SWAP。

转载请超链接注明:月下博客 » ShadowsocksR 安装libsodium 以支持 Chacha20/Chacha20-ietf 加密方式
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!