2016-12-16 17:02:11 -05:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package v2ray.core.app.proxyman;
|
2017-01-08 04:10:37 -05:00
|
|
|
option csharp_namespace = "V2Ray.Core.App.Proxyman";
|
2022-01-02 10:16:23 -05:00
|
|
|
option go_package = "github.com/v2fly/v2ray-core/v5/app/proxyman";
|
2016-12-16 17:02:11 -05:00
|
|
|
option java_package = "com.v2ray.core.app.proxyman";
|
2017-02-03 17:15:10 -05:00
|
|
|
option java_multiple_files = true;
|
2016-12-16 17:02:11 -05:00
|
|
|
|
2020-08-24 08:10:26 -04:00
|
|
|
import "common/net/address.proto";
|
|
|
|
import "common/net/port.proto";
|
|
|
|
import "transport/internet/config.proto";
|
2021-06-23 09:34:03 -04:00
|
|
|
import "google/protobuf/any.proto";
|
2017-01-14 18:17:06 -05:00
|
|
|
|
2020-10-04 20:36:40 -04:00
|
|
|
message InboundConfig {}
|
2017-04-02 08:24:10 -04:00
|
|
|
|
2017-01-14 18:17:06 -05:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2017-04-24 18:19:22 -04:00
|
|
|
enum KnownProtocols {
|
|
|
|
HTTP = 0;
|
|
|
|
TLS = 1;
|
|
|
|
}
|
|
|
|
|
2018-07-16 07:47:00 -04:00
|
|
|
message SniffingConfig {
|
|
|
|
// Whether or not to enable content sniffing on an inbound connection.
|
|
|
|
bool enabled = 1;
|
|
|
|
|
2018-07-20 07:09:42 -04:00
|
|
|
// Override target destination if sniff'ed protocol is in the given list.
|
2021-02-08 05:18:52 -05:00
|
|
|
// Supported values are "http", "tls", "fakedns".
|
2018-07-20 07:09:42 -04:00
|
|
|
repeated string destination_override = 2;
|
2021-02-08 05:18:52 -05:00
|
|
|
|
|
|
|
// 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 = 3;
|
2018-07-16 07:47:00 -04:00
|
|
|
}
|
|
|
|
|
2017-01-26 14:46:44 -05:00
|
|
|
message ReceiverConfig {
|
2018-04-09 11:09:24 -04:00
|
|
|
// PortRange specifies the ports which the Receiver should listen on.
|
2017-01-14 18:17:06 -05:00
|
|
|
v2ray.core.common.net.PortRange port_range = 1;
|
2018-04-09 11:09:24 -04:00
|
|
|
// Listen specifies the IP address that the Receiver should listen on.
|
2017-01-14 18:17:06 -05:00
|
|
|
v2ray.core.common.net.IPOrDomain listen = 2;
|
|
|
|
AllocationStrategy allocation_strategy = 3;
|
|
|
|
v2ray.core.transport.internet.StreamConfig stream_settings = 4;
|
2017-01-26 14:46:44 -05:00
|
|
|
bool receive_original_destination = 5;
|
2017-04-24 18:19:22 -04:00
|
|
|
reserved 6;
|
2018-07-16 07:47:00 -04:00
|
|
|
// Override domains for the given protocol.
|
|
|
|
// Deprecated. Use sniffing_settings.
|
|
|
|
repeated KnownProtocols domain_override = 7 [deprecated = true];
|
|
|
|
SniffingConfig sniffing_settings = 8;
|
2017-01-14 18:17:06 -05:00
|
|
|
}
|
|
|
|
|
2018-02-12 01:07:16 -05:00
|
|
|
message InboundHandlerConfig {
|
|
|
|
string tag = 1;
|
2021-06-19 09:36:54 -04:00
|
|
|
google.protobuf.Any receiver_settings = 2;
|
|
|
|
google.protobuf.Any proxy_settings = 3;
|
2018-02-12 01:07:16 -05:00
|
|
|
}
|
|
|
|
|
2020-10-04 20:36:40 -04:00
|
|
|
message OutboundConfig {}
|
2017-01-14 18:17:06 -05:00
|
|
|
|
2017-01-26 14:46:44 -05:00
|
|
|
message SenderConfig {
|
2017-01-14 18:17:06 -05:00
|
|
|
// Send traffic through the given IP. Only IP is allowed.
|
|
|
|
v2ray.core.common.net.IPOrDomain via = 1;
|
|
|
|
v2ray.core.transport.internet.StreamConfig stream_settings = 2;
|
2017-01-14 18:48:37 -05:00
|
|
|
v2ray.core.transport.internet.ProxyConfig proxy_settings = 3;
|
2017-04-02 08:24:10 -04:00
|
|
|
MultiplexingConfig multiplex_settings = 4;
|
2017-01-14 18:17:06 -05:00
|
|
|
}
|
|
|
|
|
2017-02-03 17:09:24 -05:00
|
|
|
message MultiplexingConfig {
|
2017-04-12 04:40:21 -04:00
|
|
|
// Whether or not Mux is enabled.
|
2017-02-03 17:09:24 -05:00
|
|
|
bool enabled = 1;
|
2017-04-12 04:40:21 -04:00
|
|
|
// Max number of concurrent connections that one Mux connection can handle.
|
|
|
|
uint32 concurrency = 2;
|
2017-02-03 17:09:24 -05:00
|
|
|
}
|