(应该是)目前为止最优雅的使用深信服 EasyConnect 的方式 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
lyc8503
V2EX    程序员

(应该是)目前为止最优雅的使用深信服 EasyConnect 的方式

  lyc8503 2023-01-23 00:22:17 +08:00 13326 次点击
这是一个创建于 997 天前的主题,其中的信息可能已经有所发展或是发生改变。

由于寒假回家又开始受到流氓 EasyConnect 的困扰

于是花了点时间对着官方客户端写了个开源实现

https://github.com/lyc8503/EasierConnect

发现站里也有不少吐槽这个软件的 看来使用还比较广泛? 来分享一波

还发现这个软件的协议实现的也是有些离谱... 在 TLS 里夹带了一堆上层协议的私货

43 条回复    2023-08-11 14:17:59 +08:00
jimyag
    1
jimyag  
   2023-01-23 00:33:06 +08:00   3
之前看到打包成镜像的,https://github.com/Hagb/docker-easyconnect ,用起来也不错
OutOfMemoryError
    2
OutOfMemoryError  
   2023-01-23 00:34:14 +08:00
@jimyag #1 我司用的哦 easyconnect 方案是带手机验证码认证的。。这种好像目前无解?
mulu
    3
mulu  
   2023-01-23 00:35:32 +08:00 via Android
非常赞,有空试一下看看
mifar
    4
mifar  
   2023-01-23 01:19:13 +08:00
妈呀 这个有 mac 的 arm64 版本了,感谢 LZ 分享,做个 Docker 终于可以清净了
b4115Z4mRAz9P8EA
    5
b4115Z4mRAz9P8EA  
   2023-01-23 01:20:10 +08:00
非常赞,准备试一下
azure2023us
    6
azure2023us  
   2023-01-23 08:17:06 +08:00
有个问题:

针对 L3 资源 ,深信服客户端会自动将相应的 ip 地址 写入到 路由表,以达到分流的效果(只允许某些特定的 ip 经过 vpn )。(深信服大部分基于 web 的服务,通过 webvpn 即可实现的。只有少量需要 L3 资源,如 kms 激活,22 ssh ,3389 等)

看了半天,EasierConnect 的实现应该是提供了 sock5 代理,在分流上似乎没有做。
oott123
    7
oott123  
   2023-01-23 10:35:18 +08:00 via Android
逆向工程的?强啊
lyc8503
    8
lyc8503  
OP
   2023-01-23 11:08:10 +08:00
@mifar 这个都是开源的, 应该没必要进 Docker


@azure2023us 因为有些时候 EasyConnect 提供的路由表比较不合理(比如我们学校是把所有流量全部用 VPN), 提供了 socks 代理可以让大家自己用别的方法自定义分流. (比如 clash, sing-box...)


@oott123 不完全算吧, 只是抓包了一下网络协议分析出来的, 没做啥二进制分析
szdosar
    9
szdosar  
   2023-01-23 11:24:32 +08:00
如何输入短信验证码?
azure2023us
    10
azure2023us  
   2023-01-23 12:16:10 +08:00 via Android
@lyc8503 如果不分流,那么所有流量都走 vpn, 导致的问题也很多,比如挖矿的流量,视频流量等。
azure2023us
    11
azure2023us  
   2023-01-23 12:18:31 +08:00 via Android
@lyc8503 应该是管理员没有设置好,或者他们根本就没有研究过。可以根据角色设置资源访问策略,再将角色分配给相应的用户,这样在 cli 里 输入 route print 就可以看到路由表信息。
vivisidea
    12
vivisidea  
   2023-01-23 12:38:05 +08:00
厉害,我一直好奇,抓包分析下协议就能写客户端是怎么做到的。。能分享下细节么
qweqqwe
    13
qweqqwe  
   2023-01-23 13:02:52 +08:00
是不是路由器上面也可以用了?
lyc8503
    14
lyc8503  
OP
   2023-01-23 13:07:50 +08:00
@szdosar 如果登录过程中需要短信验证码程序会提示你输入的.

