如何创建像 Hola VPN 那样的 P2P Javascript VPN?

如何创建像 Hola VPN 那样的 P2P Javascript VPN?

我一直在尝试构建一个完全在浏览器中运行的 P2P VPN,主要使用 Javascript,但大多数情况下都是插件,例如 Firefox 和 Chrome 中的插件。基本上与 Hola VPN 相同。

让我困惑的是,由于xmlhttprequest's未经访问服务器/网站明确授权,它无法进行跨域请求,而这是我可以重定向/代理来自另一个对等方的请求的唯一方法。Hola VPN 如何可能规避这种情况?有人知道吗?

请注意,我并不是想提出一个开放式的问题,但这个困境只有一两个答案,但如果您这么认为,请告诉我是否应该进行编辑以使其不那么开放。

答案1

我不确定 Hola 做了什么,但我认为最好的选择可能是将您的 VPN 域添加到扩展权限中,然后使用 chrome.webRequest 和 xmlhttprequest 将您的请求发送到那里。

这样您就可以发送请求,但由于 CORS 和权限问题,P2P VPN 的另一端无法以同样的方式实现。Chrome 应用曾经支持原始套接字,但现已弃用。

使用当前的浏览器 API,您将制作一个本机应用程序。您可以保留一个通过本机消息传递进行通信的浏览器扩展,或者完全放弃扩展并将两个部分合并到应用程序中(这就是我们对 P2P VPN PenguinProxy 所做的)。

相关内容