config.proto 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. syntax = "proto3";
  2. package v2ray.core.app.proxyman;
  3. option csharp_namespace = "V2Ray.Core.App.Proxyman";
  4. option go_package = "proxyman";
  5. option java_package = "com.v2ray.core.app.proxyman";
  6. option java_multiple_files = true;
  7. import "v2ray.com/core/common/net/address.proto";
  8. import "v2ray.com/core/common/net/port.proto";
  9. import "v2ray.com/core/transport/internet/config.proto";
  10. import "v2ray.com/core/transport/internet/domainsocket/config.proto";
  11. import "v2ray.com/core/common/serial/typed_message.proto";
  12. message InboundConfig {
  13. }
  14. message AllocationStrategy {
  15. enum Type {
  16. // Always allocate all connection handlers.
  17. Always = 0;
  18. // Randomly allocate specific range of handlers.
  19. Random = 1;
  20. // External. Not supported yet.
  21. External = 2;
  22. }
  23. Type type = 1;
  24. message AllocationStrategyConcurrency {
  25. uint32 value = 1;
  26. }
  27. // Number of handlers (ports) running in parallel.
  28. // Default value is 3 if unset.
  29. AllocationStrategyConcurrency concurrency = 2;
  30. message AllocationStrategyRefresh {
  31. uint32 value = 1;
  32. }
  33. // Number of minutes before a handler is regenerated.
  34. // Default value is 5 if unset.
  35. AllocationStrategyRefresh refresh = 3;
  36. }
  37. enum KnownProtocols {
  38. HTTP = 0;
  39. TLS = 1;
  40. }
  41. message ReceiverConfig {
  42. v2ray.core.common.net.PortRange port_range = 1;
  43. v2ray.core.common.net.IPOrDomain listen = 2;
  44. AllocationStrategy allocation_strategy = 3;
  45. v2ray.core.transport.internet.StreamConfig stream_settings = 4;
  46. bool receive_original_destination = 5;
  47. reserved 6;
  48. repeated KnownProtocols domain_override = 7;
  49. }
  50. message UnixReceiverConfig {
  51. reserved 1;
  52. v2ray.core.internet.domainsocket.DomainSocketSettings domainSockSettings = 2;
  53. reserved 3;
  54. v2ray.core.transport.internet.StreamConfig stream_settings = 4;
  55. reserved 5,6;
  56. repeated KnownProtocols domain_override = 7;
  57. }
  58. message InboundHandlerConfig {
  59. string tag = 1;
  60. v2ray.core.common.serial.TypedMessage receiver_settings = 2;
  61. v2ray.core.common.serial.TypedMessage proxy_settings = 3;
  62. }
  63. message OutboundConfig {
  64. }
  65. message SenderConfig {
  66. // Send traffic through the given IP. Only IP is allowed.
  67. v2ray.core.common.net.IPOrDomain via = 1;
  68. v2ray.core.transport.internet.StreamConfig stream_settings = 2;
  69. v2ray.core.transport.internet.ProxyConfig proxy_settings = 3;
  70. MultiplexingConfig multiplex_settings = 4;
  71. }
  72. message MultiplexingConfig {
  73. // Whether or not Mux is enabled.
  74. bool enabled = 1;
  75. // Max number of concurrent connections that one Mux connection can handle.
  76. uint32 concurrency = 2;
  77. }