@azure2023us 我的想法是用其他代理软件的"规则"模式进行白名单筛选, 毕竟也不能直接把 socks5 代理设置为系统代理. 比如使用浏览器插件的 SwitchyOmega 分流内网站点, Xshell 可以给每个主机设置代理, clash 可以指定某个 ip 段走某个特定代理上游. 我设想的是肯定不会出现"所有流量都走 vpn"的场景. (然而我们学校本来的默认设置就是所有流量走 vpn, 不太合理)

@vivisidea 可以 GitHub 上邮件联系我.
lyc8503
    15
lyc8503  
OP
   2023-01-23 13:09:01 +08:00   1
@qweqqwe 可以的 编译的时候考虑到了这种场景
Senorsen
    16
Senorsen  
   2023-01-23 15:24:05 +08:00 via iPhone
高手,厉害了
kenvix
    17
kenvix  
   2023-01-23 15:42:18 +08:00   1
大赞。目前 Docker 的 Easyconnect 在 windows 上使用比较难受,同时 VM+NAT 也导致效率比较低,这个应该会好多了
Rugel
    18
Rugel  
   2023-01-23 16:09:18 +08:00
太可以了,比 docker 的方案优雅很多
starrycat
    19
starrycat  
   2023-01-23 18:11:34 +08:00 via Android
悲剧,有 TOTP 动态口令的不行
Polygene
    20
Polygene  
   2023-01-23 18:21:15 +08:00 via iPhone
没想到会在这里遇见南带校友牛逼
vvhy
    21
vvhy  
   2023-01-23 18:38:31 +08:00
好,马上去试试,终于可以摆脱 difficonnect 了
razaro
    22
razaro  
   2023-01-23 19:19:22 +08:00   1
感觉现在很多高校都换 webvpn 了
lyc8503
    23
lyc8503  
OP
   2023-01-23 21:09:26 +08:00
@kenvix 我就是因为主力 Windows 被迫用 vps 转发, 不爽了特别久 hhh

@starrycat 短信验证码已经支持了, 我还没遇到过 TOTP 登录的服务器, 可以 gh 上发 issue 贴出 log (注意移除敏感信息.)

@Polygene 可以 GitHub 相互关注一下

@razaro 我校最近的 webvpn 实用性比较低...
ncepuzs
    24
ncepuzs  
   2023-01-23 21:40:43 +08:00
大二就有这种工程能力,啥时候接触计算机和编程的?
kenvix
    25
kenvix  
   2023-01-23 22:17:36 +08:00
@ncepuzs 在 v2 初二都不奇怪
Cu635
    26
Cu635  
   2023-01-24 09:05:49 +08:00
小心被告侵权,甚至是被告刑事犯罪。
f0rger
    27
f0rger  
   2023-01-24 10:24:40 +08:00 via iPhone
我们已经转向 atrust 了,等一个解决方案,求大佬
lyc8503
    28
lyc8503  
OP
   2023-01-24 11:08:08 +08:00 via Android
@ncepuzs 个人兴趣爱好~

@Cu635 了解, 谢谢
hunkhygge
    29
hunkhygge  
   2023-01-24 15:31:32 +08:00
奇怪,为啥我点了 exe 之后啥都没有?
ghostwind
    30
ghostwind  
   2023-01-24 15:59:42 +08:00
@lyc8503 非常厉害

