Hunter0x7c7
2022-08-11 a82f9cb69f63aaeba40c024960deda7d75b9fece
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
syntax = "proto3";
 
package v2ray.core.app.proxyman;
option csharp_namespace = "V2Ray.Core.App.Proxyman";
option go_package = "github.com/v2fly/v2ray-core/v5/app/proxyman";
option java_package = "com.v2ray.core.app.proxyman";
option java_multiple_files = true;
 
import "common/net/address.proto";
import "common/net/port.proto";
import "transport/internet/config.proto";
import "google/protobuf/any.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;
 
  // 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;
}
 
message ReceiverConfig {
  // PortRange specifies the ports which the Receiver should listen on.
  v2ray.core.common.net.PortRange port_range = 1;
  // Listen specifies the IP address that the Receiver should listen on.
  v2ray.core.common.net.IPOrDomain listen = 2;
  AllocationStrategy allocation_strategy = 3;
  v2ray.core.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;
  google.protobuf.Any receiver_settings = 2;
  google.protobuf.Any proxy_settings = 3;
}
 
message OutboundConfig {}
 
message SenderConfig {
  // 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;
  v2ray.core.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;
}