返回列表 發帖

V2Ray使用教程——基础概念2

本帖最後由 角色 於 2019-2-24 13:19 編輯

在《V2Ray使用教程——基础概念1》,所有traffic都通过VN1的outbound送到remote VN2的inbounds,对于内地的网站都一样,这不够人性化。

这幅帖子讲述在VN1加上一个routing的object,那么就可以依据hostname and IP address去分流,网络概念图如下:

附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

本帖最後由 角色 於 2019-2-23 23:23 編輯

现在我们有两个outbounds,第一个是proxy outbound,第二时是direct outbound。
  1.    "outbounds": [
  2.      {
  3.        "protocol": "vmess",
  4.        "settings": {
  5.          "vnext": [
  6.            {
  7.              "address": "VN2 IP address or hostname",
  8.              "port": 10086,
  9.              "users": [
  10.                {"id": "UUID" }
  11.              ]
  12.            }
  13.          ]
  14.        }
  15.      },
  16.      {
  17.        "protocol": "freedom",
  18.        "tag": "direct",
  19.        "settings": {}
  20.      }
  21.    ]
複製代碼

TOP

那么我们routing有什么要求?

1. Same LAN address (private address) should go to the "direct" path.
2. Mainland China website hostname should go to the "direct" path.
3. Mainland China IP address should go to the "direct" path.
4. Otherwise go to the proxy path. (By default, it will go to the first outbound if the tag is not specified)

the "routing" object contains:
  1.   "routing": {
  2.     "domainStrategy": "IPIfNonMatch",
  3.     "rules": [
  4.       {
  5.         "type": "field",
  6.         "ip": ["geoip:private"],
  7.         "outboundTag": "direct"
  8.       },
  9.       {
  10.        "type": "field",
  11.         "domain": [ "geosite:cn"],
  12.         "outboundTag": "direct"
  13.       },
  14.       {
  15.         "type": "field",
  16.         "ip": ["geoip:cn"],
  17.         "outboundTag": "direct"
  18.       }
  19.     ]
  20.   }
複製代碼
.

TOP

整个VN1的configuration file,config.json contains
  1. {
  2.   "inbounds": [
  3.     {
  4.       "port": 1081,  
  5.       "protocol": "socks"
  6.     }
  7.   ],
  8.   "outbounds": [
  9.     {
  10.       "protocol": "vmess",
  11.       "settings": {
  12.         "vnext": [
  13.           {
  14.             "address": "VN2 IP address or hostname",
  15.             "port": 10086,
  16.             "users": [
  17.               {"id": "UUID" }
  18.             ]
  19.           }
  20.         ]
  21.       }
  22.     },
  23.     {
  24.       "protocol": "freedom",
  25.       "tag": "direct",
  26.       "settings": {}
  27.     }
  28.   ],
  29.   "routing": {
  30.     "domainStrategy": "IPIfNonMatch",
  31.     "rules": [
  32.       {
  33.         "type": "field",
  34.         "ip": ["geoip:private"],
  35.         "outboundTag": "direct"
  36.       },
  37.       {
  38.        "type": "field",
  39.         "domain": [ "geosite:cn"],
  40.         "outboundTag": "direct"
  41.       },
  42.       {
  43.         "type": "field",
  44.         "ip": ["geoip:cn"],
  45.         "outboundTag": "direct"
  46.       }
  47.     ]
  48.   }  
  49. }
複製代碼

TOP

测试结果:

With additional outbound "direct" and routing object, the performance tests are as follows:

1. private LAN NAS can be reachable.
2. Youtube, Facebook can be reachable
3. CCTV5 and 爱奇艺 can be watched smoothly

Both CCTV5/爱奇艺 and YouTube/Facebook can be watched simultaneously.

TOP

再回看Routing,如果每个IP或者domain都分开写,那么我们会重复很多,回看V2Ray官网的结构,我们可以把IP组合起来在[]里,那么就更加简洁,效果也一样。

结合起来的routing是:
  1.   "routing": {
  2.     "domainStrategy": "IPIfNonMatch",
  3.     "rules": [
  4.       {
  5.        "type": "field",
  6.         "domain": [ "geosite:cn"],
  7.         "outboundTag": "direct"
  8.       },
  9.       {
  10.         "type": "field",
  11.         "ip": [
  12.           "geoip:cn",
  13.           "geoip:private"
  14.         ],
  15.         "outboundTag": "direct"
  16.       }
  17.     ]
  18.   }
複製代碼
.

TOP

返回列表