HTTP

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

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

InboundConfigurationObject

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

应该注意,虽然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

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

在 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+)

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

(V2ray 4.21.1+)

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]

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