Centos/Ubuntu 连接EasyConnect失败的解决办法

Centos/Ubuntu 连接EasyConnect失败的解决办法

背景

最近心血来潮要学好linux,索性就直接笔记本上安装了Centos 8,在上面进行办公,但是连接内网是通过深信服的EasyConnect VPN。在连接过程中遇到了一点问题,并在深信服社区发表发帖求助无果,无奈只能自己闲暇时间摸索尝试连接,试了几次,最终找到了思路,让我搞定了,哈哈,开心,所以分享下,希望能帮到更多人。同事的Ubuntu 18上也有类似情况,也可以通过这种方式解决掉。下面是解决思路

环境信息

系统环境

软件版本

EasyConnect可以直接在server端通过浏览器下载,下面是我使用的软件版本

EasyConnect运行的时候会使用到iptables和route两个程序,没有的话需要自己安装下

连接尝试

以下只是我在尝试连接过程中个人的理解,因为此前对这个软件并不熟悉,如果理解有误请大家指出

问题排查/定位

安装成功后EasyConnect会启动一个EasyMonitor服务,查看服务

[root@linux EasyConnect]# systemctl status EasyMonitor.service 
● EasyMonitor.service - Sangfor EasyMonitor Service
   Loaded: loaded (/usr/lib/systemd/system/EasyMonitor.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-02 21:00:00 CST; 4 days ago
 Main PID: 3279 (EasyMonitor)
    Tasks: 4 (limit: 26213)
   Memory: 3.5G
   CGroup: /system.slice/EasyMonitor.service
           ├─3279 /usr/share/sangfor/EasyConnect/resources/bin/EasyMonitor
           └─3436 /usr/share/sangfor/EasyConnect/resources/bin/ECAgent --resume

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

可以看到Easyonitor运行正常,并且可执行文件在/usr/share/sangfor/EasyConnect/resources/bin路径下面

[root@linux EasyConnect]# cd /usr/share/sangfor/EasyConnect/resources/bin/
[root@linux bin]# ls
ca.crt  cert.crt  CSClient  EasyMonitor  ECAgent  svpnservice

这个目录下面有四个可执行文件

EasyMonitor,ECAgent是监听服务,监听客户端的启动,登录,连接和退出的状态

CSClient 是实际的客户端程序

svpnservice 是连接程序,客户端可以启动,但连接不上去就是因为这个程序没有启动

我们到/usr/share/sangfor/EasyConnect/resources目录下

[root@linux resources]# pwd
/usr/share/sangfor/EasyConnect/resources
[root@linux resources]# ls
app.asar  bin  conf  default_app.asar  EasyConnect.png  electron.asar  lib64  logs  shell  user_cert

在这我就不细讲了,我们只用到了两个路径

  1. 所有的日志文件在/usr/share/sangfor/EasyConnect/resources/logs路径下
  2. 调试脚本在/usr/share/sangfor/EasyConnect/resources/shell路径下

先到logs路径下查看

[root@linux logs]# pwd
/usr/share/sangfor/EasyConnect/resources/logs
[root@linux logs]# ls

服务启动的时候会生成ECAgent.log日志文件

在启动程序的时候通过tail -f ECAgent.log查看日志,在登录的时候会发现有连接的错误日志

[2020-03-03 09:08:10][E][3436][ 106][RunRegister][plugin] socket thread connect failed, sleep(500000) us
[2020-03-03 09:08:10][D][3436][ 412][HandlerHttpRequest][WebServer] http queryString : op=DoQueryService&arg1=QUERY%20QSTATE%20ALLSERVICES&callback=this.querryQstateAllServicesCallback&token=aa11985c2064f2c42ab2094ca14a2841&Guid=NULL&type=EC
[2020-03-03 09:08:10][D][3436][ 138][DoQueryService][web]qry: QUERY QSTATE ALLSERVICES
[2020-03-03 09:08:10][E][3436][ 165][ConnectDomainSock][cms] /usr/share/sangfor/EasyConnect/resources/conf/ECDomainFile domain socket connect failed, errno:111.
[2020-03-03 09:08:10][E][3436][ 114][Register]cms client connect failed.

服务在启动的时候会使用svpnservice通过ECDomainFile socket文件连接server,但是这时候并没有svpnservice 进程,所以会连接失败,查看进程信息

[root@linux logs]# ps -ef | grep EasyConnect
root      3279     1  0 Mar02 ?        00:37:13 /usr/share/sangfor/EasyConnect/resources/bin/EasyMonitor
root      3436     1  0 Mar02 ?        00:37:19 /usr/share/sangfor/EasyConnect/resources/bin/ECAgent --resume
root      3686  5303  0 12:01 tty2     00:00:02 /usr/share/sangfor/EasyConnect/EasyConnect --enable-transparent-visuals --disable-gpu
root      3692  3686  0 12:01 tty2     00:00:00 /usr/share/sangfor/EasyConnect/EasyConnect --type=zygote --no-sandbox
root      3739  3692  0 12:01 tty2     00:00:01 /usr/share/sangfor/EasyConnect/EasyConnect --type=renderer --no-sandbox --primordial-pipe-token=294FF4553195355ED350775CF8642791 --lang=en-US --enable-plugins --node-integration=true --hidden-page --enable-pinch --num-raster-threads=4 --enable-main-frame-before-activation --content-image-texture-target=0,0,3553;0,1,3553;0,2,3553;0,3,3553;0,4,3553;0,5,3553;0,6,3553;0,7,3553;0,8,3553;0,9,3553;0,10,3553;0,11,3553;0,12,3553;0,13,3553;0,14,3553;0,15,3553;1,0,3553;1,1,3553;1,2,3553;1,3,3553;1,4,3553;1,5,3553;1,6,3553;1,7,3553;1,8,3553;1,9,3553;1,10,3553;1,11,3553;1,12,3553;1,13,3553;1,14,3553;1,15,3553;2,0,3553;2,1,3553;2,2,3553;2,3,3553;2,4,3553;2,5,3553;2,6,3553;2,7,3553;2,8,3553;2,9,3553;2,10,3553;2,11,3553;2,12,3553;2,13,3553;2,14,3553;2,15,3553;3,0,3553;3,1,3553;3,2,3553;3,3,3553;3,4,3553;3,5,3553;3,6,3553;3,7,3553;3,8,3553;3,9,3553;3,10,3553;3,11,3553;3,12,3553;3,13,3553;3,14,3553;3,15,3553 --disable-accelerated-video-decode --disable-webrtc-hw-encoding --disable-gpu-compositing --service-request-channel-token=294FF4553195355ED350775CF8642791 --renderer-client-id=3 --v8-natives-passed-by-fd --v8-snapshot-passed-by-fd

这时候我们就用到了第二个路径(/usr/share/sangfor/EasyConnect/resources/shell)

[root@linux shell]# pwd
/usr/share/sangfor/EasyConnect/resources/shell
[root@linux shell]# ls
dns_service_ctl.sh  EasyConnect.sh  EasyMonitor.sh  envcheck.sh  find_browser_path.sh  list_dns.sh  logout.sh  open_browser.sh  sslcheck.sh  sslservice.sh  startrapp.sh  track_eraser.sh

看名字估计也能猜出大概的意思了(命名果然重要,但是logout.sh不是退出登录的意思,而是log output日志输出…)

我们主要用到下面几个脚本

  • envcheck.sh 环境检查,主要是检查iptables和route是否安装,默认没有输出

  • sslcheck.sh 检查ssl连接配置文件是否满足,默认没有输出

  • sslservice.sh 启动svpnservice,重要性已经不言而喻

好了,接下来就是见证奇迹的时刻。。

  1. 首先,打开一个terminal 和 EasyConnect客户端。。
  2. 输入服务器地址和用户名密码,点击客户端的Login in

  1. 在进度条大概70%的时候,在控制台启动svpnservice(/usr/share/sangfor/EasyConnect/resources/shell/sslservice.sh)

哈哈,大约70%,这个进度条嗖嗖的,时间点要卡准了(拼手速),快了的话会提示Failed to login in with this user account, for a user is online!。慢了还是无法连接

  1. 最后成功了,ECAgent.log文件也没有错误日志了内网也可以ping通了

总结

深信服客服提供的client端版本如下:

SSL VPN标准版本M7.6.0及以上版本EC客户端支持如下linux系统,暂不支持centOS系统
【Linux-Ubuntu版本范围】
Ubuntu 12.04 (32、64位)
Ubuntu 14.04 (32、64位)
Ubuntu 16.04 (32、64位)
Ubuntu 17.04 (32、64位)
Ubuntu下浏览器支持firefox\chrome
【Linux-中标麒麟 版本范围】
中标麒麟 v6.0 (32、64位)
中标麒麟 v7.0
中标麒麟下浏览器支持chrome\firefox
使用浏览器登录只能访问WEB资源,WEB资源兼容性不好,WEB资源只支持简单的静态网页,不推荐管理员发布WEB资源的

不太理解为什么不支持Centos。。

但是通过手动处理还是可以满足当前的环境的

Linux使用客户端要比其他系统上好一点,windows上如果没有网络流量的话过段时间会自动登出,但linux上不会,除非断网时间过长。。

发布了3 篇原创文章 · 获赞 0 · 访问量 1851

猜你喜欢

转载自blog.csdn.net/m0_37970252/article/details/104714571
今日推荐