1. 小结

现在对本章作个总结。

1.1. 配置文件格式

V2Ray 的配置文件格式就像这样:

  "log": {},
  "inbound": {},
  "outbound": {},
  "inboundDetour": [],
  "outboundDetour": [],
  "routing": {},
  "transport": {},
  "dns": {},
  "policy": {},
  "stats": {},
  "api": {},

总的来说,V2Ray 的配置有 11 个项,每个项都可以展开成具体的配置。这些配置项当中,本章都有涉及到前面 6 项,关于 dns 和 transport 将在后文说明。而 api、policy 和 stats 的内容我不考虑出,对这些感兴趣的仔细研究手册吧。

要深刻理解,V2Ray 只是一个转发数据的软件,无论是客户端还是服务器,只要它从 inbound(Detour) 当中接收到数据包,不管 V2Ray 对这些数据包做了什么(加密、解密、协议转换等),到最后肯定是要把这些数据包从 outbound(Detour) 发出去。

1.2. inbound / outbound 和 inboundDetour / outboundDetour 的区别

配置当中有 inbound 和 inboundDetour 以及 outbound 和 outboundDetour,有部分网友对此可能比较迷惑,我这里说明一下。inbound 和 inboundDetour 都是传入,outbound 和 outboundDetour 都是传出。先来看传入,inbound 和 inboundDetour 的格式形如:

"inbound": {
  "port": 1080,
  "listen": "127.0.0.1",
  "protocol": "协议名称",
  "settings": {},
  "streamSettings": {},
  "allowPassive": false,
  "tag": "标识"
},
"inboundDetour": [
  {
    "port": 2080,
    "listen": "127.0.0.1",
    "protocol": "协议名称",
    "settings": {},
    "streamSettings": {},
    "allowPassive": false,
    "tag": "标识",
    "allocate": {
      "strategy": "always",
      "refresh": 5,
      "concurrency": 3
    }
  },
  {
    "port": 3080,
    "listen": "127.0.0.1",
    "protocol": "协议名称",
    "settings": {},
    "streamSettings": {},
    "allowPassive": false,
    "tag": "标识",
    "allocate": {
      "strategy": "always",
      "refresh": 5,
      "concurrency": 3
    }
  }
]

可以很明显地看出来,inbound 和 inboundDetour 基本是一样的,只不过 inboundDetour 是 inbound 的集合。还有一点不同的是 inboundDetour 多了一个 allocate 参数,这是只有在动态端口才会用到的参数,如果不配置动态端口 inboundDetour 和 inbound 无异。

即有两点不同:

  • 配置中 inbound 只能并且必须设置一个传入的配置,而 inboundDetour 可以设置任意多个传入配置
  • inboundDetour 的传入配置多了一个给动态端口用的 allocate 参数

接着是传出,outbound 和 outboundDetour 格式形如:

"outbound": {
  "sendThrough": "0.0.0.0",
  "protocol": "协议名称",
  "settings": {},
  "tag": "标识",
  "streamSettings": {},
  "proxySettings": {
    "tag": "another-outbound-tag"
  }  
},
"outboundDetour": [
  {
    "sendThrough": "0.0.0.0",
    "protocol": "协议名称",
    "settings": {},
    "tag": "标识",
    "streamSettings": {},
    "proxySettings": {
      "tag": "another-outbound-tag"
    }
  },
  {
    "sendThrough": "0.0.0.0",
    "protocol": "协议名称",
    "settings": {},
    "tag": "标识",
    "streamSettings": {},
    "proxySettings": {
      "tag": "another-outbound-tag"
    }
  }
]

单纯从配置格式来看,outbound 和 outboundDetour 没有任何区别。但是实际上 outbound 和 outboundDetour 也有两点不同:

  • 配置中 outbound 只能并且必须设置一个传出的配置,而 outboundDetour 可以设置任意多个传出配置(实际上不可能任意多)
  • 当没有配置路由规则或者路由没有匹配的情况下,默认由 outbound 将数据包发出去

在上面给出的传入和传出配置格式当中,有一些参数不曾提到过,主要是因为:

  • 一般情况下使用 V2Ray 默认设置即可
  • 将会在后面的章节介绍

1.3. 协议

V2Ray 的传入协议有 HTTP、SOCKS、VMess、Shadowsocks、Dokodemo-door;传出协议有 VMess、Shadowsocks、Blackhole、Freedom、SOCKS。

在 inbound(Detour) 和 outbound(Detour) 当中,无论使用了什么协议,inbound(Detour) 或者 outbound(Detour) 的配置格式都是一样的,区别只在于不同的协议对应的 settings 内容不一样。


1.4. 更新历史

  • 2018-04-05 补充

results matching ""

    No results matching ""