[Suggestions for Improvement] 解决EasyConnect在deepin v23上正常运行!!! Resolved
Tofloor
poster avatar
remyxo
deepin
2024-09-07 11:45
Author

EasyConnect之前在UOS V20、deepin 20.9上都正常运行,因为deepin 20.9官方不再维护,UOS v20内核较老,glibc版本只有2.28,并且不支持最新压缩格式的deb,因此决定全面转向deepin v23。其它软件都能正常安装运行了,唯独EasyConnect,不论是官方下载的版本,还是星火商店号称已经解决V23的版本,都无法正常运行,而EasyConnect又是经常要用来访问公司的OA系统的,不可或缺。

1、官方版本,安装后点击运行无反应,命令行下运行,会提示缺少libdbus-glib-1.so.2依赖,这个可以通过sudo apt install libdbus-glib-1-2 解决。再次命令行执行会core dump,群里有解决方案,拷贝三个libpango开头的so文件解决;

但还是在最后阶段卡在“服务正在启动...”这一步,或者启动并登录了EasyConnect后,内外网网站都无法访问。

2、星火商店版本,解决了安装依赖和库文件版本过高的问题,顺利安装,但也是启动后内外网网站都无法访问,关闭EasyConnect后恢复互联网访问;

当前阶段不建议装星火版本,因为我在排查问题的时候发现,星火商店安装的用户权限不对,在我的电脑上,owner都是普通用户,而官网下载的通过sudo dpkg -i XXX.deb安装的owner都是root,而且,部分应用需要s权限,也没有正确的设置,主要在/usr/share/sangfor/EasyConnect/resources/bin下:

这几个带s权限的在星火版本上都丢失了,而且拥有者是当前安装用户,不是root,而EasyConnect是用户启动的,建立隧道需要root权限,可能由于没有足够的权限而导致隧道建立失败。(s权限可以让普通用户执行某个应用时具有root权限)

这个问题从我开始使用deepin V23 beta3开始到目前的正式版,都找不到解决办法。

昨天,无意中发现家里的一台v23 上的EasyConnect居然可以上网了!内外网都能访问了!是官网版本安装并覆盖so文件的,一直在想这是怎么解决的?前后做了哪些事?唯一有印象的,就是前两天看到EasyConnet可以运行在docker上,想试试这个方案能不能让EasyConnect正常运行,于是装了docker,还没来得及配置,就搁置在那了。

是不是安装docker的影响呢?

于是周末就试了另一台单位的电脑,也是刚装了v23,只装了Edge、微信、WPS专业版。EasyConnect官网下载安装并解决依赖、覆盖so文件,运行后无法上内外网,上docker试试吧。

安装docker过程中,特意留意了一下还安装了哪些依赖:

apparmor containerd.io docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-compose-plugin git
git-man iptables liberror-perl libip4tc2 libip6tc2

看到iptables这个熟悉的名字,突然感觉,十有八九就是它了!docker也需要解决网络转发和映射问题啊!

(心里痛骂v23开发人员,deepin 20.9和UOS v20都好好的,你把iptables拿掉干嘛?害得我从beta3搞到正式版都没搞定VPN访问!!! 还有深信服,不能因为20.9和UOS v20默认带iptables,你就不把这个依赖关系配置到deb文件里!!!)

安装好docker后,直接启动EasyConnect,一气呵成!!!可以访问内外网了!!!

事后又在另一台电脑上只安装iptables,也顺利地能访问内外网了。之前号称V23下已经解决了EasyConnect访问问题的群友,可能也是无意间哪个软件需要iptables依赖而带上了(例如docker)。

 

总结:

1、下载你所在公司的VPN网站上的EasyConnect(确保客户端和服务端版本一致);

2、sudo apt install libdbus-glib-1-2        # 解决安装EasyConnect后报缺少依赖的问题

3、sudo apt install iptables                     # 解决无法访问内外网的问题,依赖组件libip4tc2、libip6tc2会被自动安装

4、sudo dpkg -i EasyConnect_x64_7_6_7_7.deb                           # 安装下载好的deb文件

5、sudo cp libpango*.so.0 /usr/share/sangfor/EasyConnect/.        # 拷贝3个so文件到指定目录(见附件);

 

建议:

1、如果deepin 20.9是默认安装libdbus-glib-1-2和iptables的,建议官方在deepin v23也默认安装libdbus-glib-1-2iptables

2、建议星火商店EasyConnect的作者加上iptables依赖,并解决文件的属主和权限问题。

(最好是深信服解决包依赖问题并出deepin v23的deb版本)

打完收工吃饭!

三个so文件的附件,sudo拷贝到:/usr/share/sangfor/EasyConnect/目录下

easyconnect-so_1.zip

Reply Favorite View the author
All Replies
remyxo
deepin
2024-09-07 11:58
#1

请管理员分别联系v23开发人员和星火商店的管理员。

晚上在另一台新装的v23上又做了一次,实践证明,只需要安装iptables组件,就可以实现内外网正常访问。

Reply View the author
神末shenmo
deepin
Spark-App
2024-09-07 12:20
#2

我没太看懂要改什么权限

你可以帮我弄一下吗

aptss download 包名可以下载软件

有个维护打包工具箱,那个可以辅助拆deb包

Reply View the author
neko
deepin
Ecological co-builder
2024-09-07 12:46
#3

好贴

Reply View the author
remyxo
deepin
2024-09-07 12:51
#4
神末shenmo

我没太看懂要改什么权限

你可以帮我弄一下吗

aptss download 包名可以下载软件

有个维护打包工具箱,那个可以辅助拆deb包

抱歉,我也不会deb打包。

-rwsr-sr-x 1 root root 3690672 2022年 3月22日 CSClient*
-rwxr-xr-x 1 root root 3023632 2022年 3月22日 EasyMonitor*
-rwsr-sr-x 1 root root 4548216 2022年 3月22日 ECAgent*
-rwsr-sr-x 1 root root 1310928 2022年 3月22日 svpnservice*

就是上面的s权限,官方deb安装后就是上面的样子,owner是root,还有除了rwx权限,还有s权限;

如果我的登录用户是abc,那么星火商店安装后的权限是这样的:

-rwxr-xr-x 1 abc abc 3690672 2022年 3月22日 CSClient*
-rwxr-xr-x 1 abc abc 3023632 2022年 3月22日 EasyMonitor*
-rwxr-xr-x 1 abc abc 4548216 2022年 3月22日 ECAgent*
-rwxr-xr-x 1 abc abc 1310928 2022年 3月22日 svpnservice*

权限不对,可能也会引起程序运行正常,所以,最好是与官方版安装后的属主和权限保持一致。

(可以通过chmod u+s,g+s XXX 增加s权限)

Reply View the author
hinata
deepin
2024-09-07 20:27
#5

感谢分享虽然我也不太懂!

Reply View the author
新手来啦~
deepin
2024-09-07 21:18
#6

好帖,收藏了

Reply View the author
sailor.
deepin
2024-09-08 11:56
#7

kissing_heart

Reply View the author