model

package
v0.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2024 License: MIT Imports: 2 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CountryChineseName = map[string]string{}/* 258 elements not displayed */
View Source
var CountryEnglishName = map[string]string{}/* 253 elements not displayed */
View Source
var CountryFlag = map[string]string{}/* 259 elements not displayed */
View Source
var CountryISO = map[string]string{}/* 258 elements not displayed */

Functions

func GetSupportProxyTypes

func GetSupportProxyTypes(clashType ClashType) map[string]bool

Types

type ClashType

type ClashType int
const (
	Clash ClashType = 1 + iota
	ClashMeta
)

type EBpf

type EBpf struct {
	RedirectToTun []string `yaml:"redirect-to-tun,omitempty" json:"redirect-to-tun"`
	AutoRedir     []string `yaml:"auto-redir,omitempty" json:"auto-redir"`
}

type Experimental

type Experimental struct {
	Fingerprints     []string `yaml:"fingerprints,omitempty"`
	QUICGoDisableGSO bool     `yaml:"quic-go-disable-gso,omitempty"`
	QUICGoDisableECN bool     `yaml:"quic-go-disable-ecn,omitempty"`
	IP4PEnable       bool     `yaml:"dialer-ip4p-convert,omitempty"`
}

type GeoXUrl

type GeoXUrl struct {
	GeoIp   string `yaml:"geoip,omitempty" json:"geoip"`
	Mmdb    string `yaml:"mmdb,omitempty" json:"mmdb"`
	GeoSite string `yaml:"geosite,omitempty" json:"geosite"`
}

type GrpcOptions

type GrpcOptions struct {
	GrpcServiceName string `yaml:"grpc-service-name,omitempty"`
}

type HTTP2Options

type HTTP2Options struct {
	Host []string `yaml:"host,omitempty"`
	Path string   `yaml:"path,omitempty"`
}

type HTTPOptions

type HTTPOptions struct {
	Method  string              `yaml:"method,omitempty"`
	Path    []string            `yaml:"path,omitempty"`
	Headers map[string][]string `yaml:"headers,omitempty"`
}

type Hysteria

type Hysteria struct {
	Type                string   `yaml:"type"`
	Name                string   `yaml:"name"`
	Server              string   `yaml:"server"`
	Port                int      `yaml:"port,omitempty"`
	Ports               string   `yaml:"ports,omitempty"`
	Protocol            string   `yaml:"protocol,omitempty"`
	ObfsProtocol        string   `yaml:"obfs-protocol,omitempty"`
	Up                  string   `yaml:"up"`
	UpSpeed             int      `yaml:"up-speed,omitempty"`
	Down                string   `yaml:"down"`
	DownSpeed           int      `yaml:"down-speed,omitempty"`
	Auth                string   `yaml:"auth,omitempty"`
	AuthStringOLD       string   `yaml:"auth_str,omitempty"`
	AuthString          string   `yaml:"auth-str,omitempty"`
	Obfs                string   `yaml:"obfs,omitempty"`
	SNI                 string   `yaml:"sni,omitempty"`
	SkipCertVerify      bool     `yaml:"skip-cert-verify,omitempty"`
	Fingerprint         string   `yaml:"fingerprint,omitempty"`
	ALPN                []string `yaml:"alpn,omitempty"`
	CustomCA            string   `yaml:"ca,omitempty"`
	CustomCAString      string   `yaml:"ca-str,omitempty"`
	ReceiveWindowConn   int      `yaml:"recv-window-conn,omitempty"`
	ReceiveWindow       int      `yaml:"recv-window,omitempty"`
	DisableMTUDiscovery bool     `yaml:"disable-mtu-discovery,omitempty"`
	FastOpen            bool     `yaml:"fast-open,omitempty"`
	HopInterval         int      `yaml:"hop-interval,omitempty"`
}

func ProxyToHysteria

func ProxyToHysteria(p Proxy) Hysteria

type Hysteria2

type Hysteria2 struct {
	Type           string   `yaml:"type"`
	Name           string   `yaml:"name"`
	Server         string   `yaml:"server"`
	Port           int      `yaml:"port"`
	Up             string   `yaml:"up,omitempty"`
	Down           string   `yaml:"down,omitempty"`
	Password       string   `yaml:"password,omitempty"`
	Obfs           string   `yaml:"obfs,omitempty"`
	ObfsPassword   string   `yaml:"obfs-password,omitempty"`
	SNI            string   `yaml:"sni,omitempty"`
	SkipCertVerify bool     `yaml:"skip-cert-verify,omitempty"`
	Fingerprint    string   `yaml:"fingerprint,omitempty"`
	ALPN           []string `yaml:"alpn,omitempty"`
	CustomCA       string   `yaml:"ca,omitempty"`
	CustomCAString string   `yaml:"ca-str,omitempty"`
	CWND           int      `yaml:"cwnd,omitempty"`
}

