V2Ray 互操作简介(之一)
V2Ray 自即日起提供了一些简易的 API,以方便其它开发人员将 V2Ray 集成在自己的项目中。话不多说,直接上代码。
首先,你需要一个配置。其中dispatcher
和proxyman.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
对象之后,可以进行数据传输了。
完整的代码可以在这里找到。
我在推特上帮此博客打了个广告😄,希望很多人可以翻墙
莫愁前路无知己,天下谁人不识君
推特本身就得翻墙才能看啊
推特本身就得翻墙才能看啊