mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-05-14 00:51:12 +03:00
Add MTProxy, MASQUE, VPN, Link parser. Update AmneziaWG. Remove Tunneling
This commit is contained in:
89
option/mtproxy.go
Normal file
89
option/mtproxy.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package option
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/sagernet/sing/common/json/badoption"
|
||||
)
|
||||
|
||||
type MTProxyInboundOptions struct {
|
||||
ListenOptions
|
||||
Users []MTProxyUser `json:"users,omitempty"`
|
||||
Concurrency uint `json:"concurrency,omitempty"`
|
||||
DomainFrontingPort uint `json:"domain_fronting_port,omitempty"`
|
||||
DomainFrontingIP string `json:"domain_fronting_ip,omitempty"`
|
||||
DomainFrontingProxyProtocol bool `json:"domain_fronting_proxy_protocol,omitempty"`
|
||||
PreferIP string `json:"prefer_ip,omitempty"`
|
||||
AutoUpdate bool `json:"auto_update,omitempty"`
|
||||
AllowFallbackOnUnknownDC bool `json:"allow_fallback_on_unknown_dc,omitempty"`
|
||||
TolerateTimeSkewness badoption.Duration `json:"tolerate_time_skewness,omitempty"`
|
||||
IdleTimeout badoption.Duration `json:"idle_timeout,omitempty"`
|
||||
HandshakeTimeout badoption.Duration `json:"handshake_timeout,omitempty"`
|
||||
DoppelGangerURLs []string `json:"doppelganger_urls,omitempty"`
|
||||
DoppelGangerPerRaid uint `json:"doppelganger_per_raid,omitempty"`
|
||||
DoppelGangerEach badoption.Duration `json:"doppelganger_each,omitempty"`
|
||||
DoppelGangerDRS bool `json:"doppelganger_drs,omitempty"`
|
||||
ThrottleMaxConnections uint `json:"throttle_max_connections,omitempty"`
|
||||
ThrottleCheckInterval badoption.Duration `json:"throttle_check_interval,omitempty"`
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetConcurrency() uint {
|
||||
if o.Concurrency == 0 {
|
||||
return 8192
|
||||
}
|
||||
return o.Concurrency
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetDomainFrontingPort() uint {
|
||||
if o.DomainFrontingPort == 0 {
|
||||
return 443
|
||||
}
|
||||
return o.DomainFrontingPort
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetPreferIP() string {
|
||||
if o.PreferIP == "" {
|
||||
return "prefer-ipv4"
|
||||
}
|
||||
return o.PreferIP
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetIdleTimeout() time.Duration {
|
||||
if o.IdleTimeout == 0 {
|
||||
return 5 * time.Minute
|
||||
}
|
||||
return o.IdleTimeout.Build()
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetHandshakeTimeout() time.Duration {
|
||||
if o.HandshakeTimeout == 0 {
|
||||
return 10 * time.Second
|
||||
}
|
||||
return o.HandshakeTimeout.Build()
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetDoppelGangerPerRaid() uint {
|
||||
if o.DoppelGangerPerRaid == 0 {
|
||||
return 10
|
||||
}
|
||||
return o.DoppelGangerPerRaid
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetDoppelGangerEach() time.Duration {
|
||||
if o.HandshakeTimeout == 0 {
|
||||
return 6 * time.Hour
|
||||
}
|
||||
return o.DoppelGangerEach.Build()
|
||||
}
|
||||
|
||||
func (o *MTProxyInboundOptions) GetThrottleCheckInterval() time.Duration {
|
||||
if o.ThrottleCheckInterval == 0 {
|
||||
return 5 * time.Second
|
||||
}
|
||||
return o.ThrottleCheckInterval.Build()
|
||||
}
|
||||
|
||||
type MTProxyUser struct {
|
||||
Name string `json:"name"`
|
||||
Secret string `json:"secret"`
|
||||
}
|
||||
Reference in New Issue
Block a user