[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
avatar
remyxo
deepin
2024-09-07 11:58
#1

完整的deb安装包已上传到星火商店。鉴于deepin 25与星火商店之间还存在一些兼容性问题,也同步上传到度盘: https://pan.baidu.com/s/1mKuN5BWmU28HtNxKeBA00Q?pwd=tti2 提取码: tti2

可以下载后用sudo apt install 进行安装。

Reply View the author
avatar
神末shenmo
deepin
Spark-App
Q&A Team
2024-09-07 12:20
#2

我没太看懂要改什么权限

你可以帮我弄一下吗

aptss download 包名可以下载软件

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

Reply View the author
avatar
neko
deepin
Ecological co-builder
Q&A Team
2024-09-07 12:46
#3

好贴

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

我没太看懂要改什么权限

你可以帮我弄一下吗

aptss download 包名可以下载软件

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

官方deb安装后就是如下的样子,owner是root,除了rwx权限,还有s权限:

-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*

如果我的登录用户是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*

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

可以通过sudo chmod u+s,g+s XXX 对XXX应用增加s权限,然后通过如下命令打包:

dpkg-deb --build --root-owner-group extract_dir EasyConnect_7.6.7.7_amd64.deb

--root-owner-group选项使安装到目标时(一般是/opt,少数安装在/usr)文件的属主是root。

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

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

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

好帖,收藏了

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

kissing_heart

Reply View the author
avatar
daswerden
deepin
2024-11-05 13:04
#8
remyxo

完整的deb安装包已上传到星火商店。鉴于deepin 25与星火商店之间还存在一些兼容性问题,也同步上传到度盘: https://pan.baidu.com/s/1mKuN5BWmU28HtNxKeBA00Q?pwd=tti2 提取码: tti2

可以下载后用sudo apt install 进行安装。

只需要安装iptables组件,就可以实现内外网正常访问。
我今天碰到同样的问题,然后先安装了iptables组件,再安装easyconnect(原来已经安装,但是需要删除,因为启动过一次之后,后台一直有服务存在,上不了网,删除软件之后才可以上网),就可以正常用了。

Reply View the author
avatar
Cornerbear
deepin
2024-11-20 20:54
#9

2024年11月20日,Zotero打不开,运行sudo apt install libdbus-glib-1-2就成功了。

919b8deb23748847cbb91291050c6b83.jpg

Reply View the author
avatar
lizhuojian
deepin
2025-01-25 01:25
#10

easyconnect深度v25上遇到这个问题

root@deepin-PC:/usr/share/sangfor/EasyConnect# cp /home/deepin/Downloads/lib_1-copy-to-easyconnect/libpango* .

cp: 无法创建普通文件 './libpango-1.0.so.0': 只读文件系统

cp: 无法创建普通文件 './libpangocairo-1.0.so.0': 只读文件系统

cp: 无法创建普通文件 './libpangoft2-1.0.so.0': 只读文件系统

root@deepin-PC:/usr/share/sangfor/EasyConnect#

Reply View the author
avatar
remyxo
deepin
2025-01-26 08:21
#11
lizhuojian

easyconnect深度v25上遇到这个问题

root@deepin-PC:/usr/share/sangfor/EasyConnect# cp /home/deepin/Downloads/lib_1-copy-to-easyconnect/libpango* .

cp: 无法创建普通文件 './libpango-1.0.so.0': 只读文件系统

cp: 无法创建普通文件 './libpangocairo-1.0.so.0': 只读文件系统

cp: 无法创建普通文件 './libpangoft2-1.0.so.0': 只读文件系统

root@deepin-PC:/usr/share/sangfor/EasyConnect#

deepin 25 对内核做了保护,不允许更改,可以参考论坛文章临时关闭保护,或者使用我上传到星火商店的新的EasyConnect(安装文件里面也有root下执行的脚本,不知道是不是也受25磐石机制的影响。)

好像目前星火商店与deepin 25之间也存在兼容性问题,已上传度盘: https://pan.baidu.com/s/1mKuN5BWmU28HtNxKeBA00Q?pwd=tti2 提取码: tti2,可以试试sudo apt install xxx进行安装。

Reply View the author
avatar
lizhuojian
deepin
2025-02-10 21:22
#12
remyxo

deepin 25 对内核做了保护,不允许更改,可以参考论坛文章临时关闭保护,或者使用我上传到星火商店的新的EasyConnect(安装文件里面也有root下执行的脚本,不知道是不是也受25磐石机制的影响。)

好像目前星火商店与deepin 25之间也存在兼容性问题,已上传度盘: https://pan.baidu.com/s/1mKuN5BWmU28HtNxKeBA00Q?pwd=tti2 提取码: tti2,可以试试sudo apt install xxx进行安装。

1 用安装盘livecd模式引导系统把 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 拷贝到/usr/share/sangfor/EasyConnect/ 之后,可以启动easyconnect出来图形界面而不报段错误了。

2如果账号开启了easyconnect的p12证书登陆,需要关闭磐石系统之后可以挂着证书 登陆。

可是开启之后 证书又挂不上,之前导入的证书也会被丢弃(这点还没解决)

#进入系统后,关闭磐石只读保护功能:
sudo deepin-immutable-ctl disable-system-protect enable
#注意:开启或关闭此功能,都需要重启才能生效。
#如果想开启只读保护,只需运行:
sudo deepin-immutable-ctl disable-system-protect disable
#通过以下命令查询功能的开启状态:
sudo deepin-immutable-ctl disable-system-protect status

Reply View the author
avatar
大福
deepin
2025-05-28 10:35
#13

👍 感谢大佬

Reply View the author
avatar
joker110
deepin
2025-06-04 22:47
#14

正解,👍 感谢大佬

Reply View the author
avatar
四月小雨
deepin
2025-12-01 09:55
#15
Cornerbear

2024年11月20日,Zotero打不开,运行sudo apt install libdbus-glib-1-2就成功了。

919b8deb23748847cbb91291050c6b83.jpg

我也发现这一步不能少。先只安装了iptables组件,easyconnect还是不行,试了多次重启了多次都闪退,但是安装依赖关系之后,结果easyconnect和VPN专用浏览器都可以运行了

Reply View the author
avatar
东欧塔塔
deepin
2026-01-18 16:14
#16
lizhuojian

1 用安装盘livecd模式引导系统把 libpango-1.0.so.0 libpangocairo-1.0.so.0 libpangoft2-1.0.so.0 拷贝到/usr/share/sangfor/EasyConnect/ 之后,可以启动easyconnect出来图形界面而不报段错误了。

2如果账号开启了easyconnect的p12证书登陆,需要关闭磐石系统之后可以挂着证书 登陆。

可是开启之后 证书又挂不上,之前导入的证书也会被丢弃(这点还没解决)

#进入系统后,关闭磐石只读保护功能:
sudo deepin-immutable-ctl disable-system-protect enable
#注意:开启或关闭此功能,都需要重启才能生效。
#如果想开启只读保护,只需运行:
sudo deepin-immutable-ctl disable-system-protect disable
#通过以下命令查询功能的开启状态:
sudo deepin-immutable-ctl disable-system-protect status

小白刚开始用,请教下,我用的sudo deepin-immutable-writable enable关闭的磐石,可以正常用,重新开启之后,能运行登录后提示“服务启动中”,这个知道咋解决吧

Reply View the author
avatar
remyxo
deepin
2026-01-18 19:56
#17
东欧塔塔

小白刚开始用,请教下,我用的sudo deepin-immutable-writable enable关闭的磐石,可以正常用,重新开启之后,能运行登录后提示“服务启动中”,这个知道咋解决吧

还是磐石的问题。要用EasyConnect,就把磐石关了。这玩意儿对绝对的白鼠是有用的,对懂一点Linux的人来说,就是个累赘。

Reply View the author
avatar
空山新雨
deepin
2026-07-28 11:15
#18

Kimi: 根据您提供的截图,EasyConnect 在 Deepin 上卡在 "正在选择最优线路..." 是 Linux 版 EasyConnect 的常见问题,通常由系统库版本不兼容依赖缺失导致。以下是分步排查和解决方案:


一、安装缺失依赖

EasyConnect 在 Deepin/UOS 上常因缺少关键依赖而无法正常选路连接:

sudo apt update
sudo apt install libdbus-glib-1-2 iptables

iptables 是创建 VPN 虚拟网卡(tun0)的必要组件,缺失会导致连接后无法生成虚拟网卡。


二、解决 Pango/Harfbuzz 库版本兼容问题(最常见原因)

这是导致界面卡住、段错误的核心原因。Deepin/UOS 的系统 Pango 库版本与 EasyConnect 内置的 Electron/CEF 不兼容。

解决方案:降低 Pango 库版本

  1. 从 Ubuntu 18.04 或旧版 Deepin 中复制以下三个文件:

    • libpango-1.0.so.0
    • libpangocairo-1.0.so.0
    • libpangoft2-1.0.so.0
  2. 将其覆盖到 EasyConnect 安装目录:

    sudo cp libpango*.so.0 /usr/share/sangfor/EasyConnect/
    
  3. 重新启动 EasyConnect。

有用户反馈这是"终极解决方案",覆盖后软件可正常启动并连接。

如果您没有旧版本 so 文件,可以尝试从 Ubuntu 18.04 Packages 下载对应 deb 包提取,或在网上搜索 libpango 1.40 版本的相关 so 文件。


三、DNS 解析问题(连接后无法上网)

如果上述步骤后能够登录,但连接后无法访问任何网页(包括外网),这是因为 EasyConnect 将 /etc/resolv.conf 的 DNS 修改为 127.0.0.1,但本地 DNS 转发服务未正常运行。

临时解决方法(连接 VPN 前执行):

sudo chattr +i /etc/resolv.conf

这会锁定 DNS 配置文件,防止 EasyConnect 修改它。但副作用是内网域名可能无法解析(需通过 IP 访问内网资源)。

更好的方法:连接 VPN 后,手动编辑 /etc/resolv.conf,将 DNS 改回可用的公共 DNS(如 223.5.5.58.8.8.8),同时保留内网 DNS。


四、内核兼容性问题(Deepin V23/V25)

如果您使用的是 Deepin V23(内核 6.6)或 V25,可能存在内核级兼容性问题:

  1. 尝试切换 5.15 LTS 内核(Deepin V23 支持多内核切换)。
  2. 或修改 GRUB 启动参数,添加 vsyscall=emulate
    sudo nano /etc/default/grub
    # 找到 GRUB_CMDLINE_LINUX_DEFAULT,在引号内追加 vsyscall=emulate
    sudo update-grub
    sudo reboot
    

五、其他排查

排查项 操作
服务器地址 确认 vpn.yw56.com.cn 可正常访问,尝试用浏览器打开该地址看是否能进入登录页。
防火墙 检查系统防火墙是否拦截了 EasyConnect:sudo ufw status,如有必要可临时关闭测试。
版本问题 尽量从您单位的 VPN 门户下载对应版本,或尝试 Deepin 应用商店中的 EasyConnect(版本 7.6.7.7)。
彻底重装 sudo apt remove --purge easyconnect 后,删除 ~/.config/EasyConnect//usr/share/sangfor/EasyConnect/,再重新安装。

推荐尝试顺序

1. 安装依赖(iptables + libdbus-glib-1-2)
      ↓
2. 降低 libpango*.so.0 版本(最关键)
      ↓
3. 尝试连接
      ↓
4. 如连上但无法上网 → 处理 /etc/resolv.conf
      ↓
5. 如仍卡在选路 → 检查内核版本 / 添加 vsyscall=emulate

如果以上方法都无效,建议联系您单位的 IT 管理员,确认 VPN 服务端是否限制了客户端版本,或尝试通过浏览器 Web 方式接入 VPN(部分深信服 SSL-VPN 支持免客户端 Web 登录)。
User: qianyeyixi@qianyeyixi-PC:$ sudo cp libpango*.so.0 /usr/share/sangfor/EasyConnect/
请输入密码:
验证成功
cp: 对 'libpango*.so.0' 调用 stat 失败: 没有那个文件或目录
qianyeyixi@qianyeyixi-PC:
$
Kimi: 这个错误是因为您当前目录下没有 libpango*.so.0 这些文件。我需要帮您获取正确版本的库文件。
这是因为您当前目录下没有这些文件。需要先从 Ubuntu 18.04 的软件仓库下载旧版本 Pango 库,再解压复制。以下是完整步骤:

# 1. 创建临时目录并进入
cd ~
mkdir -p pango-fix && cd pango-fix

# 2. 下载 Ubuntu 18.04 的旧版本 Pango 库(与 EasyConnect 兼容)
wget http://archive.ubuntu.com/ubuntu/pool/main/p/pango1.0/libpango-1.0-0_1.40.14-1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/p/pango1.0/libpangocairo-1.0-0_1.40.14-1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/p/pango1.0/libpangoft2-1.0-0_1.40.14-1_amd64.deb

# 3. 创建解压目录并解压三个 deb 包
mkdir -p extract
dpkg -X libpango-1.0-0_1.40.14-1_amd64.deb extract/
dpkg -X libpangocairo-1.0-0_1.40.14-1_amd64.deb extract/
dpkg -X libpangoft2-1.0-0_1.40.14-1_amd64.deb extract/

# 4. 将 so 文件复制到 EasyConnect 目录
sudo cp extract/usr/lib/x86_64-linux-gnu/libpango*.so.0 /usr/share/sangfor/EasyConnect/

# 5. 验证是否复制成功
ls -lh /usr/share/sangfor/EasyConnect/ | grep pango

如果 wget 下载较慢,可以换用清华镜像源:

wget https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/p/pango1.0/libpango-1.0-0_1.40.14-1_amd64.deb
wget https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/p/pango1.0/libpangocairo-1.0-0_1.40.14-1_amd64.deb
wget https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/main/p/pango1.0/libpangoft2-1.0-0_1.40.14-1_amd64.deb

复制完成后,验证 EasyConnect 是否使用新库:

ldd /usr/share/sangfor/EasyConnect/EasyConnect | grep pango

如果输出类似下面这样(路径指向 /usr/share/sangfor/EasyConnect/),说明成功:

libpangocairo-1.0.so.0 => /usr/share/sangfor/EasyConnect/libpangocairo-1.0.so.0
libpango-1.0.so.0 => /usr/share/sangfor/EasyConnect/libpango-1.0.so.0
libpangoft2-1.0.so.0 => /usr/share/sangfor/EasyConnect/libpangoft2-1.0.so.0

然后重新启动 EasyConnect 即可。 磐石关了

Reply View the author