操作系统:Ubuntu Kylin 优麒麟 20.04 LTS
适用平台:arm64
一、安装包
软件仓库中没有 ShadowSocks-Qt5 (简称:SS)的安装包,而且目前该项目处于停止更新的状态,因此需要下载一些“陈旧”的安装包。
1.1 Botan
请使用Debian仓库中的 2.9 版本,Ubuntu 仓库中的 2.12 与 SS 存在兼容性问题。
请从下方链接下载 botan 和 libbotan-2-9,如果想自行编译,还需要下载 libbotan-2-dev。架构选择arm64,镜像站选择亚洲的,速度快一些。
https://packages.debian.org/search?suite=buster&searchon=names&keywords=botan
安装下载好的软件包。
sudo dpkg -i *botan*.deb
1.2 ShadowSocks
请从下方链接下载 shadowsocks-qt5 和 libqtshadowsocks2,如果想使用非图形化的工具,请下载 shadowsocks。
https://packages.debian.org/search?keywords=shadowsocks&searchon=names&suite=stable§ion=all
安装下载好的软件包。
sudo dpkg -i *shadowsocks*.deb
1.3 全部依赖
除了 Botan 以外,其他软件包可以使用 Ubuntu 20.04 仓库中的版本。
方法一、安装指定的依赖
sudo apt install qt5-default qrencode zbar-tools libappindicator1 libappindicator3-1
方法二、修复缺失的依赖
sudo apt install -f
shadowsocks-qt5
依赖: libc6 (>= 2.17)
依赖: libgcc1 (>= 1:3.0)
libgcc-s1
依赖: libqrencode4 (>= 3.2.0)
依赖: libqt5core5a (>= 5.8.0)
依赖: libqt5dbus5 (>= 5.6)
依赖: libqt5gui5 (>= 5.7.0)
依赖: libqt5network5 (>= 5.6)
依赖: libqt5widgets5 (>= 5.6)
依赖: libqtshadowsocks2 (>= 2.1.0)
依赖: libstdc++6 (>= 5.2)
依赖: libzbar0 (>= 0.10)
libqtshadowsocks2
依赖: libbotan-2-9
依赖: libc6 (>= 2.17)
依赖: libgcc1 (>= 1:3.0)
libgcc-s1
依赖: libqt5core5a (>= 5.5.0)
依赖: libqt5network5 (>= 5.0.2)
依赖: libstdc++6 (>= 5.2)
二、开发环境
依赖的软件:
一次安装软件包
为了简化步骤,可以一次性全部安装完毕。
sudo apt install git qt5-default qt5-qmake cmake cmake-qt-gui gcc g++ pkg-config qrencode libqrencode-dev zbar-tools libzbar-dev libzbarqt-dev libappindicator1 libappindicator-dev libappindicator3-1 libappindicator3-dev
分批安装软件包
当然,为了看清依赖关系,也可以分批安装依赖。
sudo apt install git
查看版本:git --version
sudo apt install qt5-default qt5-qmake
查看版本:qmake --version。版本Qt >= 5.5
sudo apt install cmake cmake-qt-gui
查看版本:cmake --version。CMake >= 3.1
sudo apt install gcc g++
查看版本:gcc --version,g++ --version。支持C++14各项功能的编译器(比如GCC >= 4.9)。
sudo apt install pkg-config
查看版本:pkg-config --version
sudo apt install qrencode libqrencode-dev
查看版本:qrencode --version
sudo apt install zbar-tools libzbar-dev libzbarqt-dev
sudo apt install libappindicator1 libappindicator-dev libappindicator3-1 libappindicator3-dev
三、编译libQtShadowSocks
3.1 pkgcofig的设置
由于ShadowSocks软件及库,使用pkgconfig链接依赖,因此,对所有依赖库编译安装至系统目录,并设置pkgconfig链接目录为原始目录。
3.2 git
不要在生产环境使用主分支的代码,因为还在开发阶段。请使用stable稳定分支。
git clone -b stable https://github.com/shadowsocks/libQtShadowsocks.git
3.3 cmake的配置
cd libQtShadowsocks
3.4 启动cmake-gui
点击“Browse Source”浏览源代码路径、“build”路径会自动生成。如果需要指定点击“Browse Build”浏览二进制程序的路径。
点击configure。提示是否生成“build”文件夹。选择“是”。
在“Setup”界面,使用默认配置,点击“Finish”。
如果在BOTAN_LIBRARY_VAR选项的value中,不是有效路径。填写libbotan-2.so的路径。
如果不报错,点击generate。编译完成后,默认的app安装文件夹是“/usr/local”。
5、编译
在libQtShadowsocks目录中,并切换进入 build 文件夹。
cd build
开始编译
make -j4
安装
sudo make install
以上的操作将同时编译和安装libQtShadowsocks和shadowsocks-libQtShadowsocks。如果需要打包的话,需要根据发行版的指南分割为2个或3个软件包。
创建一个链接,以便pkg-config能检索到QtShadowSocks。
sudo ln /usr/lib/pkgconfig/QtShadowsocks.pc /usr/lib64/pkgconfig/QtShadowsocks.pc
四、编译ShadowSocks-Qt5
返回libQtShadowsocks目录的上一级目录
cd ..
git clone https://github.com/shadowsocks/shadowsocks-qt5.git
cd shadowsocks-qt5
重复之前章节 3.4 的步骤,修改一下项目路径至libQtShadowsocks就可以了。其他不变。
make -j4
sudo make install
五、安装privoxy
如果你的游戏不支持 socks 代理,那么我们就需要将 http、https 或 ftp 转发。这个任务由 privoxy 来完成。
sudo apt install privoxy
编辑文件
sudo nano /etc/privoxy/config
搜索 forward-socks5t,在章节5.2,将“forward-socks5t / 127.0.0.1:9050 .”此句的注释去掉。并把端口号改为1080。保存退出。
启动 privoxy。
sudo systemctl start privoxy
如果在终端中让游戏临时使用代理,可以直接执行以下命令。重启终端或计算机后,设置会失效。
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export ftp_proxy=http://127.0.0.1:8118
如果要设置成永久的全局代理,可以选择配置 /etc/profile,重启电脑后,配置能保存住。
执行 vi /etc/profile,添加上边的三行语句:
第三句 ftp 的代理根据需要,不需要的话可以不添加。然后 source /etc/profile,执行 curl www.google.com 或 wget www.google.com 判断是否成功访问。
或可以先执行:
curl ip.gs
显示为本地 IP 信息(例:当前 IP:222.xxx.xxx.xxx 来自:中国四川 电信) 直接执行:
export http_proxy=http://127.0.0.1:8118 再执行:
curl ip.gs 显示代理后的 IP 信息(例:当前 IP:138.xxx.xxx.xxx 来自:美国)
如果不能访问,请重启机器,依次打开 shadowsocks 和 privoxy 再测试.
nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &
systemctl start privoxy
五、参考文献:
《LibQtShadowSocks github wiki》:https://github.com/shadowsocks/libQtShadowsocks/wiki/Compiling
《ShadowSocks-Qt5 github wiki》:https://github.com/shadowsocks/shadowsocks-qt5/wiki/Compiling
《「Shadowsocks」- A secure socks5 proxy》:http://www.k4nz.com/2.Networks_and_Protocols/Layer_7_-_Application_Layer/SOCKS_-_Socket_Secure/About_Shadowsocks/libQtShadowsocks.html
《pkg-config 详解》https://blog.csdn.net/newchenxf/article/details/51750239
《linux 配置 shadowsocks 代理全局代理》https://www.looaon.com/index.php/%E5%BA%94%E7%94%A8%E9%85%8D%E7%BD%AE/832.html
来源:oschina
链接:https://my.oschina.net/chipo/blog/4299162