mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-06-26 20:29:03 +03:00
Compare commits
6 Commits
v1.13.14-e
...
extended
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a27453e4f7 | ||
|
|
2a77348470 | ||
|
|
1ae82a483a | ||
|
|
31acf60eca | ||
|
|
7bfad732e2 | ||
|
|
2cbc7691f0 |
@@ -3,7 +3,7 @@
|
|||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](go.mod)
|
[](go.mod)
|
||||||
[](https://codeberg.org/shtorm-7/sing-box-extended)
|
[](https://codeberg.org/shtorm-7/sing-box-extended)
|
||||||
[](https://t.me/sing_box_extended)
|
[](https://t.me/sing_box_extended)
|
||||||
|
|
||||||
Sing-box with extended features.
|
Sing-box with extended features.
|
||||||
|
|
||||||
@@ -17,6 +17,7 @@ Sing-box with extended features.
|
|||||||
- **OpenVPN** — OpenVPN client with tls-auth, tls-crypt and tls-crypt-v2 support
|
- **OpenVPN** — OpenVPN client with tls-auth, tls-crypt and tls-crypt-v2 support
|
||||||
- **TrustTunnel** — AdGuard's obfuscated VPN protocol, indistinguishable from HTTPS traffic
|
- **TrustTunnel** — AdGuard's obfuscated VPN protocol, indistinguishable from HTTPS traffic
|
||||||
- **Sudoku** — Traffic obfuscation protocol based on 4×4 Sudoku puzzles with low-entropy fingerprints
|
- **Sudoku** — Traffic obfuscation protocol based on 4×4 Sudoku puzzles with low-entropy fingerprints
|
||||||
|
- **Snell** — Lightweight encrypted proxy (v1–v5) with TLS / HTTP obfuscation
|
||||||
- **SSH** — SSH client and server with certificate authentication and upstream fallback
|
- **SSH** — SSH client and server with certificate authentication and upstream fallback
|
||||||
- **VPN** — Routed tunnel over any TCP sing-box protocol
|
- **VPN** — Routed tunnel over any TCP sing-box protocol
|
||||||
- **Bond** — Link aggregation for increasing throughput
|
- **Bond** — Link aggregation for increasing throughput
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
"action": "hijack-dns"
|
"action": "hijack-dns"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"final": "connection-limiter"
|
"final": "traffic-limiter"
|
||||||
},
|
},
|
||||||
"services": [
|
"services": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
"congestion_controller": "bbr",
|
"congestion_controller": "bbr",
|
||||||
"cwnd": 0,
|
"cwnd": 0,
|
||||||
"tls": { // TLS fields for HTTP2
|
"tls": { // TLS fields for HTTP2
|
||||||
|
"server_name": "", // SNI; empty = default "consumer-masque.cloudflareclient.com"
|
||||||
"insecure": false,
|
"insecure": false,
|
||||||
"cipher_suites": [],
|
"cipher_suites": [],
|
||||||
"curve_preferences": [],
|
"curve_preferences": [],
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ type MASQUEOutboundOptions struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type MASQUEOutboundTLSOptions struct {
|
type MASQUEOutboundTLSOptions struct {
|
||||||
|
ServerName string `json:"server_name,omitempty"`
|
||||||
Insecure bool `json:"insecure,omitempty"`
|
Insecure bool `json:"insecure,omitempty"`
|
||||||
CipherSuites badoption.Listable[string] `json:"cipher_suites,omitempty"`
|
CipherSuites badoption.Listable[string] `json:"cipher_suites,omitempty"`
|
||||||
CurvePreferences badoption.Listable[CurvePreference] `json:"curve_preferences,omitempty"`
|
CurvePreferences badoption.Listable[CurvePreference] `json:"curve_preferences,omitempty"`
|
||||||
|
|||||||
@@ -102,7 +102,11 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
|
|||||||
logger.ErrorContext(ctx, E.New("failed to generate cert: ", err))
|
logger.ErrorContext(ctx, E.New("failed to generate cert: ", err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
tlsConfig, err := tls.NewMASQUEClient(ctx, logger, "consumer-masque.cloudflareclient.com", cert, privKey, peerPubKey, common.PtrValueOrDefault(options.TLS))
|
serverName := cloudflare.ConnectSNI
|
||||||
|
if options.TLS != nil && options.TLS.ServerName != "" {
|
||||||
|
serverName = options.TLS.ServerName
|
||||||
|
}
|
||||||
|
tlsConfig, err := tls.NewMASQUEClient(ctx, logger, serverName, cert, privKey, peerPubKey, common.PtrValueOrDefault(options.TLS))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.ErrorContext(ctx, E.New("failed to prepare TLS config: ", err))
|
logger.ErrorContext(ctx, E.New("failed to prepare TLS config: ", err))
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user