func ProxyToHysteria2

func ProxyToHysteria2(p Proxy) Hysteria2

type IPTables

type IPTables struct {
	Enable           bool     `yaml:"enable,omitempty" json:"enable"`
	InboundInterface string   `yaml:"inbound-interface,omitempty" json:"inbound-interface"`
	Bypass           []string `yaml:"bypass,omitempty" json:"bypass"`
	DnsRedirect      bool     `yaml:"dns-redirect,omitempty" json:"dns-redirect"`
}

type NodeList

type NodeList struct {
	Proxies []Proxy `yaml:"proxies,omitempty"`
}

type Payload

type Payload struct {
	Rules []string `yaml:"payload,omitempty"`
}

type Profile

type Profile struct {
	StoreSelected bool `yaml:"store-selected,omitempty"`
	StoreFakeIP   bool `yaml:"store-fake-ip,omitempty"`
}

type Proxy

type Proxy struct {
	Name                string                `yaml:"name,omitempty"`
	Server              string                `yaml:"server,omitempty"`
	Port                int                   `yaml:"port,omitempty"`
	Type                string                `yaml:"type,omitempty"`
	Cipher              string                `yaml:"cipher,omitempty"`
	Password            string                `yaml:"password,omitempty"`
	UDP                 bool                  `yaml:"udp,omitempty"`
	UUID                string                `yaml:"uuid,omitempty"`
	Network             string                `yaml:"network,omitempty"`
	Flow                string                `yaml:"flow,omitempty"`
	TLS                 bool                  `yaml:"tls,omitempty"`
	ClientFingerprint   string                `yaml:"client-fingerprint,omitempty"`
	Plugin              string                `yaml:"plugin,omitempty"`
	PluginOpts          map[string]any        `yaml:"plugin-opts,omitempty"`
	Smux                SmuxStruct            `yaml:"smux,omitempty"`
	Sni                 string                `yaml:"sni,omitempty"`
	AllowInsecure       bool                  `yaml:"allow-insecure,omitempty"`
	Fingerprint         string                `yaml:"fingerprint,omitempty"`
	SkipCertVerify      bool                  `yaml:"skip-cert-verify,omitempty"`
	Alpn                []string              `yaml:"alpn,omitempty"`
	XUDP                bool                  `yaml:"xudp,omitempty"`
	Servername          string                `yaml:"servername,omitempty"`
	WSOpts              WSOptions             `yaml:"ws-opts,omitempty"`
	AlterID             int                   `yaml:"alterId,omitempty"`
	GrpcOpts            GrpcOptions           `yaml:"grpc-opts,omitempty"`
	RealityOpts         RealityOptions        `yaml:"reality-opts,omitempty"`
	Protocol            string                `yaml:"protocol,omitempty"`
	Obfs                string                `yaml:"obfs,omitempty"`
	ObfsParam           string                `yaml:"obfs-param,omitempty"`
	ProtocolParam       string                `yaml:"protocol-param,omitempty"`
	Remarks             []string              `yaml:"remarks,omitempty"`
	HTTPOpts            HTTPOptions           `yaml:"http-opts,omitempty"`
	HTTP2Opts           HTTP2Options          `yaml:"h2-opts,omitempty"`
	PacketAddr          bool                  `yaml:"packet-addr,omitempty"`
	PacketEncoding      string                `yaml:"packet-encoding,omitempty"`
	GlobalPadding       bool                  `yaml:"global-padding,omitempty"`
	AuthenticatedLength bool                  `yaml:"authenticated-length,omitempty"`
	UDPOverTCP          bool                  `yaml:"udp-over-tcp,omitempty"`
	UDPOverTCPVersion   int                   `yaml:"udp-over-tcp-version,omitempty"`
	SubName             string                `yaml:"-"`
	Up                  string                `yaml:"up,omitempty"`
	Down                string                `yaml:"down,omitempty"`
	CustomCA            string                `yaml:"ca,omitempty"`
	CustomCAString      string                `yaml:"ca-str,omitempty"`
	CWND                int                   `yaml:"cwnd,omitempty"`
	Auth                string                `yaml:"auth,omitempty"`
	ReceiveWindowConn   int                   `yaml:"recv-window-conn,omitempty"`
	ReceiveWindow       int                   `yaml:"recv-window,omitempty"`
	DisableMTUDiscovery bool                  `yaml:"disable-mtu-discovery,omitempty"`
	FastOpen            bool                  `yaml:"fast-open,omitempty"`
	HopInterval         int                   `yaml:"hop-interval,omitempty"`
	Ports               string                `yaml:"ports,omitempty"`
	AuthStringOLD       string                `yaml:"auth_str,omitempty"`
	AuthString          string                `yaml:"auth-str,omitempty"`
	Ip                  string                `yaml:"ip,omitempty"`
	Ipv6                string                `yaml:"ipv6,omitempty"`
	PrivateKey          string                `yaml:"private-key,omitempty"`
	Workers             int                   `yaml:"workers,omitempty"`
	MTU                 int                   `yaml:"mtu,omitempty"`
	PersistentKeepalive int                   `yaml:"persistent-keepalive,omitempty"`
	Peers               []WireGuardPeerOption `yaml:"peers,omitempty"`
	RemoteDnsResolve    bool                  `yaml:"remote-dns-resolve,omitempty"`
	Dns                 []string              `yaml:"dns,omitempty"`
}

