v2ray链式转发配置

科学上网/翻墙/匿名之必备技能
注:本节原为 V2Ray 官网的配置案例中的一节,后来 V2Ray 将之删除,所以博主稍作修改传到此处
注意:使用了代理转发 streamSettings 会失效,即只能是非 TLS、无 HTTP 伪装的 TCP 传输协议。

实际操作

这里有一台位于日本的服务器,属私人节点,上面已经架设了v2ray服务(WebSocket + TLS + Web + CDN),配置和代理(软路由)结果如下

现在手上还有另一个节点的链接配置,位于荷兰,属万人捶公用节点,配置和代理(客户端)结果如下

希望流量使用链式转发,即是从:AUS(起点) -> JP -> NL-> (目标)。当前演示从JP服务器上中转

配置

{
    "inbounds": [
    {
        "port": 10000,
        "listen":"127.0.0.1",
        "protocol": "vmess",
        "settings": {
            "clients": [
            {
                "id": "****************************", 
                "alterId": 0
            }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "wsSettings": {
                "path": "/*******"
            }
        }
    }
    ],
    "outbounds": [
    {
        "protocol": "vmess",
        "settings": {
		"vnext": [
		{
			"address": "king6.workingoogle.ga",
			"port": 8880,
			"users": [
			{
				"alterId": 0,
				"id": "050624ec-ba6a-49c3-e8d9-c46e5c167be0"
			}
			]
		}
		]
	},
	"streamSettings": {
		"network": "ws",
		"wsSettings": {
			"path": "/fh454hg4fthfh"
		}
	}
    }
    ]
}

如图:

链式转发测试

配置好了重启v2ray服务刷新网页测试一下,使用日本的服务器却显示了荷兰的地址,成功!流量从AUS -> JP -> NL -> ip.me(目标)(就是延迟有点高)

多级转发

同理,不废话,这里又找到了一个中国的节点,期望流量从AUS(起点) -> JP -> NL -> CN -> (目标)

配置

{
    "inbounds": [
    {
        "port": 10000,
        "listen":"127.0.0.1",
        "protocol": "vmess",
        "settings": {
            "clients": [
            {
                "id": "************", 
                "alterId": 0
            }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "wsSettings": {
                "path": "/watch"
            }
        }
    }
    ],
    "outbounds": [
	{
	"protocol": "vmess",
	 "settings": {
		"vnext": [
		{
			"address": "*******",
			"port": 34567,
			"users": [
			{
				"alterId": 0,
				"id": "******"
			}
			]
		}
		]
	},
	"streamSettings": {
		"network": "tcp"
	},
	"tag": "cnNode"
	},
    {
        "protocol": "vmess",
        "settings": {
		"vnext": [
		{
			"address": "king6.workingoogle.ga",
			"port": 8880,
			"users": [
			{
				"alterId": 0,
				"id": "050624ec-ba6a-49c3-e8d9-c46e5c167be0"
			}
			]
		}
		]
	},
	"streamSettings": {
		"network": "ws",
		"wsSettings": {
			"path": "/fh454hg4fthfh"
		}
	},
	"tag": "nlNode",
	"proxySettings": {
		"tag": "cnNode"
	}
    }
    ]
}

多级转发测试

配置好后重启v2ray服务,如图(延迟相比更高了,试过上传文件没问题),使用日本的服务器却显示了中国的地址,成功!流量从AUS(起点) -> JP -> NL -> CN -> ip.me(目标)

以下内容皆为复制粘贴的,未经过任何测试

单个账户客户端

{
  "outbounds": [
    {
      "protocol": "vmess",
      "settings": { // settings 的根据实际情况修改
        "vnext": [
          {
            "address": "1.1.1.1",
            "port": 8888,
            "users": [
              {
                "alterId": 64,
                "id": "b12614c5-5ca4-4eba-a215-c61d642116ce"
              }
            ]
          }
        ]
      },
      "proxySettings": {
          "tag": "transit"  // 这里的 tag 必须跟作为代理 VPS 的 tag 一致,这里设定的是 "transit"
        }
    },
    {
      "protocol": "shadowsocks",
      "settings": {
        "servers": [
          {
            "address": "2.2.2.2",
            "method": "aes-256-cfb",
            "ota": false,
            "password": "password",
            "port": 1024
          }
        ]
      },
      "tag": "transit"
    }
  ]
}

多个 Shadowsocks 或 VMess 账户

{
  "outbounds": [
    {
      "protocol": "vmess",
      "settings": { // settings 的根据实际情况修改
        "vnext": [
          {
            "address": "1.1.1.1",
            "port": 8888,
            "users": [
              {
                "alterId": 64,
                "id": "b12614c5-5ca4-4eba-a215-c61d642116ce"
              }
            ]
          }
        ]
      },
      "tag": "DOUS",
      "proxySettings": {
          "tag": "DOSG"  
        }
    },
    {
      "protocol": "shadowsocks",
      "settings": {
        "servers": [
          {
            "address": "2.2.2.2",
            "method": "aes-256-cfb",
            "ota": false,
            "password": "password",
            "port": 1024
          }
        ]
      },
      "tag": "AliHK"
    },
    {
      "protocol": "shadowsocks",
      "settings": {
        "servers": [
          {
            "address": "3.3.3.3",
            "method": "aes-256-cfb",
            "ota": false,
            "password": "password",
            "port": 3442
          }
        ]
      },
      "tag": "AliSG",
      "proxySettings": {
          "tag": "AliHK"  
      }
    },
    {
      "protocol": "vmess",
      "settings": {
        "vnext": [
          {
            "address": "4.4.4.4",
            "port": 8462,
            "users": [
              {
                "alterId": 64,
                "id": "b27c24ab-2b5a-433e-902c-33f1168a7902"
              }
            ]
          }
        ]
      },
      "tag": "DOSG",
      "proxySettings": {
          "tag": "AliSG"  
      }
    },
  ]
}

为了方便维护,或者从速度上的考虑,可以在国内架设一台中转 VPS,在这台 VPS 上判断目标地址是国内还是国外的,只需把国外的流量向国外 VPS 转发,而国内的流量使用直连。这样的配置,在用户的电脑只需要把所有流量发往这台 VPS,而不用为每一个用户都配置白名单,较为省力。
以下是中转服务的配置示例。

{
  "log" : {                                 
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "port": 1234,
      "protocol": "vmess",    // 入站协议为 VMess
      "settings": {
        "clients": [
          {
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", // UUID
            "level": 1,       // 用户等级
            "alterId": 32     // 额外ID
          },
          // 在这里添加更多用户,注意UUID不能重复
          {
            "id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", // UUID
            "level": 0,       // 用户等级
            "alterId": 32     // 额外ID
          }
        ]
      }
    }
  ],
  // ========== BEGIN STEP 1 ==========
  // 国内中转服务器当作国外服务器的“客户端”
  // 国际流量发往国外服务器上
  "outbounds": [
    {
      "protocol": "vmess",        // 出口协议
      "settings": {
        "vnext": [
          {
            "address": "1.2.3.4", // 国外服务器地址
            "port": 23456,        // 国外服务器端口
            "users": [
                {"id": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"} // 用户 ID,须与国外服务器端配置相同
            ]
          }
        ]
      }
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "block"
    },
    // 增加 freedom 传出绕路,国内流量直接放行
    {
      "protocol": "freedom",
      "tag": "direct",
      "settings": {}
    }
  ],
  // ========== END STEP 1 ==========
  "routing": { // 路由设置
   "domainStrategy": "IPOnDemand",
    "strategy": "rules",
    "rules": [
      {
        "type": "field",      // 不允许客户端访问服务端的局域网地址,以提升安全性
        "ip": [
          "geoip:private"
        ],
        "outboundTag": "block"
      },
      // 配置国内网站和IP直连规则
      {
        "type": "field",  // 对于一些常见的国内网站,也使用直连模式
        "domain": [
          "geosite:cn"
        ],
        "outboundTag": "direct"
      },
      {
        "type": "field", // 对于所有国内的 IP,都采用直连模式
        "ip": [
          "geoip:cn"
        ],
        "outboundTag": "direct"
      }
    ]
  }
}