Ubuntu下源码编译安装最新版Shadowsocks-Qt5

Author Avatar
MistEO 3月 08, 2018

既然说好的打造技术博客,总得写点干货什么的,正好前些日子买个了新的ss服务,买完才注意到加密方式是chacha20-ietf-poly1305,再一看Shadowsocks-Qt5在Ubuntu的软件源里面最新版本只是2.9,不支持啊,于是只能自己研究一下怎么弄了,遇到了不少坑,和大家分享一下经验方法。

卸载旧版本Shadowsocks-Qt5

sudo apt-get purge shadowsocks-qt5

安装libsodium

sudo apt-get install libsodium-dev

安装libbotan-2.x

下载解压编译安装,没啥好说的,可以访问Botan-Index of release 获取最新本版,虽说新版本好像也没啥用XD

wget https://botan.randombit.net/releases/Botan-2.3.0.tgz
tar xvf Botan-2.3.0.tgz
cd Botan-2.3.0
./configure.py
make
sudo make install
sudo ldconfig

安装libQtShadowsocks

sudo apt-get install qt5-qmake qtbase5-dev libqrencode-dev libqtshadowsocks-dev libappindicator-dev libzbar-dev libbotan1.10-dev
git clone https://github.com/shadowsocks/libQtShadowsocks.git
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

如果软件源中没有libqtshadowsocks-dev,可以使用pip安装

sudo apt-get install python-pip
sudo pip install shadowsocks

如果原先安装过Qt,可能会提示找不到Qt目录,导入环境变量,然后重新编译安装

export LD_LIBRARY_PATH=/opt/Qt5.10.0/5.10.0/gcc_64/lib/
rm -rf *    #删除build文件夹中文件
cmake ..
make
sudo make install
sudo ldconfig

安装Shadowsocks-Qt5

sudo apt-get install qt5-qmake qtbase5-dev libqrencode-dev libqtshadowsocks-dev libappindicator-dev libzbar-dev libbotan1.10-dev
git clone https://github.com/shadowsocks/shadowsocks-qt5.git
cd shadowsocks-qt5
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

如果提示找不到Qt目录,编辑CMakeLists.txt,加入一行并保存

set(CMAKE_PREFIX_PATH "/opt/Qt5.10.0/5.10.0/gcc_64")

然后重新编译安装

rm -rf *    #删除build文件夹中文件
cmake ..
make
sudo make install
sudo ldconfig

启动ss-qt5

直接启动即可

ss-qt5

若提示

ss-qt5: /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5: version `Qt_5' not found (required by ss-qt5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libQt5Network.so.5: version `Qt_5' not found (required by ss-qt5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by ss-qt5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.10' not found (required by ss-qt5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found (required by ss-qt5)
ss-qt5: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5: version `Qt_5' not found (required by ss-qt5)

则还是环境变量的问题,导入后重新启动即可

export LD_LIBRARY_PATH=/opt/Qt5.10.0/5.10.0/gcc_64/lib
ss-qt5

启动后在帮助-关于查看一下版本号若是新版就ok了
ss-qt5

这时手动添加一个新连接,就已经可以看到加密方式中有chacha20-ietf-poly1305选项了
配置新连接

Tips

可以写个sh,放到桌面双击启动

#/bin/bash
export LD_LIBRARY_PATH=/opt/Qt5.10.0/5.10.0/gcc_64/lib
ss-qt5

文件管理器-编辑-首选项-行为-可执行文本文件修改为打开可执行文本文件时运行它们即可,别忘了给sh脚本执行权限哦
文件行为设置

顺便说一下命令行中如何使用ss,以及method chacha20-ietf-poly1305 not supported咋解决

新建json文件,内容格式如下

{
    "server": "1.2.3.4",
    "server_port": "1234",
    "password": "1234567",
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "timeout":300,
    "method":"chacha20-ietf-poly1305",
    "fast_open": false,
    "workers": 1
}

然后安装最新版本ss并从文件中配置启动即可

sudo pip install https://github.com/shadowsocks/shadowsocks/archive/master.zip -U
sslocal -c xxx.json

想让命令走ss推荐使用porxychains,具体使用方法可以Google一下不再赘述

参考资料