github.com/xmplusdev/xmcore@v1.8.11-0.20240412132628-5518b55526af/app/proxyman/config.proto (about)

     1  syntax = "proto3";
     2  
     3  package xray.app.proxyman;
     4  option csharp_namespace = "Xray.App.Proxyman";
     5  option go_package = "github.com/xmplusdev/xmcore/app/proxyman";
     6  option java_package = "com.xray.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 { uint32 value = 1; }
    31  
    32    // Number of handlers (ports) running in parallel.
    33    // Default value is 3 if unset.
    34    AllocationStrategyConcurrency concurrency = 2;
    35  
    36    message AllocationStrategyRefresh { uint32 value = 1; }
    37  
    38    // Number of minutes before a handler is regenerated.
    39    // Default value is 5 if unset.
    40    AllocationStrategyRefresh refresh = 3;
    41  }
    42  
    43  enum KnownProtocols {
    44    HTTP = 0;
    45    TLS = 1;
    46  }
    47  
    48  message SniffingConfig {
    49    // Whether or not to enable content sniffing on an inbound connection.
    50    bool enabled = 1;
    51  
    52    // Override target destination if sniff'ed protocol is in the given list.
    53    // Supported values are "http", "tls", "fakedns".
    54    repeated string destination_override = 2;
    55    repeated string domains_excluded = 3;
    56  
    57    // Whether should only try to sniff metadata without waiting for client input.
    58    // Can be used to support SMTP like protocol where server send the first
    59    // message.
    60    bool metadata_only = 4;
    61  
    62    bool route_only = 5;
    63  }
    64  
    65  message ReceiverConfig {
    66    // PortList specifies the ports which the Receiver should listen on.
    67    xray.common.net.PortList port_list = 1;
    68    // Listen specifies the IP address that the Receiver should listen on.
    69    xray.common.net.IPOrDomain listen = 2;
    70    AllocationStrategy allocation_strategy = 3;
    71    xray.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    xray.common.serial.TypedMessage receiver_settings = 2;
    83    xray.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    xray.common.net.IPOrDomain via = 1;
    91    xray.transport.internet.StreamConfig stream_settings = 2;
    92    xray.transport.internet.ProxyConfig proxy_settings = 3;
    93    MultiplexingConfig multiplex_settings = 4;
    94    string via_cidr = 5;
    95  }
    96  
    97  message MultiplexingConfig {
    98    // Whether or not Mux is enabled.
    99    bool enabled = 1;
   100    // Max number of concurrent connections that one Mux connection can handle.
   101    int32 concurrency = 2;
   102    // Transport XUDP in another Mux.
   103    int32 xudpConcurrency = 3;
   104    // "reject" (default), "allow" or "skip".
   105    string xudpProxyUDP443 = 4;
   106  }