func (Proxy) MarshalYAML

func (p Proxy) MarshalYAML() (interface{}, error)

type ProxyGroup

type ProxyGroup struct {
	Type                string   `yaml:"type,omitempty"`
	Name                string   `yaml:"name,omitempty"`
	Proxies             []string `yaml:"proxies,omitempty"`
	IsCountryGrop       bool     `yaml:"-"`
	Url                 string   `yaml:"url,omitempty"`
	Interval            int      `yaml:"interval,omitempty"`
	Tolerance           int      `yaml:"tolerance,omitempty"`
	Lazy                bool     `yaml:"lazy"`
	Size                int      `yaml:"-"`
	DisableUDP          bool     `yaml:"disable-udp,omitempty"`
	Strategy            string   `yaml:"strategy,omitempty"`
	Icon                string   `yaml:"icon,omitempty"`
	Timeout             int      `yaml:"timeout,omitempty"`
	Use                 []string `yaml:"use,omitempty"`
	InterfaceName       string   `yaml:"interface-name,omitempty"`
	RoutingMark         int      `yaml:"routing-mark,omitempty"`
	IncludeAll          bool     `yaml:"include-all,omitempty"`
	IncludeAllProxies   bool     `yaml:"include-all-proxies,omitempty"`
	IncludeAllProviders bool     `yaml:"include-all-providers,omitempty"`
	Filter              string   `yaml:"filter,omitempty"`
	ExcludeFilter       string   `yaml:"exclude-filter,omitempty"`
	ExpectedStatus      int      `yaml:"expected-status,omitempty"`
	Hidden              bool     `yaml:"hidden,omitempty"`
}

type ProxyGroupsSortByName

type ProxyGroupsSortByName []ProxyGroup

func (ProxyGroupsSortByName) Len

func (p ProxyGroupsSortByName) Len() int

func (ProxyGroupsSortByName) Less

func (p ProxyGroupsSortByName) Less(i, j int) bool

func (ProxyGroupsSortByName) Swap

func (p ProxyGroupsSortByName) Swap(i, j int)

type ProxyGroupsSortBySize

type ProxyGroupsSortBySize []ProxyGroup

func (ProxyGroupsSortBySize) Len

func (p ProxyGroupsSortBySize) Len() int

func (ProxyGroupsSortBySize) Less

func (p ProxyGroupsSortBySize) Less(i, j int) bool

func (ProxyGroupsSortBySize) Swap

func (p ProxyGroupsSortBySize) Swap(i, j int)

type RawClashForAndroid

type RawClashForAndroid struct {
	AppendSystemDNS   bool   `yaml:"append-system-dns,omitempty" json:"append-system-dns"`
	UiSubtitlePattern string `yaml:"ui-subtitle-pattern,omitempty" json:"ui-subtitle-pattern"`
}

type RawDNS

