ShadowSocks-Qt5 for arm64(鲲鹏、飞腾)

♀尐吖头ヾ 提交于 2020-08-13 23:18:16

操作系统: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&section=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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!