HTTP
- 名称:
http
- 类型:入站 / 出站
HTTP 的配置分为两部分,InboundConfigurationObject
和OutboundConfigurationObject
,分别对应入站和出站协议配置中的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
对外访问内部网络中,作为为其他协议连接代理服务器的前置代理使用(见OutboundObject
的ProxySettingsObject
)。另因http proxy
只能代理tcp协议,udp系的协议均不能通过。
(V2ray 4.21.1+)
4.20.0版本中引入了http outbound作为其他协议的前置代理用法中,缺乏了对tls配置的支持。4.21.1的补丁版本中对streamSettings
中的security
和tlsSettings
保留生效。目前前置代理的用法中,vmess/tcp、vmess/tcp-tls和shadowsocks等三种协议方式可使用,其他传输协议的前置代理用法需后续版本开发支持。
servers
: 数组
HTTP代理服务器配置,若配置多个,循环使用 (RoundRobin)。
address
: string
HTTP代理服务器地址,必填。
port
: int
HTTP代理服务器端口,必填。
user
: [AccountObject]
一个数组,数组中每个元素为一个用户帐号。默认值为空。