type RawDNS struct {
	Enable            bool              `yaml:"enable,omitempty" json:"enable"`
	PreferH3          bool              `yaml:"prefer-h3,omitempty" json:"prefer-h3"`
	IPv6              bool              `yaml:"ipv6,omitempty" json:"ipv6"`
	IPv6Timeout       uint              `yaml:"ipv6-timeout,omitempty" json:"ipv6-timeout"`
	UseHosts          bool              `yaml:"use-hosts,omitempty" json:"use-hosts"`
	NameServer        []string          `yaml:"nameserver,omitempty" json:"nameserver"`
	Fallback          []string          `yaml:"fallback,omitempty" json:"fallback"`
	FallbackFilter    RawFallbackFilter `yaml:"fallback-filter,omitempty" json:"fallback-filter"`
	Listen            string            `yaml:"listen,omitempty" json:"listen"`
	EnhancedMode      string            `yaml:"enhanced-mode,omitempty" json:"enhanced-mode"`
	FakeIPRange       string            `yaml:"fake-ip-range,omitempty" json:"fake-ip-range"`
	FakeIPFilter      []string          `yaml:"fake-ip-filter,omitempty" json:"fake-ip-filter"`
	DefaultNameserver []string          `yaml:"default-nameserver,omitempty" json:"default-nameserver"`
	CacheAlgorithm    string            `yaml:"cache-algorithm,omitempty" json:"cache-algorithm"`
	//NameServerPolicy      *orderedmap.OrderedMap[string, any] `yaml:"nameserver-policy,omitempty" json:"nameserver-policy"`
	ProxyServerNameserver []string `yaml:"proxy-server-nameserver,omitempty" json:"proxy-server-nameserver"`
}

type RawFallbackFilter

type RawFallbackFilter struct {
	GeoIP     bool     `yaml:"geoip,omitempty" json:"geoip"`
	GeoIPCode string   `yaml:"geoip-code,omitempty" json:"geoip-code"`
	IPCIDR    []string `yaml:"ipcidr,omitempty" json:"ipcidr"`
	Domain    []string `yaml:"domain,omitempty" json:"domain"`
	GeoSite   []string `yaml:"geosite,omitempty" json:"geosite"`
}

type RawNTP

type RawNTP struct {
	Enable        bool   `yaml:"enable,omitempty"`
	Server        string `yaml:"server,omitempty"`
	ServerPort    int    `yaml:"server-port,omitempty"`
	Interval      int    `yaml:"interval,omitempty"`
	DialerProxy   string `yaml:"dialer-proxy,omitempty"`
	WriteToSystem bool   `yaml:"write-to-system,omitempty"`
}

type RawSniffer

type RawSniffer struct {
	Enable          bool                         `yaml:"enable,omitempty" json:"enable"`
	OverrideDest    bool                         `yaml:"override-destination,omitempty" json:"override-destination"`
	Sniffing        []string                     `yaml:"sniffing,omitempty" json:"sniffing"`
	ForceDomain     []string                     `yaml:"force-domain,omitempty" json:"force-domain"`
	SkipDomain      []string                     `yaml:"skip-domain,omitempty" json:"skip-domain"`
	Ports           []string                     `yaml:"port-whitelist,omitempty" json:"port-whitelist"`
	ForceDnsMapping bool                         `yaml:"force-dns-mapping,omitempty" json:"force-dns-mapping"`
	ParsePureIp     bool                         `yaml:"parse-pure-ip,omitempty" json:"parse-pure-ip"`
	Sniff           map[string]RawSniffingConfig `yaml:"sniff,omitempty" json:"sniff"`
}

type RawSniffingConfig

type RawSniffingConfig struct {
	Ports        []string `yaml:"ports,omitempty" json:"ports"`
	OverrideDest *bool    `yaml:"override-destination,omitempty" json:"override-destination"`
}

type RawTuicServer

type RawTuicServer struct {
	Enable                bool              `yaml:"enable,omitempty" json:"enable"`
	Listen                string            `yaml:"listen,omitempty" json:"listen"`
	Token                 []string          `yaml:"token,omitempty" json:"token"`
	Users                 map[string]string `yaml:"users,omitempty" json:"users,omitempty"`
	Certificate           string            `yaml:"certificate,omitempty" json:"certificate"`
	PrivateKey            string            `yaml:"private-key,omitempty" json:"private-key"`
	CongestionController  string            `yaml:"congestion-controller,omitempty" json:"congestion-controller,omitempty"`
	MaxIdleTime           int               `yaml:"max-idle-time,omitempty" json:"max-idle-time,omitempty"`
	AuthenticationTimeout int               `yaml:"authentication-timeout,omitempty" json:"authentication-timeout,omitempty"`
	ALPN                  []string          `yaml:"alpn,omitempty" json:"alpn,omitempty"`
	MaxUdpRelayPacketSize int               `yaml:"max-udp-relay-packet-size,omitempty" json:"max-udp-relay-packet-size,omitempty"`
	CWND                  int               `yaml:"cwnd,omitempty" json:"cwnd,omitempty"`
}

