通过 http proxy server 暴露浏览器资源, 基于 webrtc, 是直连, 无需二次中转
具体请看视频演示: https://youtu.be/czWW5xlfcS8
当前测试版目标用户为使用 WireGuard 的 linux 用户 核心源码暂未公开, 建议在虚拟机中尝试. xhe-vpn 目前仅支持 linux(windows 端需求反响强烈的话速度肝出 windows 端)
git 仓库: https://github.com/remoon-net/xhe-webvpn 社区讨论: https://github.com/remoon-net/xhe-webvpn/discussions 问题反馈: https://github.com/remoon-net/xhe-webvpn/issues
相比上次的版本去除了中心化, 虽然导致了配置更加繁琐, 但独立部署更简单了
1
danbai 260 天前 via Android
这个是用来抓包吗
|
2
coinbase 260 天前
cloudflare 防得住吗
|
3
cherryas 260 天前 6
不会爬虫的觉得很酷,会爬虫的觉得有点莫名其妙
|
4
musi 260 天前
我找个抓包工具不行吗?
|
5
R18 260 天前
不是很懂,你的这个东西的场景在哪里,原生不是支持通过 browserWSEndpoint 来访问浏览器资源吗
|
6
macaodoll 260 天前 via Android
自己搭个 HTTP 代理过滤流量?与浏览器插件有何区别?如果说访问 HTTP 请求,这块有现成的东西可以用,而且比你这套方便成熟
|
9
iyiluo 260 天前
浏览器爬虫效率很低吧,免去了解密,但是效率是真低啊,只能爬小批量的数据
|
10
godleon 260 天前
演示视频里的电脑系统 ui 是什么
|
12
Jesmora 260 天前
啊这,一个好点的 IP 开个 tun 也能过 cf 啊,再不济 py 库有个过 cf 的啊
|
13
RangerWolf 260 天前
@Jesmora py 哪个库能过 CF ?
|
14
LevineChen 260 天前
没明白, chromium 本身不就提供远程访问的接口吗? 你这个绕了一圈是解决了什么特别的问题吗
|
15
0o0O0o0O0o 260 天前 via iPhone
如果重点是浏览器与 VPN ,https://github.com/tailscale/tailscale/issues/3157 https://twitter.com/bradfitz/status/1451423386777751561 更酷更方便,是更应该研究的方向
如果重点是过 cloudflare ,实际上你的设计中主要是借用 IP ,有太多方式可以将一台 Linux 电脑的 IP 共享给远程的应用程序使用,同样不需要 root 权限 如果重点是方便应用程序自动化控制浏览器,容器与 selenium puppeteer playwright 更优雅也有更繁荣的生态,例如 https://github.com/FlareSolverr/FlareSolverr |
16
jones2000 260 天前
”进化“ 不应该是什么配置都不用设,自适应最佳配置, 直接就能用。
|
17
james122333 260 天前 via Android
firefox 有 marionette
|
18
sofukwird OP @0o0O0o0O0o
1. 浏览器与 VPN ,是的这很酷,我实现了 2. 不是通过借 IP 的方式过 cloudflare ,而是接管通过了真人验证的浏览器页面来过 3. 这个演示的重点是通过 http proxy 和应用程序集成,不依赖 puppeteer (这点蛮难解释,过段时间我把一个项目改造后开源就更清楚这是怎么做的 |
19
ll5270 260 天前
没看明白用途是啥
|
20
trigged 260 天前
基于 devtools-protocol ?
|
21
Pythoner666666 260 天前
试试 RPA ,我觉得没有比这个更好用的了。
|
22
flyqie 260 天前 via Android 4
你这项目是给黑灰产用的吧。。
稍微靠谱点的爬虫项目哪有用这种模式的。。puppeteer 的很多优势你这种架构根本做不了。。 被黑灰产拿来改改当肉鸡用倒是很合理。。 |
23
c1985382 260 天前
@Pythoner666666 一般 RPA 用啥软件?
|
25
itIsUnbelievable 260 天前
@sofukwird 是浏览器端和你本机建立了 wg 通道吗?请求所有网站都可以不用 cookie 吗?
可以大麦抢票吗 |
26
kuanat 260 天前 2
如果我没理解错的话,这个实现的是挺厉害的,只是应用场景非常受限。
从功能上说,相当于被注入的页面向外提供 http 代理,该代理会复用浏览器环境,也就继承了相关 cookies 。 使用这个方案,相比基于 webdriver/cdp 的方式,可以省去提取 cookies 、模拟登录的过程,通过人工在图形界面上操作一次即可。 比较容易想到的局限在于: - 网站有多处或者基于访问频率的人机检测,就需要大量人工介入(甚至难以介入,因为通过代理触发的人机检测并不会显示在浏览器界面上) - 目标接口需要额外访问参数,一般反爬措施都会利用 vmp 混淆 js 代码来生成可以被服务器后端验证的动态参数 如果我说错了还请 OP 指正一下,因为我确实想不到更好的应用场景了。 |
27
stinkytofu 260 天前
@kuanat #26 你这么一解释我懂了, 就相当于软件逆向时注入进程了, 通过代理,可以使用网页当前所有的资源和权限。 那这个应用场景也很大啊, 特别是基于当前网页做一些功能增强,逆向啥的, 非常适合搞灰产。
|
28
sml2h3 260 天前 2
可以考虑走 chrome remote debugging 的方式哈,比如 DrissionPage 这个库~
|
30
sml2h3 259 天前 1
@Rache1 正常呀,因为这个方式好用而且很多人不知道哇,基本上没有指纹,秒过各大防御,API 也是 chrome 原生 API ,至于 DrissionPage 这个 py 库嘛也是一股清流,文档写的真好
|
31
sofukwird OP @kuanat 是的,就是这样(您说的好清晰呀)。基于访问频率的检测确实难过,目前是降低访问频率避免触发
初始的应用场景是通过浏览器向其他人提供服务,如 p2p 文件共享,p2p 聊天,p2p 游戏联机 |
33
07aPzknB16ui9Cp3 259 天前
屌的,看来 WebRTC 能实现不少神奇效果
|
35
cdlnls 259 天前
我之前也做过一个类似的浏览器爬虫。。。
|
36
cdlnls 259 天前
实现方式不一样,使用方式不一样,都是基于浏览器的
|
37
Jirajine 259 天前
@kuanat #26 这个应该等同于把浏览器里的 fetch 通过 rpc 暴露出来,简单点实现几十行代码都不用。其实意义不大,浏览器本身就可以通过 api 控制,那些 abuse as a service 厂商搞的花活比这恶心多了。
|
38
qweruiop 259 天前
很叼,一看就是专业的。这个场景肯定是。。。
|
39
rozbo 259 天前
没明白什么优势,如果是浏览器环境,那个也没有处理浏览器指纹呀,直接用 playwright/puppeteer 不就直接完了?
反正都是需要处理指纹和特征的。 怎么说呢,小白用不了,大佬没必要用。。。小项目用不上,大项目也用不了。。 |
41
march1993 259 天前
这玩意儿和 https://github.com/chromedp/chromedp 有什么优势。。
|
43
gongquanlin 259 天前
|
48
sofukwird OP @0o0O0o0O0o 原有的老项目使用 http proxy 改造成功了
项目公开: https://github.com/remoon-cn/bbq 我总结出来的优势有以下: http proxy 统一了接口地址, 不需要使用 chromdp 转来转去, 直接通过代理以用户身份访问接口 程序里也不用引入爬虫相关的库, 使得代码量大大精简 |
49
0o0O0o0O0o 256 天前 1
> 使用这个方案,相比基于 webdriver/cdp 的方式,可以省去提取 cookies 、模拟登录的过程,通过人工在图形界面上操作一次即可
不这么认为,基于 webdriver/cdp 的方式一样可以让人工在图形界面介入,不要 headless 就可以 - https://github.com/go-rod/rod/blob/main/lib/examples/launch-managed/main.go#L27 - https://github.com/go-rod/rod/blob/main/lib/examples/use-rod-like-chrome-extension/main.go > 相当于被注入的页面向外提供 http 代理,该代理会复用浏览器环境,也就继承了相关 cookies cdp 方式注入一个 js 然后用别的语言暴露 API 不是更方便更强大吗?同样可以复用浏览器环境,同样可以暴露成 http proxy 。选择的库包装得够好就会让“程序里也不用引入爬虫相关的库, 使得代码量大大精简”没有太多说服力。 所以这个项目在我眼里定位到爬虫相关有点奇怪,但我对 OP 的浏览器中的 VPN ( /t/961694 ) 很感兴趣,我觉得 OP 也可以往 VPN 与浏览器结合的常规应用上考虑 |
50
james122333 254 天前 via Android
|