github.com/v2fly/v2ray-core/v4@v4.45.2/app/proxyman/config.proto (about)

     1  syntax = "proto3";
     2  
     3  package v2ray.core.app.proxyman;
     4  option csharp_namespace = "V2Ray.Core.App.Proxyman";
     5  option go_package = "github.com/v2fly/v2ray-core/v4/app/proxyman";
     6  option java_package = "com.v2ray.core.app.proxyman";
     7  option java_multiple_files = true;
     8  
     9  import "common/net/address.proto";
    10  import "common/net/port.proto";
    11  import "transport/internet/config.proto";
    12  import "common/serial/typed_message.proto";
    13  
    14  message InboundConfig {}
    15  
    16  message AllocationStrategy {
    17    enum Type {
    18      // Always allocate all connection handlers.
    19      Always = 0;
    20  
    21      // Randomly allocate specific range of handlers.
    22      Random = 1;
    23  
    24      // External. Not supported yet.
    25      External = 2;
    26    }
    27  
    28    Type type = 1;
    29  
    30    message AllocationStrategyConcurrency {
    31      uint32 value = 1;
    32    }
    33  
    34    // Number of handlers (ports) running in parallel.
    35    // Default value is 3 if unset.
    36    AllocationStrategyConcurrency concurrency = 2;
    37  
    38    message AllocationStrategyRefresh {
    39      uint32 value = 1;
    40    }
    41  
    42    // Number of minutes before a handler is regenerated.
    43    // Default value is 5 if unset.
    44    AllocationStrategyRefresh refresh = 3;
    45  }
    46  
    47  enum KnownProtocols {
    48    HTTP = 0;
    49    TLS = 1;
    50  }
    51  
    52  message SniffingConfig {
    53    // Whether or not to enable content sniffing on an inbound connection.
    54    bool enabled = 1;
    55  
    56    // Override target destination if sniff'ed protocol is in the given list.
    57    // Supported values are "http", "tls", "fakedns".
    58    repeated string destination_override = 2;
    59  
    60    // Whether should only try to sniff metadata without waiting for client input.
    61    // Can be used to support SMTP like protocol where server send the first message.
    62    bool metadata_only = 3;
    63  }
    64  
    65  message ReceiverConfig {
    66    // PortRange specifies the ports which the Receiver should listen on.
    67    v2ray.core.common.net.PortRange port_range = 1;
    68    // Listen specifies the IP address that the Receiver should listen on.
    69    v2ray.core.common.net.IPOrDomain listen = 2;
    70    AllocationStrategy allocation_strategy = 3;
    71    v2ray.core.transport.internet.StreamConfig stream_settings = 4;
    72    bool receive_original_destination = 5;
    73    reserved 6;
    74    // Override domains for the given protocol.
    75    // Deprecated. Use sniffing_settings.
    76    repeated KnownProtocols domain_override = 7 [deprecated = true];
    77    SniffingConfig sniffing_settings = 8;
    78  }
    79  
    80  message InboundHandlerConfig {
    81    string tag = 1;
    82    v2ray.core.common.serial.TypedMessage receiver_settings = 2;
    83    v2ray.core.common.serial.TypedMessage proxy_settings = 3;
    84  }
    85  
    86  message OutboundConfig {}
    87  
    88  message SenderConfig {
    89    // Send traffic through the given IP. Only IP is allowed.
    90    v2ray.core.common.net.IPOrDomain via = 1;
    91    v2ray.core.transport.internet.StreamConfig stream_settings = 2;
    92    v2ray.core.transport.internet.ProxyConfig proxy_settings = 3;
    93    MultiplexingConfig multiplex_settings = 4;
    94  }
    95  
    96  message MultiplexingConfig {
    97    // Whether or not Mux is enabled.
    98    bool enabled = 1;
    99    // Max number of concurrent connections that one Mux connection can handle.
   100    uint32 concurrency = 2;
   101  }