type RawTun

type RawTun struct {
	Enable              bool     `yaml:"enable,omitempty" json:"enable"`
	Device              string   `yaml:"device,omitempty" json:"device"`
	Stack               string   `yaml:"stack,omitempty" json:"stack"`
	DNSHijack           []string `yaml:"dns-hijack,omitempty" json:"dns-hijack"`
	AutoRoute           bool     `yaml:"auto-route,omitempty" json:"auto-route"`
	AutoDetectInterface bool     `yaml:"auto-detect-interface,omitempty"`
	RedirectToTun       []string `yaml:"-,omitempty" json:"-"`

	MTU        uint32 `yaml:"mtu,omitempty" json:"mtu,omitempty"`
	GSO        bool   `yaml:"gso,omitempty" json:"gso,omitempty"`
	GSOMaxSize uint32 `yaml:"gso-max-size,omitempty" json:"gso-max-size,omitempty"`
	//Inet4Address           []netip.Prefix `yaml:"inet4-address,omitempty" json:"inet4_address,omitempty"`
	Inet6Address             []uint32 `yaml:"inet6-address,omitempty" json:"inet6_address,omitempty"`
	StrictRoute              bool     `yaml:"strict-route,omitempty" json:"strict_route,omitempty"`
	Inet4RouteAddress        []uint32 `yaml:"inet4-route-address,omitempty" json:"inet4_route_address,omitempty"`
	Inet6RouteAddress        []uint32 `yaml:"inet6-route-address,omitempty" json:"inet6_route_address,omitempty"`
	Inet4RouteExcludeAddress []uint32 `yaml:"inet4-route-exclude-address,omitempty" json:"inet4_route_exclude_address,omitempty"`
	Inet6RouteExcludeAddress []uint32 `yaml:"inet6-route-exclude-address,omitempty" json:"inet6_route_exclude_address,omitempty"`
	IncludeInterface         []string `yaml:"include-interface,omitempty" json:"include-interface,omitempty"`
	ExcludeInterface         []string `yaml:"exclude-interface,omitempty" json:"exclude-interface,omitempty"`
	IncludeUID               []uint32 `yaml:"include-uid,omitempty" json:"include_uid,omitempty"`
	IncludeUIDRange          []string `yaml:"include-uid-range,omitempty" json:"include_uid_range,omitempty"`
	ExcludeUID               []uint32 `yaml:"exclude-uid,omitempty" json:"exclude_uid,omitempty"`
	ExcludeUIDRange          []string `yaml:"exclude-uid-range,omitempty" json:"exclude_uid_range,omitempty"`
	IncludeAndroidUser       []int    `yaml:"include-android-user,omitempty" json:"include_android_user,omitempty"`
	IncludePackage           []string `yaml:"include-package,omitempty" json:"include_package,omitempty"`
	ExcludePackage           []string `yaml:"exclude-package,omitempty" json:"exclude_package,omitempty"`
	EndpointIndependentNat   bool     `yaml:"endpoint-independent-nat,omitempty" json:"endpoint_independent_nat,omitempty"`
	UDPTimeout               int64    `yaml:"udp-timeout,omitempty" json:"udp_timeout,omitempty"`
	FileDescriptor           int      `yaml:"file-descriptor,omitempty" json:"file-descriptor"`
}

type RealityOptions

type RealityOptions struct {
	PublicKey string `yaml:"public-key"`
	ShortID   string `yaml:"short-id,omitempty"`
}

type RuleProvider

type RuleProvider struct {
	Type     string `yaml:"type,omitempty"`
	Behavior string `yaml:"behavior,omitempty"`
	Url      string `yaml:"url,omitempty"`
	Path     string `yaml:"path,omitempty"`
	Interval int    `yaml:"interval,omitempty"`
}

type ShadowSocks

