Documentation ¶
Index ¶
- Variables
- func GrepSSLinkFromString(text string) []string
- func GrepSSRLinkFromString(text string) []string
- func GrepTrojanLinkFromString(text string) []string
- func GrepVmessLinkFromString(text string) []string
- type Base
- func (b *Base) AddBeforeName(name string)
- func (b *Base) AddToName(name string)
- func (b *Base) BaseInfo() *Base
- func (b *Base) Clone() Base
- func (b *Base) SetCountry(country string)
- func (b *Base) SetIP(ip string)
- func (b *Base) SetName(name string)
- func (b *Base) SetUseable(useable bool)
- func (b *Base) TypeName() string
- type HTTP2Options
- type HTTPOptions
- type Proxy
- type ProxyList
- func (ps ProxyList) Clone() ProxyList
- func (ps ProxyList) Deduplication() ProxyList
- func (ps ProxyList) Derive() ProxyList
- func (ps ProxyList) Len() int
- func (ps ProxyList) Less(i, j int) bool
- func (ps ProxyList) NameAddCounrty() ProxyList
- func (ps ProxyList) NameAddIndex() ProxyList
- func (ps ProxyList) NameAddTG() ProxyList
- func (ps ProxyList) NameClear() ProxyList
- func (ps ProxyList) NameReIndex() ProxyList
- func (ps ProxyList) Sort() ProxyList
- func (ps ProxyList) Swap(i, j int)
- func (ps ProxyList) TypeLen(t string) int
- func (ps *ProxyList) UniqAppendProxy(new Proxy) ProxyList
- func (ps *ProxyList) UniqAppendProxyList(new ProxyList) ProxyList
- type Shadowsocks
- type ShadowsocksR
- type Trojan
- type Vmess
Constants ¶
This section is empty.
Variables ¶
var ( ErrorNotSSRLink = errors.New("not a correct ssr link") ErrorPasswordParseFail = errors.New("password parse failed") ErrorPathNotComplete = errors.New("path not complete") ErrorMissingQuery = errors.New("link missing query") ErrorProtocolParamParseFail = errors.New("protocol param parse failed") ErrorObfsParamParseFail = errors.New("obfs param parse failed") )
var ( ErrorNotVmessLink = errors.New("not a correct vmess link") ErrorVmessPayloadParseFail = errors.New("vmess link payload parse failed") )
var ( // ErrorNotSSLink is an error type ErrorNotSSLink = errors.New("not a correct ss link") )
var (
ErrorNotTrojanink = errors.New("not a correct trojan link")
)
var ErrorTypeCanNotConvert = errors.New("type not support")
var SSCipherList = []string{
"aes-128-gcm",
"aes-192-gcm",
"aes-256-gcm",
"aes-128-cfb",
"aes-192-cfb",
"aes-256-cfb",
"aes-128-ctr",
"aes-192-ctr",
"aes-256-ctr",
"rc4-md5",
"chacha20-ietf",
"xchacha20",
"chacha20-ietf-poly1305",
"xchacha20-ietf-poly1305",
}
var SSRCipherList = []string{
"aes-128-cfb",
"aes-192-cfb",
"aes-256-cfb",
"aes-128-ctr",
"aes-192-ctr",
"aes-256-ctr",
"aes-128-ofb",
"aes-192-ofb",
"aes-256-ofb",
"des-cfb",
"bf-cfb",
"cast5-cfb",
"rc4-md5",
"chacha20-ietf",
"salsa20",
"camellia-128-cfb",
"camellia-192-cfb",
"camellia-256-cfb",
"idea-cfb",
"rc2-cfb",
"seed-cfb",
}
Functions ¶
func GrepSSLinkFromString ¶
GrepSSLinkFromString() remove web fuzz characters before a ss link
func GrepSSRLinkFromString ¶
func GrepVmessLinkFromString ¶
Types ¶
type Base ¶
type Base struct { Name string `yaml:"name" json:"name" gorm:"index"` Server string `yaml:"server" json:"server" gorm:"index"` Type string `yaml:"type" json:"type" gorm:"index"` Country string `yaml:"country,omitempty" json:"country,omitempty" gorm:"index"` Port int `yaml:"port" json:"port" gorm:"index"` UDP bool `yaml:"udp,omitempty" json:"udp,omitempty"` Useable bool `yaml:"useable,omitempty" json:"useable,omitempty" gorm:"index"` }
Base implements interface Proxy. It's the basic proxy struct. Vmess etc extends Base
func (*Base) AddBeforeName ¶
func (*Base) SetCountry ¶
SetUseable() set Base info "Country" (string)
func (*Base) SetUseable ¶
SetUseable() set Base info "Useable" (true or false)
type HTTP2Options ¶
type HTTPOptions ¶
type Proxy ¶
type Proxy interface { String() string ToClash() string ToSurge() string Link() string Identifier() string SetName(name string) AddToName(name string) SetIP(ip string) TypeName() string //ss ssr vmess trojan BaseInfo() *Base Clone() Proxy SetUseable(useable bool) SetCountry(country string) }
func ParseProxyFromLink ¶
type ProxyList ¶
type ProxyList []Proxy
func (ProxyList) Deduplication ¶
Deduplication by proxy identifier
func (ProxyList) NameAddCounrty ¶
func (ProxyList) NameAddIndex ¶
func (ProxyList) NameReIndex ¶
func (*ProxyList) UniqAppendProxy ¶
Append an unique new proxy to original ProxyList
func (*ProxyList) UniqAppendProxyList ¶
Append unique new proxies to original ProxyList
type Shadowsocks ¶
type Shadowsocks struct { Base Password string `yaml:"password" json:"password"` Cipher string `yaml:"cipher" json:"cipher"` Plugin string `yaml:"plugin,omitempty" json:"plugin,omitempty"` PluginOpts map[string]interface{} `yaml:"plugin-opts,omitempty" json:"plugin-opts,omitempty"` }
Shadowsocks is a type of proxy
func Convert2SS ¶
func Convert2SS(p Proxy) (ss *Shadowsocks, err error)
Convert2SS convert proxy to Shadowsocks if possible
func ParseSSLink ¶
func ParseSSLink(link string) (*Shadowsocks, error)
ParseSSLink() parses an ss link to ss proxy
func (Shadowsocks) Clone ¶
func (ss Shadowsocks) Clone() Proxy
func (Shadowsocks) Identifier ¶
func (ss Shadowsocks) Identifier() string
Identifier generates an unique identifier of one proxy
func (Shadowsocks) Link ¶
func (ss Shadowsocks) Link() (link string)
https://shadowsocks.org/en/config/quick-guide.html Link converts a ss proxy to string
func (Shadowsocks) String ¶
func (ss Shadowsocks) String() string
func (Shadowsocks) ToClash ¶
func (ss Shadowsocks) ToClash() string
ToClash converts proxy to clash proxy string
func (Shadowsocks) ToSurge ¶
func (ss Shadowsocks) ToSurge() string
ToSurge converts proxy to surge proxy string
type ShadowsocksR ¶
type ShadowsocksR struct { Base Password string `yaml:"password" json:"password"` Cipher string `yaml:"cipher" json:"cipher"` Protocol string `yaml:"protocol" json:"protocol"` ProtocolParam string `yaml:"protocol-param,omitempty" json:"protocol-param,omitempty"` Obfs string `yaml:"obfs" json:"obfs"` ObfsParam string `yaml:"obfs-param,omitempty" json:"obfs-param,omitempty"` }
字段依据clash的配置设计
func Convert2SSR ¶
func Convert2SSR(p Proxy) (ssr *ShadowsocksR, err error)
Convert2SS convert proxy to ShadowsocksR if possible
func ParseSSRLink ¶
func ParseSSRLink(link string) (*ShadowsocksR, error)
func (ShadowsocksR) Clone ¶
func (ssr ShadowsocksR) Clone() Proxy
func (ShadowsocksR) Identifier ¶
func (ssr ShadowsocksR) Identifier() string
func (ShadowsocksR) Link ¶
func (ssr ShadowsocksR) Link() (link string)
https://github.com/HMBSbige/ShadowsocksR-Windows/wiki/SSR-QRcode-scheme
func (ShadowsocksR) String ¶
func (ssr ShadowsocksR) String() string
func (ShadowsocksR) ToClash ¶
func (ssr ShadowsocksR) ToClash() string
func (ShadowsocksR) ToSurge ¶
func (ssr ShadowsocksR) ToSurge() string
type Trojan ¶
type Trojan struct { Base Password string `yaml:"password" json:"password"` ALPN []string `yaml:"alpn,omitempty" json:"alpn,omitempty"` SNI string `yaml:"sni,omitempty" json:"sni,omitempty"` SkipCertVerify bool `yaml:"skip-cert-verify,omitempty" json:"skip-cert-verify,omitempty"` UDP bool `yaml:"udp,omitempty" json:"udp,omitempty"` }
func ParseTrojanLink ¶
func (Trojan) Identifier ¶
type Vmess ¶
type Vmess struct { Base UUID string `yaml:"uuid" json:"uuid"` AlterID int `yaml:"alterId" json:"alterId"` Cipher string `yaml:"cipher" json:"cipher"` Network string `yaml:"network,omitempty" json:"network,omitempty"` WSPath string `yaml:"ws-path,omitempty" json:"ws-path,omitempty"` ServerName string `yaml:"servername,omitempty" json:"servername,omitempty"` WSHeaders map[string]string `yaml:"ws-headers,omitempty" json:"ws-headers,omitempty"` HTTPOpts HTTPOptions `yaml:"http-opts,omitempty" json:"http-opts,omitempty"` HTTP2Opts HTTP2Options `yaml:"h2-opts,omitempty" json:"h2-opts,omitempty"` TLS bool `yaml:"tls,omitempty" json:"tls,omitempty"` SkipCertVerify bool `yaml:"skip-cert-verify,omitempty" json:"skip-cert-verify,omitempty"` }