V2Ray 互操作简介(之一)

in cn •  7 years ago  (edited)

V2Ray 自即日起提供了一些简易的 API,以方便其它开发人员将 V2Ray 集成在自己的项目中。话不多说,直接上代码。

首先,你需要一个配置。其中dispatcherproxyman.Outbound是必需的,一个负责分发请求,一个负责管理传出连接。另外还需要一个具体的传出协议,这里使用socks,只是为了方便测试。

    config := &core.Config{
        App: []*serial.TypedMessage{
            serial.ToTypedMessage(&dispatcher.Config{}),
            serial.ToTypedMessage(&proxyman.OutboundConfig{}),
        },
        Outbound: []*core.OutboundHandlerConfig{{
            ProxySettings: serial.ToTypedMessage(&socks.ClientConfig{
                Server: []*protocol.ServerEndpoint{{
                    Address: net.NewIPOrDomain(net.ParseAddress("162.243.108.129")),
                    Port:    1080,
                }},
            })},
        },
    }

然后根据上述的配置创建一个 V2Ray 的实例:

v, err := core.New(config)

然后就可以创建连接了:

conn, err := core.Dial(
  context.Background(),
  v,
  net.TCPDestination(
    net.ParseAddress("www.v2ray.com"),
    net.Port(80)))

这段代码表示使用我们刚刚创建的 V2Ray 实例,新建一个指向 v2ray.com:80 的传出连接。当然了,这当中还会使用配置中指定的 socks 代理。在拿到Dial返回的conn对象之后,可以进行数据传输了。

完整的代码可以在这里找到。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

我在推特上帮此博客打了个广告😄,希望很多人可以翻墙

莫愁前路无知己,天下谁人不识君

推特本身就得翻墙才能看啊

推特本身就得翻墙才能看啊