type ShadowSocks struct {
	Type              string         `yaml:"type"`
	Name              string         `yaml:"name"`
	Server            string         `yaml:"server"`
	Port              int            `yaml:"port"`
	Password          string         `yaml:"password"`
	Cipher            string         `yaml:"cipher"`
	UDP               bool           `yaml:"udp,omitempty"`
	Plugin            string         `yaml:"plugin,omitempty"`
	PluginOpts        map[string]any `yaml:"plugin-opts,omitempty"`
	UDPOverTCP        bool           `yaml:"udp-over-tcp,omitempty"`
	UDPOverTCPVersion int            `yaml:"udp-over-tcp-version,omitempty"`
	ClientFingerprint string         `yaml:"client-fingerprint,omitempty"`
}

func ProxyToShadowSocks

func ProxyToShadowSocks(p Proxy) ShadowSocks

type ShadowSocksR

type ShadowSocksR struct {
	Type          string `yaml:"type"`
	Name          string `yaml:"name"`
	Server        string `yaml:"server"`
	Port          int    `yaml:"port"`
	Password      string `yaml:"password"`
	Cipher        string `yaml:"cipher"`
	Obfs          string `yaml:"obfs"`
	ObfsParam     string `yaml:"obfs-param,omitempty"`
	Protocol      string `yaml:"protocol"`
	ProtocolParam string `yaml:"protocol-param,omitempty"`
	UDP           bool   `yaml:"udp,omitempty"`
}

func ProxyToShadowSocksR

func ProxyToShadowSocksR(p Proxy) ShadowSocksR
type ShortLink struct {
	Hash            string
	Url             string
	Password        string
	LastRequestTime int64
}

type SmuxStruct

type SmuxStruct struct {
	Enabled bool `yaml:"enable"`
}

type Subscription

type Subscription struct {
	Port                  int      `yaml:"port,omitempty" json:"port"`
	SocksPort             int      `yaml:"socks-port,omitempty" json:"socks-port"`
	RedirPort             int      `yaml:"redir-port,omitempty" json:"redir-port"`
	TProxyPort            int      `yaml:"tproxy-port,omitempty" json:"tproxy-port"`
	MixedPort             int      `yaml:"mixed-port,omitempty" json:"mixed-port"`
	ShadowSocksConfig     string   `yaml:"ss-config,omitempty"`
	VmessConfig           string   `yaml:"vmess-config,omitempty"`
	InboundTfo            bool     `yaml:"inbound-tfo,omitempty"`
	InboundMPTCP          bool     `yaml:"inbound-mptcp,omitempty"`
	Authentication        []string `yaml:"authentication,omitempty" json:"authentication"`
	SkipAuthPrefixes      []string `yaml:"skip-auth-prefixes,omitempty"`
	LanAllowedIPs         []string `yaml:"lan-allowed-ips,omitempty"`
	LanDisAllowedIPs      []string `yaml:"lan-disallowed-ips,omitempty"`
	AllowLan              bool     `yaml:"allow-lan,omitempty" json:"allow-lan"`
	BindAddress           string   `yaml:"bind-address,omitempty" json:"bind-address"`
	Mode                  string   `yaml:"mode,omitempty" json:"mode"`
	UnifiedDelay          bool     `yaml:"unified-delay,omitempty" json:"unified-delay"`
	LogLevel              string   `yaml:"log-level,omitempty" json:"log-level"`
	IPv6                  bool     `yaml:"ipv6,omitempty" json:"ipv6"`
	ExternalController    string   `yaml:"external-controller,omitempty"`
	ExternalControllerTLS string   `yaml:"external-controller-tls,omitempty"`
	ExternalUI            string   `yaml:"external-ui,omitempty"`
	ExternalUIURL         string   `yaml:"external-ui-url,omitempty" json:"external-ui-url"`
	ExternalUIName        string   `yaml:"external-ui-name,omitempty" json:"external-ui-name"`
	Secret                string   `yaml:"secret,omitempty"`
	Interface             string   `yaml:"interface-name,omitempty"`
	RoutingMark           int      `yaml:"routing-mark,omitempty"`
	//Tunnels                 []LC.Tunnel       `yaml:"tunnels,omitempty"`
	GeoAutoUpdate           bool   `yaml:"geo-auto-update,omitempty" json:"geo-auto-update"`
	GeoUpdateInterval       int    `yaml:"geo-update-interval,omitempty" json:"geo-update-interval"`
	GeodataMode             bool   `yaml:"geodata-mode,omitempty" json:"geodata-mode"`
	GeodataLoader           string `yaml:"geodata-loader,omitempty" json:"geodata-loader"`
	GeositeMatcher          string `yaml:"geosite-matcher,omitempty" json:"geosite-matcher"`
	TCPConcurrent           bool   `yaml:"tcp-concurrent,omitempty" json:"tcp-concurrent"`
	FindProcessMode         string `yaml:"find-process-mode,omitempty" json:"find-process-mode"`
	GlobalClientFingerprint string `yaml:"global-client-fingerprint,omitempty"`
	GlobalUA                string `yaml:"global-ua,omitempty"`
	KeepAliveInterval       int    `yaml:"keep-alive-interval,omitempty"`

	Sniffer       RawSniffer                `yaml:"sniffer,omitempty" json:"sniffer"`
	ProxyProvider map[string]map[string]any `yaml:"proxy-providers,omitempty"`
	RuleProviders map[string]RuleProvider   `yaml:"rule-providers,omitempty"`
	Hosts         map[string]any            `yaml:"hosts,omitempty" json:"hosts"`
	NTP           RawNTP                    `yaml:"ntp,omitempty" json:"ntp"`
	DNS           RawDNS                    `yaml:"dns,omitempty" json:"dns"`
	Tun           RawTun                    `yaml:"tun,omitempty"`
	TuicServer    RawTuicServer             `yaml:"tuic-server,omitempty"`
	EBpf          EBpf                      `yaml:"ebpf,omitempty"`
	IPTables      IPTables                  `yaml:"iptables,omitempty"`
	Experimental  Experimental              `yaml:"experimental,omitempty"`
	Profile       Profile                   `yaml:"profile,omitempty"`
	GeoXUrl       GeoXUrl                   `yaml:"geox-url,omitempty"`
	Proxies       []Proxy                   `yaml:"proxies,omitempty"`
	ProxyGroups   []ProxyGroup              `yaml:"proxy-groups,omitempty"`
	Rules         []string                  `yaml:"rules,omitempty"`
	SubRules      map[string][]string       `yaml:"sub-rules,omitempty"`
	RawTLS        TLS                       `yaml:"tls,omitempty"`
	Listeners     []map[string]any          `yaml:"listeners,omitempty"`

	ClashForAndroid RawClashForAndroid `yaml:"clash-for-android,omitempty" json:"clash-for-android"`
}

