Skip to content
/ edgetunnel Public template
forked from zizifn/edgetunnel

Running V2ray inside edge/serverless runtime

License

Notifications You must be signed in to change notification settings

hmddj/edgetunnel

Repository files navigation

Edge Tunnel (Beta)

把 V2ray 部署到 Edge/Serverless Functions 平台上。

v2ray-heroku 由于 heroku 取消免费,项目已经死了。

项目正在开发,基本可用,会有 bug。。 请定期按照 github 的提示,只同步到自己的项目。只需要在乎下图红框的提示,其他提示不要点击sync

本项目纯属技术性验证,探索最新的 web standard。不给予任何保证。

Edge Tunnel server --- Deno deploy

Edge tunnel 的服务使用了 Deno deploy.

风险提示

Deno deploy 采用 fair use policy, 翻译成中文就是看良心使用。 违反可能会封号。 按照我的理解,本项目应该是违反 fair use policy。请大家酌情使用

这里十分感谢 Deno deploy 严肃对待 web standard, 支持 HTTP request & response streaming,让 edge tunnel 成为可能。

如何部署服务

请查看下面教程。

Deno deploy Install

Edge Tunnel server --- Cloudflare Worker (敬请期待)

这个需要等 Cloudflare 发布下面的技术。 https://blog.cloudflare.com/introducing-socket-workers/

客户端 v2rayN 配置

⚠️ 由于 edge 平台限制,无法转发 UDP 包。请在配置时候,把 DNS 的策略改成 "Asis", 否则会影响速度。

DNS 科普文章

VLESS websocket 客户端配置

⚠️ 由于 edge 平台限制,无法转发 UDP 包。请在配置时候,把 DNS 的策略改成 "Asis", 否则会影响速度。

"outbounds": [
        {
            "protocol": "vless",
            "settings": {
                "vnext": [
                    {
                        "address": "***.herokuapp.com", // edge app URL 或者 cloudflare worker url/ip
                        "port": 443,
                        "users": [
                            {
                                "id": "", // 填写你的 UUID
                                "encryption": "none"
                            }
                        ]
                    }
                ]
            },
            "streamSettings": {
                "network": "ws",
                "security": "tls",
                "tlsSettings": {
                    "serverName": "***.***.com" // edge app host 或者 cloudflare worker host
                }
              }
          }
    ]

https://github.com/2dust/v2rayN 别人的配置教程参考,https://v2raytech.com/v2rayn-config-tutorial/. v2rayN

建立 cloudflare worker (可选)

const targetHost = 'xxx.xxxx.dev'; //你的 edge function 的hostname
addEventListener('fetch', (event) => {
  let url = new URL(event.request.url);
  url.hostname = targetHost;
  let request = new Request(url, event.request);
  event.respondWith(fetch(request));
});

FAQ

不支持 UDP

由于 edge 平台限制,无法转发 UDP 包。所以 DNS 策略请设置成 Asis.

不支持 VMESS

VMESS 协议过于复杂,并且所有 edge 平台都支持 HTTPS, 所以无需 VMESS.

About

Running V2ray inside edge/serverless runtime

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 58.4%
  • JavaScript 39.0%
  • HTML 2.3%
  • Other 0.3%