# HTTP

  • 名称:http
  • 类型:入站/出站

HTTP 的配置分为两部分,InboundConfigurationObjectOutboundConfigurationObject,分别对应入站和出站协议配置中的 settings 项。

# InboundConfigurationObject

{
    "timeout": 0,
    "accounts": [
        {
            "user": "my-username",
            "pass": "my-password"
        }
    ],
    "allowTransparent": false,
    "userLevel": 0
}

TIP

应该注意,虽然 http inbound 可以提供公共服务,但 http 协议没有对传输加密,不适宜经公网中传输,更容易成为被人用作攻击的肉鸡。http inbound 更有意义的用法是在局域网或本机环境下监听,为其他程序提供本地服务。

timeout: number

从客户端读取数据的超时设置(秒),0 表示不限时。默认值为 300。 V2Ray 3.1 后等价于对应用户等级的 connIdle 策略。

accounts: [AccountObject]

一个数组,数组中每个元素为一个用户帐号。默认值为空。

accounts 非空时,HTTP 代理将对入站连接进行 Basic Authentication 验证。

allowTransparent: true | false

当为 true 时,会转发所有 HTTP 请求,而非只是代理请求。若配置不当,开启此选项会导致死循环。

userLevel: number

用户等级,所有连接使用这一等级。

# AccountObject

{
    "user": "my-username",
    "pass": "my-password"
}

user: string

用户名,字符串类型。必填。

pass: string

密码,字符串类型。必填。

TIP

在 Linux 中使用以下环境变量即可在当前 session 使用全局 HTTP 代理(很多软件都支持这一设置,也有不支持的)。

  • export http_proxy=http://127.0.0.1:8080/ (地址须改成你配置的 HTTP 入站代理地址)
  • export https_proxy=$http_proxy

# OutboundConfigurationObject

{
    "servers": [
        {
            "address": "192.168.108.1",
            "port": 3128,
            "users": [
                {
                    "user": "my-username",
                    "pass": "my-password"
                }
            ]
        }
    ]
}

(V2Ray 4.21.0+)

TIP

应该注意,虽然 http outbound 可以作为对外访问的配置,但 http proxy 协议没有对传输加密,不适宜经公网中传输,且因不支持 udp 传输将会导致 core 功能受限(Routing 过程的的 DNS 查询不可用)。http outbound 更有意义的用法是在特殊情况下,只能使用 http proxy 对外访问内部网络中,作为为其他协议连接代理服务器的前置代理使用(见 OutboundObjectProxySettingsObject)。另因 http proxy 只能代理 tcp 协议,udp 系的协议均不能通过。

(V2Ray 4.21.1+)

TIP

4.20.0 版本中引入了 http outbound 作为其他协议的前置代理用法中,缺乏了对 TLS 配置的支持。4.21.1 的补丁版本中对 streamSettings 中的 securitytlsSettings 保留生效。目前前置代理的用法中,vmess/tcp、vmess/tcp-tls 和 shadowsocks 等三种协议方式可使用,其他传输协议的前置代理用法需后续版本开发支持。

servers: 数组

HTTP 代理服务器配置,若配置多个,循环使用 (RoundRobin)。

address: string

HTTP 代理服务器地址,必填。

port: int

HTTP 代理服务器端口,必填。

user: [AccountObject]

一个数组,数组中每个元素为一个用户帐号。默认值为空。