___|  _ \   |  |    |   |_ _|\ \     / ____|
 |     |   |  |  |    |   |  |  \ \   /  __|
 |   | |   | ___ __|  ___ |  |   \ \ /   |
\____|\___/     _|   _|  _|___|   \_/   _____| 

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

V2Ray 互操作简介(之一)

BY: @v2ray | CREATED: Jan. 10, 2018, 8:33 p.m. | VOTES: 4 | PAYOUT: $0.78 | [ VOTE ]

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对象之后,可以进行数据传输了。

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

TAGS: [ #cn ] [ #proxy ] [ #v2ray ]

Replies

@hatecpc | Jan. 19, 2018, 3:33 a.m. | Votes: 0 | [ VOTE ]

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

@daobuyuanren | Jan. 19, 2018, 3:18 p.m. | Votes: 0 | [ VOTE ]

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

@yangguang | June 6, 2018, 7:43 a.m. | Votes: 0 | [ VOTE ]

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

@yangguang | June 6, 2018, 7:43 a.m. | Votes: 0 | [ VOTE ]

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

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>