Add MTProxy, MASQUE, VPN, Link parser. Update AmneziaWG. Remove Tunneling

This commit is contained in:
Sergei Maklagin
2026-04-29 22:11:30 +03:00
parent 09f9f114aa
commit 04908a6a67
158 changed files with 7994 additions and 2277 deletions

12
include/masque.go Normal file
View File

@@ -0,0 +1,12 @@
//go:build with_masque
package include
import (
"github.com/sagernet/sing-box/adapter/outbound"
"github.com/sagernet/sing-box/protocol/masque"
)
func registerMASQUEOutbound(registry *outbound.Registry) {
masque.RegisterOutbound(registry)
}

20
include/masque_stub.go Normal file
View File

@@ -0,0 +1,20 @@
//go:build !with_masque
package include
import (
"context"
"github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing-box/adapter/outbound"
C "github.com/sagernet/sing-box/constant"
"github.com/sagernet/sing-box/log"
"github.com/sagernet/sing-box/option"
E "github.com/sagernet/sing/common/exceptions"
)
func registerMASQUEOutbound(registry *outbound.Registry) {
outbound.Register[option.MASQUEOutboundOptions](registry, C.TypeMASQUE, func(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.MASQUEOutboundOptions) (adapter.Outbound, error) {
return nil, E.New(`MASQUE outbound is not included in this build, rebuild with -tags with_masque`)
})
}

12
include/mtproxy.go Normal file
View File

@@ -0,0 +1,12 @@
//go:build with_mtproxy
package include
import (
"github.com/sagernet/sing-box/adapter/inbound"
"github.com/sagernet/sing-box/protocol/mtproxy"
)
func registerMTProxyInbound(registry *inbound.Registry) {
mtproxy.RegisterInbound(registry)
}

20
include/mtproxy_stub.go Normal file
View File

@@ -0,0 +1,20 @@
//go:build !with_mtproxy
package include
import (
"context"
"github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing-box/adapter/inbound"
C "github.com/sagernet/sing-box/constant"
"github.com/sagernet/sing-box/log"
"github.com/sagernet/sing-box/option"
E "github.com/sagernet/sing/common/exceptions"
)
func registerMTProxyInbound(registry *inbound.Registry) {
inbound.Register[option.MTProxyInboundOptions](registry, C.TypeMTProxy, func(ctx context.Context, router adapter.Router, logger log.ContextLogger, tag string, options option.MTProxyInboundOptions) (adapter.Inbound, error) {
return nil, E.New(`MTProxy is not included in this build, rebuild with -tags with_mtproxy`)
})
}

View File

@@ -8,6 +8,7 @@ import (
"github.com/sagernet/sing-box/adapter/endpoint"
"github.com/sagernet/sing-box/adapter/inbound"
"github.com/sagernet/sing-box/adapter/outbound"
"github.com/sagernet/sing-box/adapter/provider"
"github.com/sagernet/sing-box/adapter/service"
C "github.com/sagernet/sing-box/constant"
"github.com/sagernet/sing-box/dns"
@@ -28,6 +29,7 @@ import (
"github.com/sagernet/sing-box/protocol/mieru"
"github.com/sagernet/sing-box/protocol/mixed"
"github.com/sagernet/sing-box/protocol/naive"
"github.com/sagernet/sing-box/protocol/parser"
"github.com/sagernet/sing-box/protocol/redirect"
"github.com/sagernet/sing-box/protocol/shadowsocks"
"github.com/sagernet/sing-box/protocol/shadowtls"
@@ -36,9 +38,11 @@ import (
"github.com/sagernet/sing-box/protocol/tor"
"github.com/sagernet/sing-box/protocol/trojan"
"github.com/sagernet/sing-box/protocol/tun"
"github.com/sagernet/sing-box/protocol/tunnel"
"github.com/sagernet/sing-box/protocol/vless"
"github.com/sagernet/sing-box/protocol/vmess"
"github.com/sagernet/sing-box/protocol/vpn"
localProvider "github.com/sagernet/sing-box/provider/local"
remoteProvider "github.com/sagernet/sing-box/provider/remote"
"github.com/sagernet/sing-box/service/admin_panel"
"github.com/sagernet/sing-box/service/manager"
"github.com/sagernet/sing-box/service/node"
@@ -50,7 +54,7 @@ import (
)
func Context(ctx context.Context) context.Context {
return box.Context(ctx, InboundRegistry(), OutboundRegistry(), EndpointRegistry(), DNSTransportRegistry(), ServiceRegistry())
return box.Context(ctx, InboundRegistry(), OutboundRegistry(), EndpointRegistry(), ProviderRegistry(), DNSTransportRegistry(), ServiceRegistry())
}
func InboundRegistry() *inbound.Registry {
@@ -77,6 +81,7 @@ func InboundRegistry() *inbound.Registry {
registerQUICInbounds(registry)
registerStubForRemovedInbounds(registry)
registerMTProxyInbound(registry)
return registry
}
@@ -88,7 +93,7 @@ func OutboundRegistry() *outbound.Registry {
block.RegisterOutbound(registry)
group.RegisterFailover(registry)
group.RegisterFallback(registry)
group.RegisterSelector(registry)
group.RegisterURLTest(registry)
@@ -104,12 +109,15 @@ func OutboundRegistry() *outbound.Registry {
vless.RegisterOutbound(registry)
mieru.RegisterOutbound(registry)
anytls.RegisterOutbound(registry)
registerMASQUEOutbound(registry)
bond.RegisterOutbound(registry)
bandwidth.RegisterOutbound(registry)
connection.RegisterOutbound(registry)
parser.RegisterOutbound(registry)
registerQUICOutbounds(registry)
registerStubForRemovedOutbounds(registry)
@@ -119,8 +127,8 @@ func OutboundRegistry() *outbound.Registry {
func EndpointRegistry() *endpoint.Registry {
registry := endpoint.NewRegistry()
tunnel.RegisterServerEndpoint(registry)
tunnel.RegisterClientEndpoint(registry)
vpn.RegisterServerEndpoint(registry)
vpn.RegisterClientEndpoint(registry)
registerWireGuardEndpoint(registry)
registerTailscaleEndpoint(registry)
@@ -128,6 +136,16 @@ func EndpointRegistry() *endpoint.Registry {
return registry
}
func ProviderRegistry() *provider.Registry {
registry := provider.NewRegistry()
localProvider.RegisterProviderInline(registry)
localProvider.RegisterProviderLocal(registry)
remoteProvider.RegisterProvider(registry)
return registry
}
func DNSTransportRegistry() *dns.TransportRegistry {
registry := dns.NewTransportRegistry()

View File

@@ -4,10 +4,11 @@ package include
import (
"github.com/sagernet/sing-box/adapter/endpoint"
"github.com/sagernet/sing-box/protocol/warp"
"github.com/sagernet/sing-box/protocol/wireguard"
)
func registerWireGuardEndpoint(registry *endpoint.Registry) {
wireguard.RegisterEndpoint(registry)
wireguard.RegisterWARPEndpoint(registry)
warp.RegisterEndpoint(registry)
}