sms 验证之后可以改成这样
if !(strings.Contains(string(buf[:n]), "验证码已发送到您的手机") || strings.Contains(string(buf[:n]), "The passcode has been sent"){

}
ghostwind
    31
ghostwind  
   2023-01-24 16:01:31 +08:00
@hunkhygge 因为你用的是 cli 的模式,终端下执行就可以了
RiverTwilight
    32
RiverTwilight  
   2023-01-24 16:49:58 +08:00   1
这个软件原版在 Windows 上是究极流氓,写入注册表、系统服务、开机自启、到处创建文件夹,正常方法都没办法卸载干净。
yicong135
    33
yicong135  
   2023-01-24 16:52:44 +08:00
证书登录有解决方案么
MeiJiayun
    34
MeiJiayun  
   2023-01-30 10:10:48 +08:00
弱弱的问句,如何使用。。。
ohayoo
    35
ohayoo  
   2023-01-30 13:53:44 +08:00
求助大佬,系统 Windows11 22H2
cpu AMD Ryzen 7 5800H
下载 TestBuild14 里面的 EasierConnect-windows-amd64.zip ,解压双击闪一下就没了,可咋整?
ohayoo
    36
ohayoo  
   2023-01-31 13:50:03 +08:00
@ohayoo 自问自答,Windows 下要在 dos 界面上运行
wuzhewuyou
    37
wuzhewuyou  
   2023-02-04 17:05:32 +08:00
大佬,这边是使用短信验证码的。查看获取的网页,本人的是
验证码已发送到手机
更改后
if !strings.Contains(buf.String(), "验证码已发送到手机") && !strings.Contains(buf.String(), "<USER_PHONE>")
然后输入验证码,得到验证成功 欢迎访问 页面,修改提示后运行
twfId = string(regexp.MustCompile(`<TwfID>(.*)</TwfID>`).FindSubmatch(buf.Bytes())[1])
这里出错,找不到 TwfID ,继续使用前面生成的 twfid ,运行
// DnsDataRegexp := regexp2.MustCompile("(?<=<Dns dnsserver=\"\" data=\")[0-9A-Za-z:;.-]*?(?=\")", 0)
// DnsDataRegexpMatches, _ := DnsDataRegexp.FindStringMatch(resUrlDecodedValue)

// processDnsData(DnsDataRegexpMatches.String(), debug)
这里出现处理 dns 出错,继续注释掉运行

2023/02/04 16:40:59 query ip: wrote 64 bytes
00000000 00 00 00 00 61 65 37 63 37 34 64 36 65 38 38 37 |....ae7c74d6e887|
00000010 30 39 33 32 35 61 35 37 65 32 33 64 37 33 65 35 |09325a57e23d73e5|
00000020 36 66 66 00 61 36 65 38 33 34 34 31 34 30 64 36 |6ff.a6e8344140d6|
00000030 61 31 66 35 00 00 00 00 00 00 00 00 ff ff ff ff |a1f5............|
2023/02/04 16:41:00 query ip: read 36 bytes
00000000 00 00 00 00 0a e6 14 03 00 1a a1 b5 0a e6 15 fa |................|
00000010 00 00 00 00 00 00 00 00 3b fa ef ca 18 7f 00 00 |........;.......|
00000020 40 f4 35 43 |@.5C|
2023/02/04 16:41:00 SMS Code required
exit status 1

最终还是验证失败,基本流程就这样
lsdxl
    38
lsdxl  
   2023-02-10 16:47:38 +08:00
有用过深信服的融合 4A 的吗 这玩意打开只能通过 ffcs4a_cmd 来调用例如 filezilla 连接 sftp 或者 ssh 或者打开网页页面访问,通过列入 nginx 或者 webpack-dev-server 代理都没法掉通 导致前端开发本地没法测试 有解不
athenasylph
    39
athenasylph  
   2023-05-09 22:56:10 +08:00
@f0rger +1 也蹲一个 atrust 的方案
ddonano
    40
ddonano  
   2023-06-05 10:15:44 +08:00
带短信验证码 的,如何使用啊 没看明白
whatv3
    41
whatv3  
   2023-06-08 14:32:29 +08:00
问一个蠢问题,运行后,一个浏览器,显示“Init ECAgent env successfully. You can login to vpn now.” 我该如何使用呢。
Hagb
    42
Hagb  
   2023-07-29 18:16:14 +08:00 via Android   2
@f0rger @athenasylph https://github.com/Hagb/docker-easyconnect 最近做了 atrust 容器化支持
codingbody
    43
codingbody  
   2023-08-11 14:17:59 +08:00
请教一下,如何把 docker-easyconnent 暴露出来的 http 和 socks 代理 配置到 surge 中。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5249 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 33ms UTC 09:12 PVG 17:12 LAX 02:12 JFK 05:12
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86