hysteria2: Add gecko obfs

This commit is contained in:
世界
2026-05-25 13:11:59 +08:00
parent 3488377cf3
commit 87c36ab251
10 changed files with 149 additions and 16 deletions
+9
View File
@@ -52,6 +52,8 @@ func NewInbound(ctx context.Context, router adapter.Router, logger log.ContextLo
return nil, err
}
var salamanderPassword string
var geckoPassword string
var geckoMinPacketSize, geckoMaxPacketSize int
if options.Obfs != nil {
if options.Obfs.Password == "" {
return nil, E.New("missing obfs password")
@@ -59,6 +61,10 @@ func NewInbound(ctx context.Context, router adapter.Router, logger log.ContextLo
switch options.Obfs.Type {
case hysteria2.ObfsTypeSalamander:
salamanderPassword = options.Obfs.Password
case hysteria2.ObfsTypeGecko:
geckoPassword = options.Obfs.Password
geckoMinPacketSize = options.Obfs.GeckoOptions.MinPacketSize
geckoMaxPacketSize = options.Obfs.GeckoOptions.MaxPacketSize
default:
return nil, E.New("unknown obfs type: ", options.Obfs.Type)
}
@@ -154,6 +160,9 @@ func NewInbound(ctx context.Context, router adapter.Router, logger log.ContextLo
SendBPS: uint64(options.UpMbps * hysteria.MbpsToBps),
ReceiveBPS: uint64(options.DownMbps * hysteria.MbpsToBps),
SalamanderPassword: salamanderPassword,
GeckoPassword: geckoPassword,
GeckoMinPacketSize: geckoMinPacketSize,
GeckoMaxPacketSize: geckoMaxPacketSize,
TLSConfig: tlsConfig,
QUICOptions: qtls.QUICOptions{
IdleTimeout: options.IdleTimeout.Build(),
+9
View File
@@ -59,6 +59,8 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
return nil, err
}
var salamanderPassword string
var geckoPassword string
var geckoMinPacketSize, geckoMaxPacketSize int
if options.Obfs != nil {
if options.Obfs.Password == "" {
return nil, E.New("missing obfs password")
@@ -66,6 +68,10 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
switch options.Obfs.Type {
case hysteria2.ObfsTypeSalamander:
salamanderPassword = options.Obfs.Password
case hysteria2.ObfsTypeGecko:
geckoPassword = options.Obfs.Password
geckoMinPacketSize = options.Obfs.GeckoOptions.MinPacketSize
geckoMaxPacketSize = options.Obfs.GeckoOptions.MaxPacketSize
default:
return nil, E.New("unknown obfs type: ", options.Obfs.Type)
}
@@ -121,6 +127,9 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
SendBPS: uint64(options.UpMbps * hysteria.MbpsToBps),
ReceiveBPS: uint64(options.DownMbps * hysteria.MbpsToBps),
SalamanderPassword: salamanderPassword,
GeckoPassword: geckoPassword,
GeckoMinPacketSize: geckoMinPacketSize,
GeckoMaxPacketSize: geckoMaxPacketSize,
Password: options.Password,
TLSConfig: tlsConfig,
QUICOptions: qtls.QUICOptions{