
这是一个基于 Baileys 的代码片段,允许您通过两个 WhatsApp 账号来传输 TCP 数据。
这在不同的场景下都能派上用场,例如,网络运营商提供无限 WhatsApp 数据流量的情况,或者在飞机上也能获得无限社交网络数据流量的情况。
它使用 Baileys,因为这是一个基于 WebSocket 的多设备 WhatsApp 库,因此将来可以在 Android 上使用(例如通过 Termux)。
其思路是,在服务器端设置一个代理,结构如下:[客户端(受限访问)-> WhatsApp -> 服务器 -> 代理 -> 互联网]
提前致歉,因为 JavaScript 并不是我的主要编程语言 :/
仅供教育目的使用。
它将 TCP 网络数据包通过 WhatsApp 文本和文件消息发送出去,根据字符数量将数据包拆分成不同的文本消息或文件。
为了避免被 WhatsApp 超时限制,默认情况下每条消息限制为 20k 字符,目前这在 wasocket.js 中是硬编码的。 我已经进行了多次测试,任何低于此限制的发送量可能会导致因发送过多消息而被封禁,任何超过 80k 的则可能超时。
如果网络数据包超过限制(默认 20k 字符),且文件功能启用,则会作为文件发送。另外,如果多个网络数据包被缓存,则使用同样的标准。
文件消息作为二进制文件发送。TCP 响应会用分隔符拼接,并使用 brotli 压缩以减少数据使用。
它会缓存 TCP 套接字响应,将其分组,以在一条消息中发送最大量的数据,从而减少消息数量,提高速度,并降低被封禁的概率。
之前:(不使用文件,也不缓存响应)
curl -x localhost:12345 https://www.youtube.com
- 50-80 条消息
- 30-40 秒
之后:(使用文件和响应缓存)
curl -x localhost:12345 https://www.youtube.com
- 6-8 条消息
- 7-15 秒
如果您不允许发送文件,可以在启动服务器和客户端时使用 --disable-files 标志来禁用此功能。
我在南美洲旅行时产生了这个想法。那里的运营商通常限制网络数据流量,只给很少的 GB 数,但 WhatsApp 通常是无限的。我试图创建这个库,因为当时没有找到任何可用的。
您必须拥有两个 WhatsApp 账号,一个用于服务器,一个用于客户端。 您可以转发本地端口,也可以使用外部代理。
在您的服务器上克隆仓库并安装 node 依赖。
cd path/to/wa-tunnelnpm install然后,您可以使用以下命令启动服务器,其中 port 是代理端口,host 是您要转发的代理主机地址。number 是客户端 WhatsApp 号码,包含国家代码,不带 + 号。
npm run server host port number
您可以使用如下本地代理服务器:
npm run server localhost 3128 12345678901
或者,您也可以使用如下普通代理服务器:
npm run server 192.168.0.1 3128 12345678901
在您的本地机器上克隆仓库并安装 node 依赖。
cd path/to/wa-tunnelnpm install然后,您可以使用以下命令启动客户端,其中 port 是您将要连接的本地端口,number 是服务器 WhatsApp 号码,包含国家代码,不带 + 号。
npm run client port number
例如:
npm run client 8080 1234567890
首次运行脚本时,Baileys 会要求您使用 WhatsApp 应用扫描二维码,之后会话将被保存以供后续使用。
脚本可能会崩溃,这很正常,只需重新启动脚本,您的客户端/服务器就会准备就绪!
一旦客户端和服务器都就绪,您可以使用 curl 进行测试,见证奇迹的发生。
curl -v -x proxyHost:proxyPort https://httpbin.org/ip
使用示例命令则如下:
curl -v -x localhost:8080 https://httpbin.org/ip
它也已经过普通浏览器(如 Firefox)的测试,速度较慢,但可以使用。
您还可以转发其他协议端口,比如 SSH,只需如下设置服务器:
npm run server localhost 22 12345678901
然后在客户端上通过以下命令连接到服务器:
ssh root@localhost -p 8080
要在 Android 上使用,您可以通过 Termux 来运行,使用以下命令:
pkg update && pkg upgrade
pkg install git nodejs -y
git clone https://github.com/aleixrodriala/wa-tunnel.git
cd wa-tunnel
npm install
使用此库可能会导致您的 WhatsApp 账号被封禁,请使用临时号码或自行承担风险。