github.com/xraypb/xray-core@v1.6.6/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/xraypb/xray-core/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 } 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 }