123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- syntax = "proto3";
- package xray.app.proxyman;
- option csharp_namespace = "Xray.App.Proxyman";
- option go_package = "github.com/xtls/xray-core/app/proxyman";
- option java_package = "com.xray.app.proxyman";
- option java_multiple_files = true;
- import "common/net/address.proto";
- import "common/net/port.proto";
- import "transport/internet/config.proto";
- import "common/serial/typed_message.proto";
- message InboundConfig {}
- 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;
- message AllocationStrategyConcurrency {
- uint32 value = 1;
- }
- // Number of handlers (ports) running in parallel.
- // Default value is 3 if unset.
- AllocationStrategyConcurrency concurrency = 2;
- message AllocationStrategyRefresh {
- uint32 value = 1;
- }
- // Number of minutes before a handler is regenerated.
- // Default value is 5 if unset.
- AllocationStrategyRefresh refresh = 3;
- }
- enum KnownProtocols {
- HTTP = 0;
- TLS = 1;
- }
- message SniffingConfig {
- // Whether or not to enable content sniffing on an inbound connection.
- bool enabled = 1;
- // Override target destination if sniff'ed protocol is in the given list.
- // Supported values are "http", "tls", "fakedns".
- repeated string destination_override = 2;
- repeated string domains_excluded = 3;
-
- // Whether should only try to sniff metadata without waiting for client input.
- // Can be used to support SMTP like protocol where server send the first message.
- bool metadata_only = 4;
- }
- message ReceiverConfig {
- // PortRange specifies the ports which the Receiver should listen on.
- xray.common.net.PortRange port_range = 1;
- // Listen specifies the IP address that the Receiver should listen on.
- xray.common.net.IPOrDomain listen = 2;
- AllocationStrategy allocation_strategy = 3;
- xray.transport.internet.StreamConfig stream_settings = 4;
- bool receive_original_destination = 5;
- reserved 6;
- // Override domains for the given protocol.
- // Deprecated. Use sniffing_settings.
- repeated KnownProtocols domain_override = 7 [deprecated = true];
- SniffingConfig sniffing_settings = 8;
- }
- message InboundHandlerConfig {
- string tag = 1;
- xray.common.serial.TypedMessage receiver_settings = 2;
- xray.common.serial.TypedMessage proxy_settings = 3;
- }
- message OutboundConfig {}
- message SenderConfig {
- // Send traffic through the given IP. Only IP is allowed.
- xray.common.net.IPOrDomain via = 1;
- xray.transport.internet.StreamConfig stream_settings = 2;
- xray.transport.internet.ProxyConfig proxy_settings = 3;
- MultiplexingConfig multiplex_settings = 4;
- }
- message MultiplexingConfig {
- // Whether or not Mux is enabled.
- bool enabled = 1;
- // Max number of concurrent connections that one Mux connection can handle.
- uint32 concurrency = 2;
- }
|