type TLS

type TLS struct {
	Certificate     string   `yaml:"certificate,omitempty"`
	PrivateKey      string   `yaml:"private-key,omitempty"`
	CustomTrustCert []string `yaml:"custom-certifactes,omitempty"`
}

type Tags

type Tags []struct {
	Name       string `json:"name"`
	ZipballUrl string `json:"zipball_url"`
	TarballUrl string `json:"tarball_url"`
	Commit     struct {
		Sha string `json:"sha"`
		Url string `json:"url"`
	}
	NodeId string `json:"node_id"`
}

type Trojan

type Trojan struct {
	Type              string         `yaml:"type"`
	Name              string         `yaml:"name"`
	Server            string         `yaml:"server"`
	Port              int            `yaml:"port"`
	Password          string         `yaml:"password"`
	ALPN              []string       `yaml:"alpn,omitempty"`
	SNI               string         `yaml:"sni,omitempty"`
	SkipCertVerify    bool           `yaml:"skip-cert-verify,omitempty"`
	Fingerprint       string         `yaml:"fingerprint,omitempty"`
	UDP               bool           `yaml:"udp,omitempty"`
	Network           string         `yaml:"network,omitempty"`
	RealityOpts       RealityOptions `yaml:"reality-opts,omitempty"`
	GrpcOpts          GrpcOptions    `yaml:"grpc-opts,omitempty"`
	WSOpts            WSOptions      `yaml:"ws-opts,omitempty"`
	ClientFingerprint string         `yaml:"client-fingerprint,omitempty"`
}

func ProxyToTrojan

func ProxyToTrojan(p Proxy) Trojan

type Vless

