github.com/imannamdari/v2ray-core/v5@v5.0.5/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/imannamdari/v2ray-core/v5/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 "google/protobuf/any.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    google.protobuf.Any receiver_settings = 2;
    83    google.protobuf.Any proxy_settings = 3;
    84  }
    85  
    86  message OutboundConfig {}
    87  
    88  message SenderConfig {
    89    enum DomainStrategy {
    90      AS_IS = 0;
    91      USE_IP = 1;
    92      USE_IP4 = 2;
    93      USE_IP6 = 3;
    94    }
    95  
    96    // Send traffic through the given IP. Only IP is allowed.
    97    v2ray.core.common.net.IPOrDomain via = 1;
    98    v2ray.core.transport.internet.StreamConfig stream_settings = 2;
    99    v2ray.core.transport.internet.ProxyConfig proxy_settings = 3;
   100    MultiplexingConfig multiplex_settings = 4;
   101    DomainStrategy domain_strategy = 5;
   102  }
   103  
   104  message MultiplexingConfig {
   105    // Whether or not Mux is enabled.
   106    bool enabled = 1;
   107    // Max number of concurrent connections that one Mux connection can handle.
   108    uint32 concurrency = 2;
   109  }