1 Star 0 Fork 0

du33169 / EasyConnect-linux-fix

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

EasyConnect-linux-fix

简介

部分linux版本的EasyConnect安装后无法直接使用,本项目在安装基础上进行修改,以使其能够运行。

使用

第一步:安装EasyConnect

正常安装你的学校/公司/组织对应版本的EasyConnect并尝试启动

如果能够正常使用,那无需执行本项目。

如果你遇到:启动后没有出现界面/尝试连接一段时间后闪退 等现象,则本项目可能有所帮助。

我以v7.6.3版本为基准编写的本项目,供参考

(安装后版本可在 /usr/share/sangfor/EasyConnect/resources/conf/version.xml中查看)

第二步:安装补丁

执行前确保已经安装了git和bash。

之后在合适位置终端执行如下操作:

git clone https://github.com/du33169/EasyConnect-linux-fix.git
cd EasyConnect-linux-fix
bash ./EasyConnect-fix.sh

对于中国大陆用户,也可使用gitee上的镜像:

git clone https://gitee.com/du33169/EasyConnect-linux-fix.git
cd EasyConnect-linux-fix
bash ./EasyConnect-fix.sh

运行时会要求输入sudo密码(终端不会显示,输入后回车),该密码用于获取root权限,将会用且仅用于:

  • 复制文件到EasyConnect安装目录
  • 访问和修改EasyConnect启动器.desktop文件
  • 提供EasyMonitor等程序需要的权限

安全警告:询问用户得到的sudo密码以明文写入/usr/share/sangfor/EasyConnect/RunEasyConnect.sh以避免每次启动EasyConnect时终端询问密码。如果有安全需求请谨慎使用

第三步:运行EasyConnect

完成后可正常使用启动器快捷方式启动EasyConnect。

卸载

如果需要卸载补丁,可使用uninstall参数执行安装脚本:

bash ./EasyConnect-fix.sh uninstall

原理

以下为该fix项目的原理。如果脚本在你的发行版无法正常工作,可以参考这部分原理并手动操作。

(EasyConnect-linux的安装位置固定为 /usr/share/sangfor/EasyConnect

第一步:解决依赖问题

根据DotIN13这篇博客,EasyConnect正常运行需要libpangolibpangocairolibpangoft软件包的1.0版本,与系统安装的版本不符。通过下载软件包并将其中中EasyConnect需要的运行库data.tar.xz/usr/lib/x86_64-linux-gnu/*.so.0.4200.3以及*.so.0提取,并直接复制到EasyConnect的安装目录下即可解决依赖问题(复制操作需要权限)。

需要指出的是,其中的*.so.0.4200.3文件是真正的运行库,而同名的*.so.0则是指向对应运行库的软链接。在本项目中,需要的动态库已经位于patch目录下。

考虑到软链接在压缩、git拉取等操作时很容易失效,并且指向的只是同一目录下的库文件,本项目附带的patch目录中直接将各个*.so.0.4200.3重命名为对应*.so.0。这样就不需要使用软链接。

第二步:解决sslservice启动问题

DotIN13文章中通过定时启动服务的方式经过实践很难把握时机,Hagb的这篇笔记指出ECAgent.log中出现 cms client connect failed时为一个关键时刻。此时启动sslservice(/usr/share/sangfor/EasyConnect/resources/shell/sslservice.sh)即可正常连接。

patch中的RunEasyConnect.sh即解决上述问题的辅助启动脚本,以该脚本代替 /usr/share/sangfor/EasyConnect/EasyConnect可执行文件即可正常启动。

关于最后while循环的笔记:经过实验sslservice只需启动一次,无需重复;但RunEasyConnect.sh在启动ssl服务后需要等待EasyConnect主进程结束,否则会造成闪退。常用的wait命令未起效果,此处暂时采用while循环检测EasyConnect进程并sleep的方法。

第三步:修改.desktop文件

EasyConnect的启动器文件安装至 /usr/share/applications/EasyConnect.desktop,为了简化启动EasyConnect时的操作,fix脚本修改该文件并将执行前述辅助启动脚本的命令写入(修改操作需要权限),这样就可在启动器以常规方式启动EasyConnect,无需终端运行脚本。

声明

  • 本项目在DotIN13Hagb得到的结果基础上进行简单的整理和自动化得到,特此鸣谢。
  • 本项目为第三方补丁,与EasyConnect及Sangfor官方无关。
MIT License Copyright (c) 2021 du33169 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

a workaround for linux version of EasyConnect 展开 收起
Shell
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Shell
1
https://gitee.com/du33169/EasyConnect-linux-fix.git
git@gitee.com:du33169/EasyConnect-linux-fix.git
du33169
EasyConnect-linux-fix
EasyConnect-linux-fix
main

搜索帮助