transport 优化底层传输配置
通过transport可设置为"tcp"、 "kcp" 或 "ws"三种网络传输方式。
举例1:
"transport": {
"tcpSettings": {},
"kcpSettings": {},
"wsSettings": {}
}
- network : 数据流所使用的网络,可选的值为 "tcp"、 "kcp" 或 "ws",默认值为 "tcp";
- security : 是否启入传输层加密,支持的选项有 "none" 表示不加密(默认值),"tls" 表示使用 TLS。
- tlsSettings : TLS 配置。TLS 由 Golang 提供,支持 TLS 1.2,不支持 DTLS。
- serverName : 指定服务器端证书的域名,在连接由 IP 建立时有用。
- allowInsecure : 是否允许不安全连接(用于客户端)。当值为 true 时,V2Ray 不会检查远端主机所提供的 TLS 证书的有效性。
- certificates : 证书列表(用于服务器端),其中每一项表示一个证书:
- certificateFile : 证书文件,如使用 OpenSSL 生成,后缀名为 .crt。
- keyFile : 密钥文件,如使用 OpenSSL 生成,后缀名为 .key。目前暂不支持需要密码的 key 文件。
- tcpSettings : 当前连接的 TCP 配置,仅当此连接使用 TCP 时有效。配置内容与上面的全局配置相同。
- kcpSettings : 当前连接的 mKCP 配置,仅当此连接使用 mKCP 时有效。配置内容与上面的全局配置相同。
- wsSettings : 当前连接的 WebSocket 配置,仅当此连接使用 WebSocket 时有效。配置内容与上面的全局配置相同。
mKCP 传输方式
可通过KCP的传输方式增加访问速度,服务端与客户端分别加入下面的配置内容
举例2:
"transport": {
"tcpSettings": {
"connectionReuse": true
},
"kcpSettings": {
"mtu": 1350,
"tti": 20,
"uplinkCapacity": 12,
"downlinkCapacity": 100,
"congestion": false,
"readBufferSize": 1,
"writeBufferSize": 1,
"header": {
"type": "none"
}
}
}
- mtu: 最大传输单元(maximum transmission unit),请选择一个介于 576 - 1460 之间的值。默认值为 1350。
- tti: 传输时间间隔(transmission time interval),单位毫秒(ms),mKCP 将以这个时间频率发送数据。请选译一个介于 10 - 100 之间的值。默认值为 50。
- uplinkCapacity: 上行链路容量,即主机发出数据所用的最大带宽,单位 MB/s,默认值 5。
- 注意是 Byte 而非 bit;
- 可以设置为 0,表示一个非常小的带宽;
- downlinkCapacity: 下行链路容量,即主机接收数据所用的最大带宽,单位 MB/s,默认值 20。
- 注意是 Byte 而非 bit;
- 可以设置为 0,表示一个非常小的带宽;
- congestion: 是否启用拥塞控制,默认值为 false。
- 开启拥塞控制之后,V2Ray 会自动监测网络质量,当丢包严重时,会自动降低吞吐量;当网络畅通时,也会适当增加吞吐量。
- readBufferSize: 单个连接的读取缓冲区大小,单位是 MB。默认值为 2。
- writeBufferSize: 单个连接的写入缓冲区大小,单位是 MB。默认值为 2。
- header: 数据包头部伪装设置:
- type: 伪装类型,可选的值有:
- "none": 默认值,不进行伪装,发送的数据是没有特征的数据包。
- "srtp": 伪装成 SRTP 数据包,会被识别为视频通话数据(如 FaceTime)。
- "utp": 伪装成 uTP 数据包,会被识别为 BT 下载数据。
- "wechat-video": 伪装成微信视频通话的数据包。
- type: 伪装类型,可选的值有: