xhe-vpn
是一款可在浏览器中运行的 vpn
, 基于 WireGuard
和 WebRTC
目的是暴露在浏览器中运行的服务. 如: 点开浏览器运行一个数据统计服务, 用户通过 xhe-vpn
直接访问浏览器中的数据统计服务, 跳过了 cdn 这些中间人保证了数据安全. (这是一个很美好的愿景, 然而现在并没有做出这样的应用, 因为是浏览器中的应用需要特别考虑应用离线的问题, 难度比较大)
虽然上面说了这样的愿景, 但实际上在用的用途是爬虫, 所以接下来会以爬虫场景来介绍
xhe-vpn.2.mp4
注: 由于尚未完全开源, 建议在虚拟机中测试(要是俺有钱现在就全部开源了, 可点击底部捐赠助力开源)
git clone https://github.com/remoon-net/xhe-webvpn.git xhe-webvpn
# 进入仓库示例文件夹
cd xhe-webvpn/example/
# 下载 xhe-vpn 并赋予可执行权限
wget -O xhe-vpn https://github.com/remoon-net/xhe-vpn-binary/releases/download/v0.0.20240401/xhe-vpn
chmod x xhe-vpn
# 会使用 example/xhe-vpn.yaml 配置文件进行启动
sudo ./xhe-vpn
注入 js 最好的办法就是油猴脚本, 所以将会使用油猴脚本作为示例
// ==UserScript==
// @name vpn - Xhe Vpn
// @namespace xhe-vpn.remoon.net
// @match https://remoon.net/
// @version 0.0.1
// @author -
// @require https://unpkg.com/@remoon.net/[email protected]/dist/xhe-vpn.umd.js
// @run-at document-start
// @description 01/04/2024, 00:00:00
// @grant none
// ==/UserScript==
void (async function main() {
const net = await vpn.connect({
Key: "087ec6e14bbed210e7215cdc73468dfa23f080a1bfb8665b2fd809bd99d28379",
Route: ["192.168.4.28/24"],
Peer: [
{
Pubkey:
"c4c8e984c5322c8184c72265b92b250fdb63688705f504ba003c88f03393cf28",
PSK: "ba3ef732682972723e233daf6daaa748a6641e4c22b0bc726d94ca03b35055bb",
Auto: 5,
WHIP: ["http://127.0.0.1:2233"],
Allow: ["192.168.4.29/32"],
},
],
});
const srv = await net.listen("0.0.0.0:80", {
fetch(req) {
return new Response("ok");
},
});
await net.http_proxy("0.0.0.0:1080", {});
})();
回到服务器
curl http://192.168.4.28:80
# 应该输出 ok
# -------
# http proxy 代理模式
# -k 忽略证书错误
curl -k -x http://192.168.4.28:1080 https://remoon.net/
虽然开源是我想做的, 但终归要吃饭的嘛, 所以请谅解一下这个项目只部分开源的行为 (如果不用为生计发愁就完全开源了, 更多人参与bug也修得更快)
有能力的话可以捐赠一些, 帮助此项目发展
支付宝 | 微信 |
---|---|