type Vless struct {
	Type              string            `yaml:"type"`
	Name              string            `yaml:"name"`
	Server            string            `yaml:"server"`
	Port              int               `yaml:"port"`
	UUID              string            `yaml:"uuid"`
	Flow              string            `yaml:"flow,omitempty"`
	TLS               bool              `yaml:"tls,omitempty"`
	ALPN              []string          `yaml:"alpn,omitempty"`
	UDP               bool              `yaml:"udp,omitempty"`
	PacketAddr        bool              `yaml:"packet-addr,omitempty"`
	XUDP              bool              `yaml:"xudp,omitempty"`
	PacketEncoding    string            `yaml:"packet-encoding,omitempty"`
	Network           string            `yaml:"network,omitempty"`
	RealityOpts       RealityOptions    `yaml:"reality-opts,omitempty"`
	HTTPOpts          HTTPOptions       `yaml:"http-opts,omitempty"`
	HTTP2Opts         HTTP2Options      `yaml:"h2-opts,omitempty"`
	GrpcOpts          GrpcOptions       `yaml:"grpc-opts,omitempty"`
	WSOpts            WSOptions         `yaml:"ws-opts,omitempty"`
	WSPath            string            `yaml:"ws-path,omitempty"`
	WSHeaders         map[string]string `yaml:"ws-headers,omitempty"`
	SkipCertVerify    bool              `yaml:"skip-cert-verify,omitempty"`
	Fingerprint       string            `yaml:"fingerprint,omitempty"`
	ServerName        string            `yaml:"servername,omitempty"`
	ClientFingerprint string            `yaml:"client-fingerprint,omitempty"`
}

func ProxyToVless

func ProxyToVless(p Proxy) Vless

type Vmess

type Vmess struct {
	Type                string         `yaml:"type"`
	Name                string         `yaml:"name"`
	Server              string         `yaml:"server"`
	Port                int            `yaml:"port"`
	UUID                string         `yaml:"uuid"`
	AlterID             int            `yaml:"alterId"`
	Cipher              string         `yaml:"cipher"`
	UDP                 bool           `yaml:"udp,omitempty"`
	Network             string         `yaml:"network,omitempty"`
	TLS                 bool           `yaml:"tls,omitempty"`
	ALPN                []string       `yaml:"alpn,omitempty"`
	SkipCertVerify      bool           `yaml:"skip-cert-verify,omitempty"`
	Fingerprint         string         `yaml:"fingerprint,omitempty"`
	ServerName          string         `yaml:"servername,omitempty"`
	RealityOpts         RealityOptions `yaml:"reality-opts,omitempty"`
	HTTPOpts            HTTPOptions    `yaml:"http-opts,omitempty"`
	HTTP2Opts           HTTP2Options   `yaml:"h2-opts,omitempty"`
	GrpcOpts            GrpcOptions    `yaml:"grpc-opts,omitempty"`
	WSOpts              WSOptions      `yaml:"ws-opts,omitempty"`
	PacketAddr          bool           `yaml:"packet-addr,omitempty"`
	XUDP                bool           `yaml:"xudp,omitempty"`
	PacketEncoding      string         `yaml:"packet-encoding,omitempty"`
	GlobalPadding       bool           `yaml:"global-padding,omitempty"`
	AuthenticatedLength bool           `yaml:"authenticated-length,omitempty"`
	ClientFingerprint   string         `yaml:"client-fingerprint,omitempty"`
}

func ProxyToVmess

func ProxyToVmess(p Proxy) Vmess

type VmessJson

type VmessJson struct {
	V    string      `json:"v"`
	Ps   string      `json:"ps"`
	Add  string      `json:"add"`
	Port interface{} `json:"port"`
	Id   string      `json:"id"`
	Aid  interface{} `json:"aid"`
	Scy  string      `json:"scy"`
	Net  string      `json:"net"`
	Type string      `json:"type"`
	Host string      `json:"host"`
	Path string      `json:"path"`
	Tls  string      `json:"tls"`
	Sni  string      `json:"sni"`
	Alpn string      `json:"alpn"`
	Fp   string      `json:"fp"`
}

type WSOptions

type WSOptions struct {
	Path                string            `yaml:"path,omitempty"`
	Headers             map[string]string `yaml:"headers,omitempty"`
	MaxEarlyData        int               `yaml:"max-early-data,omitempty"`
	EarlyDataHeaderName string            `yaml:"early-data-header-name,omitempty"`
}

type WireGuardPeerOption

type WireGuardPeerOption struct {
	Server       string   `yaml:"server"`
	Port         int      `yaml:"port"`
	PublicKey    string   `yaml:"public-key,omitempty"`
	PreSharedKey string   `yaml:"pre-shared-key,omitempty"`
	Reserved     []uint8  `yaml:"reserved,omitempty"`
	AllowedIPs   []string `yaml:"allowed-ips,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL