V2Fly.orgV2Fly.org
快速开始
配置文档
配置文档 (v5, WIP)
工具列表
开发手册
新白话文指南
  • 简体中文
  • English
GitHub
快速开始
配置文档
配置文档 (v5, WIP)
工具列表
开发手册
新白话文指南
  • 简体中文
  • English
GitHub
  • 配置文件

    • 配置文件格式
    • 环境变量
    • DNS 域名解析
    • Routing 路由
    • Policy 本地策略
    • Inbounds
    • Outbounds
    • Transport
    • API 远程控制
    • Stats 统计信息
    • Reverse 反向代理
    • 多文件配置
    • FakeDNS
    • 浏览器转发模块
    • Observatory 连接观测
  • 协议列表

    • Blackhole
    • DNS
    • Dokodemo-door
    • Freedom
    • HTTP
    • Socks
    • VMess
    • Shadowsocks
    • Trojan
    • VLESS
    • Loopback
    • Hysteria2
  • 传输方式

    • TCP
      • TcpObject
      • NoneHeaderObject
      • HttpHeaderObject
      • HTTPRequestObject
      • HTTPResponseObject
    • mKCP
    • WebSocket
    • HTTP/2
    • QUIC
    • DomainSocket
    • gRPC
    • Hysteria2
  • 服务

    • Stats 统计信息
    • Policy 本地策略
    • 浏览器转发模块
    • 并发连接观测
    • 后台连接观测
    • Tun
    • 订阅管理器

TCP

TcpObject

TcpObject 对应传输配置的 tcpSettings 项。

{
    "acceptProxyProtocol": false,
    "header": {
        "type": "none"
    }
}

acceptProxyProtocol: true | false

v4.27.1+,仅用于 inbound,是否接收 PROXY protocol,默认值为 false。填写 true 时,最底层 TCP 连接建立后,请求方必须先发送 PROXY protocol v1 或 v2,否则连接会被关闭。

PROXY protocol 专用于传递请求的真实来源 IP 和端口,若你不了解它,请先忽略该项。常见的反代软件(如 HAProxy、Nginx)都可以配置发送它,VLESS fallbacks xver 也可以发送它。

header: NoneHeaderObject | HttpHeaderobject

数据包头部伪装设置,默认值为 NoneHeaderObject。HTTP 伪装无法被其它 HTTP 服务器(如 Nginx)分流,但可以被 VLESS fallbacks path 分流。

NoneHeaderObject

不进行伪装

{
    "type": "none"
}

type: "none"

指定不进行伪装

HttpHeaderObject

HTTP 伪装配置必须在对应的入站出站连接上同时配置,且内容必须一致。

{
    "type": "http",
    "request": {},
    "response": {}
}

type: "http"

指定进行 HTTP 伪装

request: HTTPRequestObject

HTTP 请求

response: HTTPResponseObject

HTTP 响应

HTTPRequestObject

{
    "version": "1.1",
    "method": "GET",
    "path": [
        "/"
    ],
    "headers": {
        "Host": [
            "www.baidu.com",
            "www.bing.com"
        ],
        "User-Agent": [
            "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
            "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46"
        ],
        "Accept-Encoding": [
            "gzip, deflate"
        ],
        "Connection": [
            "keep-alive"
        ],
        "Pragma": "no-cache"
    }
}

version: string

HTTP 版本,默认值为 "1.1"。

method: string

HTTP 方法,默认值为 "GET"。

path: [ string ]

路径,一个字符串数组。默认值为 ["/"]。当有多个值时,每次请求随机选择一个值。

headers: map{ string, [ string ]}

HTTP 头,一个键值对,每个键表示一个 HTTP 头的名称,对应的值是一个数组。每次请求会附上所有的键,并随机选择一个对应的值。默认值见上方示例。

HTTPResponseObject

{
    "version": "1.1",
    "status": "200",
    "reason": "OK",
    "headers": {
        "Content-Type": [
            "application/octet-stream",
            "video/mpeg"
        ],
        "Transfer-Encoding": [
            "chunked"
        ],
        "Connection": [
            "keep-alive"
        ],
        "Pragma": "no-cache"
    }
}

version: string

HTTP 版本,默认值为 "1.1"。

status: string

HTTP 状态,默认值为 "200"。

reason: string

HTTP 状态说明,默认值为 "OK"。

headers: map {string, [ string ]}

HTTP 头,一个键值对,每个键表示一个 HTTP 头的名称,对应的值是一个数组。每次请求会附上所有的键,并随机选择一个对应的值。默认值见上方示例。

在 GitHub 上编辑此页
上次更新:
贡献者: kslr, RPRX, Kslr
Next
mKCP