使用 V2ray 中转服务器流量

简介

一般我们使用 v2ray 服务器,都是直接连接到这个服务器上,进行数据代理转发。就是常用的 客户端 => v2ray 服务器 模式, 其实可以 客户端 => v2ray 中转服务器1 => v2ray 中转服务器2 => v2ray 服务器, 可以设置 N 个服务器,但设置太多一定会影响访问速度,所以不宜设置太多。 本文仅限技术交流之用,大家请勿非法滥用。

我们来看看如何配置 v2ray 中转服务器。

v2ray

我推荐使用 docker 安装启动,非常简单, 中转服务器和目标服务器都需要安装。

1
sudo docker run -it -d -v /etc/v2ray:/etc/v2ray -p xxx:yyy v2ray/official v2ray -config=/etc/v2ray/config.json
  • xxx - 对外客户端开放的端口
  • yyy - docker 内部 v2ray 的端口

v2ray 中转服务器配置

我这边是一个 v2ray 中转服务器的配置

/etc/v2ray/config.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
{
    "inbound": {
        "port": yyy,          // docker 内部 v2ray 的端口
        "protocol": "vmess",  // 我这里使用的 vmess 协议,也可以使用其他协议
        "settings": {
            "clients": [
                {
                    "id": "uid-xxxxxxxxxxxxx", // vmess 协议需要配置的 uid
                    "alterId": 100
                }
            ]
        }
    },
    "outbound" : {
      "mux" : {
        "concurrency" : 8,
        "enabled" : true
      },
      "protocol" : "vmess", // 目标 v2ray 服务器的协议
      "settings" : {
        "vnext" : [
          {
            "users" : [
              {
                "id" : "uid-yyyyyyyyyyyyy", // 目标 v2ray 服务器的 vmess 协议需要配置的 uid
                "alterId" : 64  // 和目标服务器保持一致
              }
            ],
            "address" : "xxx.com", // 目前 v2ray 服务器的ip 地址或域名
            "port" : xxx_1  // 目标 v2ray 服务器的开放的对外端口
          }
        ]
      },
      "streamSettings": {
        "network": "tcp", // 记得配置 tcp
        "security": "none",
        "tlsSettings": {},
        "tcpSettings": {},
        "httpSettings": {},
        "kcpSettings": {
          "mtu": 1350,
          "tti": 50,
          "uplinkCapacity": 100,
          "downlinkCapacity": 100,
          "congestion": false,
          "readBufferSize": 2,
          "writeBufferSize": 2,
          "header": {
            "type": "none"
          }
        },
        "wsSettings": {},
        "quicSettings": {}
      }
    },
    "inboundDetour": [],
    "outboundDetour": [
        {
          "protocol": "blackhole",
          "settings": {},
          "tag": "blocked"
        }
      ],
    "routing": {
      "strategy": "rules",
      "settings": {
        "rules": [
          {
            "type": "field",
            "ip": [
              "0.0.0.0/8",
              "10.0.0.0/8",
              "100.64.0.0/10",
              "127.0.0.0/8",
              "169.254.0.0/16",
              "172.16.0.0/12",
              "192.0.0.0/24",
              "192.0.2.0/24",
              "192.168.0.0/16",
              "198.18.0.0/15",
              "198.51.100.0/24",
              "203.0.113.0/24",
              "::1/128",
              "fc00::/7",
              "fe80::/10"
            ],
            "outboundTag": "blocked"
          }
        ]
      }
    }
  }

v2ray 目标服务器配置

v2ray 服务器的配置

/etc/v2ray/config.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{
  "log" : {                                 // [日志](../chapter_02/01_overview.md)
    "access": "/var/log/v2ray/access.log",  // 访问日志文件
    "error": "/var/log/v2ray/error.log",    // 错误日志文件
    "loglevel": "warning"                   // 错误日志等级
  },
  "inbound": {              // 主传入协议
    "port": yyy_2,          // docker 内部 v2ray 的端口
    "protocol": "vmess",    // 在这里使用 [VMess 协议](../chapter_02/protocols/vmess.md)
    "settings": {
      "clients": [
        {
          "id": "uid-xxxxxxxxxxx", // UUID
          "level": 1,       // 用户等级
          "alterId": 64     // 额外ID
        }
      ]
    }
  },
  "outbound": {             // 主传出协议
    "protocol": "freedom",  // 在这里使用“直接传出至互联网”
    "settings": {}
  },
  "outboundDetour": [       // 额外传出协议
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "routing": {                  // 路由设置
    "strategy": "rules",
    "settings": {
      "rules": [
        {
          "type": "field",      // 不允许客户端访问服务端的局域网地址,以提升安全性
          "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "outboundTag": "blocked"
        }
      ]
    }
  }
}

启动例子

如果对客户端开放的是 10086 端口, 上面配置中的 yyy 为 8122, xxx_1 为 20180, yyy_2 为 8123

中转服务器

1
sudo docker run -it -d -v /etc/v2ray:/etc/v2ray -p 10086:8122 v2ray/official v2ray -config=/etc/v2ray/config.json

目标v2ray服务器

1
sudo docker run -it -d -v /etc/v2ray:/etc/v2ray -p 20180:8123 v2ray/official v2ray -config=/etc/v2ray/config.json

评论