| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | syntax = "proto3";package v2ray.core;option go_package = "core";option java_package = "com.v2ray.core";option java_outer_classname = "ConfigProto";import "v2ray.com/core/common/loader/type.proto";import "v2ray.com/core/common/net/port.proto";import "v2ray.com/core/common/net/address.proto";import "v2ray.com/core/common/log/config.proto";import "v2ray.com/core/transport/internet/config.proto";import "v2ray.com/core/transport/config.proto";// Configuration serialization format.enum ConfigFormat {  Protobuf = 0;  JSON = 1;}message AllocationStrategyConcurrency {  uint32 value = 1;}message AllocationStrategyRefresh {  uint32 value = 1;}message AllocationStrategy {  enum Type {    // Always allocate all connection handlers.    Always = 0;    // Randomly allocate specific range of handlers.    Random = 1;    // External. Not supported yet.    External = 2;  }  Type type = 1;  // Number of handlers (ports) running in parallel.  // Default value is 3 if unset.  AllocationStrategyConcurrency concurrency = 2;  // Number of minutes before a handler is regenerated.  // Default value is 5 if unset.  AllocationStrategyRefresh refresh = 3;}// Config for an inbound connection handler.message InboundConnectionConfig {  // Protocol specific settings. Must be one of the supported protocols.  v2ray.core.common.loader.TypedSettings settings = 1;  // Range of port number to run on. Both inclusive.  v2ray.core.common.net.PortRange port_range = 2;  // IP address to listen on. 0.0.0.0 if unset.  v2ray.core.common.net.IPOrDomain listen_on = 3;  // Tag of this handler.  string tag = 4;  AllocationStrategy allocation_strategy = 5;  v2ray.core.transport.internet.StreamConfig stream_settings = 6;  bool allow_passive_connection = 7;}// Config for an outbound connection handler.message OutboundConnectionConfig {  v2ray.core.common.loader.TypedSettings settings = 1;  // IP address to send data through. 0.0.0.0 if unset.  v2ray.core.common.net.IPOrDomain send_through = 2;  v2ray.core.transport.internet.StreamConfig stream_settings = 3;  v2ray.core.transport.internet.ProxyConfig proxy_settings = 5;  string tag = 4;}message Config {  // Inbound handler configurations. Must have at least one item.  repeated InboundConnectionConfig inbound = 1;  // Outbound handler configurations. Must have at least one item. The first item is used as default for routing.  repeated OutboundConnectionConfig outbound = 2;  v2ray.core.common.log.Config log = 3;  // App configuration. Must be one in the app directory.  repeated v2ray.core.common.loader.TypedSettings app = 4;  v2ray.core.transport.Config transport = 5;}
 |