v2rayN/v2rayN/ServiceLib/Models/V2rayConfig.cs

517 lines
11 KiB
C#
Raw Normal View History

namespace ServiceLib.Models;
public class V2rayConfig
2019-10-11 06:15:20 +00:00
{
public Log4Ray log { get; set; }
public object dns { get; set; }
public List<Inbounds4Ray> inbounds { get; set; }
public List<Outbounds4Ray> outbounds { get; set; }
public Routing4Ray routing { get; set; }
public Metrics4Ray? metrics { get; set; }
public Policy4Ray? policy { get; set; }
public Stats4Ray? stats { get; set; }
public Observatory4Ray? observatory { get; set; }
public BurstObservatory4Ray? burstObservatory { get; set; }
public string? remarks { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Stats4Ray
{ }
2019-10-11 06:15:20 +00:00
public class Metrics4Ray
{
public string tag { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Policy4Ray
{
public SystemPolicy4Ray system { get; set; }
}
2019-10-11 06:15:20 +00:00
public class SystemPolicy4Ray
{
public bool statsOutboundUplink { get; set; }
public bool statsOutboundDownlink { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Log4Ray
{
public string? access { get; set; }
2023-04-14 12:49:36 +00:00
public string? error { get; set; }
2023-04-14 12:49:36 +00:00
public string? loglevel { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Inbounds4Ray
{
public string tag { get; set; }
2023-04-14 12:49:36 +00:00
public int port { get; set; }
2023-04-14 12:49:36 +00:00
public string listen { get; set; }
2023-04-14 12:49:36 +00:00
public string protocol { get; set; }
2023-04-14 12:49:36 +00:00
public Sniffing4Ray sniffing { get; set; }
2023-04-14 12:49:36 +00:00
public Inboundsettings4Ray settings { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Inboundsettings4Ray
{
public string? auth { get; set; }
2023-04-14 12:49:36 +00:00
public bool? udp { get; set; }
2023-04-14 12:49:36 +00:00
public string? ip { get; set; }
2019-10-11 06:15:20 +00:00
public string? address { get; set; }
2019-10-11 06:15:20 +00:00
public List<UsersItem4Ray>? clients { get; set; }
2020-08-08 03:15:32 +00:00
public string? decryption { get; set; }
2020-12-25 12:43:28 +00:00
public bool? allowTransparent { get; set; }
2021-12-19 12:46:54 +00:00
public List<AccountsItem4Ray>? accounts { get; set; }
}
2019-10-11 06:15:20 +00:00
public class UsersItem4Ray
{
public string? id { get; set; }
2023-04-14 12:49:36 +00:00
public int? alterId { get; set; }
2023-04-14 12:49:36 +00:00
public string? email { get; set; }
2023-04-14 12:49:36 +00:00
public string? security { get; set; }
2020-08-08 03:15:32 +00:00
public string? encryption { get; set; }
2020-10-06 08:43:04 +00:00
public string? flow { get; set; }
}
2023-04-14 12:49:36 +00:00
public class Sniffing4Ray
{
public bool enabled { get; set; }
public List<string>? destOverride { get; set; }
public bool routeOnly { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Outbounds4Ray
{
public string tag { get; set; }
2023-04-14 12:49:36 +00:00
public string protocol { get; set; }
2023-04-14 12:49:36 +00:00
public string? targetStrategy { get; set; }
public Outboundsettings4Ray settings { get; set; }
2023-04-14 12:49:36 +00:00
public StreamSettings4Ray streamSettings { get; set; }
2023-04-14 12:49:36 +00:00
public Mux4Ray mux { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Outboundsettings4Ray
{
public List<VnextItem4Ray>? vnext { get; set; }
2023-04-14 12:49:36 +00:00
public List<ServersItem4Ray>? servers { get; set; }
2019-10-11 06:15:20 +00:00
public Response4Ray? response { get; set; }
2022-07-25 12:34:00 +00:00
public string domainStrategy { get; set; }
2022-07-25 12:34:00 +00:00
public int? userLevel { get; set; }
public FragmentItem4Ray? fragment { get; set; }
public string? secretKey { get; set; }
public Object? address { get; set; }
public int? port { get; set; }
public List<WireguardPeer4Ray>? peers { get; set; }
public bool? noKernelTun { get; set; }
public int? mtu { get; set; }
public List<int>? reserved { get; set; }
public int? workers { get; set; }
public int? version { get; set; }
}
public class WireguardPeer4Ray
{
public string endpoint { get; set; }
public string publicKey { get; set; }
}
2019-10-11 06:15:20 +00:00
public class VnextItem4Ray
{
public string address { get; set; }
2023-04-14 12:49:36 +00:00
public int port { get; set; }
2023-04-14 12:49:36 +00:00
public List<UsersItem4Ray> users { get; set; }
}
2023-04-14 12:49:36 +00:00
public class ServersItem4Ray
{
public string email { get; set; }
2023-04-14 12:49:36 +00:00
public string address { get; set; }
2023-04-14 12:49:36 +00:00
public string? method { get; set; }
2023-04-14 12:49:36 +00:00
public bool? ota { get; set; }
2023-04-14 12:49:36 +00:00
public string? password { get; set; }
2023-04-14 12:49:36 +00:00
public int port { get; set; }
2023-04-14 12:49:36 +00:00
public int? level { get; set; }
2019-10-11 06:15:20 +00:00
public string flow { get; set; }
2021-12-19 12:46:54 +00:00
public bool? uot { get; set; }
public List<SocksUsersItem4Ray> users { get; set; }
}
2019-10-11 06:15:20 +00:00
public class SocksUsersItem4Ray
{
public string user { get; set; }
2023-04-14 12:49:36 +00:00
public string pass { get; set; }
2023-04-14 12:49:36 +00:00
public int? level { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Mux4Ray
{
public bool enabled { get; set; }
public int? concurrency { get; set; }
public int? xudpConcurrency { get; set; }
public string? xudpProxyUDP443 { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Response4Ray
{
public string type { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Dns4Ray
{
public Dictionary<string, object>? hosts { get; set; }
public List<object> servers { get; set; }
public bool? serveStale { get; set; }
public bool? enableParallelQuery { get; set; }
public string? tag { get; set; }
}
2019-10-11 06:15:20 +00:00
public class DnsServer4Ray
{
public string? address { get; set; }
2025-10-23 01:09:26 +00:00
public int? port { get; set; }
public List<string>? domains { get; set; }
2025-04-12 02:00:18 +00:00
public bool? skipFallback { get; set; }
public List<string>? expectedIPs { get; set; }
public string? tag { get; set; }
}
2024-06-26 08:00:37 +00:00
public class Routing4Ray
{
public string domainStrategy { get; set; }
2023-04-14 12:49:36 +00:00
public List<RulesItem4Ray> rules { get; set; }
2024-07-21 03:26:10 +00:00
public List<BalancersItem4Ray>? balancers { get; set; }
}
2019-10-11 06:15:20 +00:00
[Serializable]
public class RulesItem4Ray
{
public string? type { get; set; }
2023-05-07 08:35:46 +00:00
public string? port { get; set; }
public string? network { get; set; }
2023-05-07 08:35:46 +00:00
public List<string>? inboundTag { get; set; }
2023-05-07 08:35:46 +00:00
public string? outboundTag { get; set; }
2023-05-07 08:35:46 +00:00
public string? balancerTag { get; set; }
2024-07-21 03:26:10 +00:00
public List<string>? ip { get; set; }
2023-05-07 08:35:46 +00:00
public List<string>? domain { get; set; }
2023-05-07 08:35:46 +00:00
public List<string>? protocol { get; set; }
public List<string>? process { get; set; }
}
2023-05-07 08:35:46 +00:00
public class BalancersItem4Ray
{
public List<string>? selector { get; set; }
public BalancersStrategy4Ray? strategy { get; set; }
public string? tag { get; set; }
}
2024-07-21 03:26:10 +00:00
public class BalancersStrategy4Ray
{
public string? type { get; set; }
public BalancersStrategySettings4Ray? settings { get; set; }
}
public class BalancersStrategySettings4Ray
{
public int? expected { get; set; }
public string? maxRTT { get; set; }
public float? tolerance { get; set; }
public List<string>? baselines { get; set; }
public List<BalancersStrategySettingsCosts4Ray>? costs { get; set; }
}
public class BalancersStrategySettingsCosts4Ray
{
public bool? regexp { get; set; }
public string? match { get; set; }
public float? value { get; set; }
}
public class Observatory4Ray
{
public List<string>? subjectSelector { get; set; }
public string? probeUrl { get; set; }
public string? probeInterval { get; set; }
public bool? enableConcurrency { get; set; }
}
public class BurstObservatory4Ray
{
public List<string>? subjectSelector { get; set; }
public BurstObservatoryPingConfig4Ray? pingConfig { get; set; }
}
public class BurstObservatoryPingConfig4Ray
{
public string? destination { get; set; }
public string? connectivity { get; set; }
public string? interval { get; set; }
public int? sampling { get; set; }
public string? timeout { get; set; }
}
2024-07-21 03:26:10 +00:00
public class StreamSettings4Ray
{
public string network { get; set; }
2023-04-14 12:49:36 +00:00
public string security { get; set; }
2019-10-11 06:15:20 +00:00
public TlsSettings4Ray? tlsSettings { get; set; }
2019-10-11 06:15:20 +00:00
public TcpSettings4Ray? tcpSettings { get; set; }
2023-04-14 12:49:36 +00:00
public KcpSettings4Ray? kcpSettings { get; set; }
2023-04-14 12:49:36 +00:00
public WsSettings4Ray? wsSettings { get; set; }
2023-04-14 12:49:36 +00:00
public HttpupgradeSettings4Ray? httpupgradeSettings { get; set; }
2024-03-12 01:05:59 +00:00
public XhttpSettings4Ray? xhttpSettings { get; set; }
public HttpSettings4Ray? httpSettings { get; set; }
2019-10-11 06:15:20 +00:00
public QuicSettings4Ray? quicSettings { get; set; }
2020-10-06 08:43:04 +00:00
public TlsSettings4Ray? realitySettings { get; set; }
2023-04-14 12:49:36 +00:00
public GrpcSettings4Ray? grpcSettings { get; set; }
2023-12-22 08:03:25 +00:00
public HysteriaSettings4Ray? hysteriaSettings { get; set; }
public object? finalmask { get; set; }
public Sockopt4Ray? sockopt { get; set; }
}
2019-10-11 06:15:20 +00:00
public class TlsSettings4Ray
{
public bool? allowInsecure { get; set; }
2019-10-11 06:15:20 +00:00
public string? serverName { get; set; }
2023-04-14 12:49:36 +00:00
public List<string>? alpn { get; set; }
2022-10-14 12:43:54 +00:00
public string? fingerprint { get; set; }
2023-03-10 03:25:34 +00:00
public bool? show { get; set; }
public string? publicKey { get; set; }
public string? shortId { get; set; }
public string? spiderX { get; set; }
public string? mldsa65Verify { get; set; }
public List<CertificateSettings4Ray>? certificates { get; set; }
public string? pinnedPeerCertSha256 { get; set; }
public bool? disableSystemRoot { get; set; }
public string? echConfigList { get; set; }
public string? echForceQuery { get; set; }
2026-03-10 01:16:16 +00:00
public Sockopt4Ray? echSockopt { get; set; }
}
public class CertificateSettings4Ray
{
public List<string>? certificate { get; set; }
public string? usage { get; set; }
}
2019-10-11 06:15:20 +00:00
public class TcpSettings4Ray
{
public Header4Ray header { get; set; }
}
2019-10-11 06:15:20 +00:00
public class Header4Ray
{
public string type { get; set; }
2023-04-14 12:49:36 +00:00
public object request { get; set; }
2023-04-14 12:49:36 +00:00
public object response { get; set; }
}
2019-10-11 06:15:20 +00:00
public class KcpSettings4Ray
{
public int mtu { get; set; }
2023-04-14 12:49:36 +00:00
public int tti { get; set; }
2023-04-14 12:49:36 +00:00
public int uplinkCapacity { get; set; }
2023-04-14 12:49:36 +00:00
public int downlinkCapacity { get; set; }
2023-04-14 12:49:36 +00:00
public bool congestion { get; set; }
2023-04-14 12:49:36 +00:00
public int readBufferSize { get; set; }
2023-04-14 12:49:36 +00:00
public int writeBufferSize { get; set; }
}
2019-10-11 06:15:20 +00:00
public class WsSettings4Ray
{
public string? path { get; set; }
public string? host { get; set; }
2019-10-11 06:15:20 +00:00
public Headers4Ray headers { get; set; }
}
2023-04-14 12:49:36 +00:00
public class Headers4Ray
{
[JsonPropertyName("User-Agent")]
public string UserAgent { get; set; }
}
2024-03-12 01:05:59 +00:00
public class HttpupgradeSettings4Ray
{
public string? path { get; set; }
2024-03-12 01:05:59 +00:00
public string? host { get; set; }
}
2019-10-11 06:15:20 +00:00
public class XhttpSettings4Ray
{
public string? path { get; set; }
public string? host { get; set; }
public string? mode { get; set; }
public object? extra { get; set; }
}
public class HttpSettings4Ray
{
public string? path { get; set; }
2019-10-11 06:15:20 +00:00
public List<string>? host { get; set; }
}
2019-10-11 06:15:20 +00:00
public class QuicSettings4Ray
{
public string security { get; set; }
2023-04-14 12:49:36 +00:00
public string key { get; set; }
2019-10-11 06:15:20 +00:00
public Header4Ray header { get; set; }
}
2019-10-11 06:15:20 +00:00
public class GrpcSettings4Ray
{
public string? authority { get; set; }
public string? serviceName { get; set; }
public bool multiMode { get; set; }
public int? idle_timeout { get; set; }
public int? health_check_timeout { get; set; }
public bool? permit_without_stream { get; set; }
public int? initial_windows_size { get; set; }
}
2021-03-21 02:09:39 +00:00
public class HysteriaSettings4Ray
{
public int version { get; set; }
public string? auth { get; set; }
}
public class UdpHop4Ray
{
public string? ports { get; set; }
public string? interval { get; set; }
}
public class Finalmask4Ray
{
public List<Mask4Ray>? udp { get; set; }
public QuicParams4Ray? quicParams { get; set; }
}
public class Mask4Ray
{
public string type { get; set; }
public MaskSettings4Ray? settings { get; set; }
}
public class MaskSettings4Ray
{
public string? password { get; set; }
public string? domain { get; set; }
}
public class QuicParams4Ray
{
public string? congestion { get; set; }
public string? brutalUp { get; set; }
public string? brutalDown { get; set; }
public UdpHop4Ray? udpHop { get; set; }
}
public class AccountsItem4Ray
{
public string user { get; set; }
2023-04-14 12:49:36 +00:00
public string pass { get; set; }
}
2023-12-22 08:03:25 +00:00
public class Sockopt4Ray
{
public string? dialerProxy { get; set; }
}
public class FragmentItem4Ray
{
public string? packets { get; set; }
public string? length { get; set; }
public string? interval { get; set; }
2025-02-12 11:18:59 +00:00
}