mirror of
https://github.com/daeuniverse/dae.git
synced 2024-12-22 16:24:40 +07:00
feat: support bandwidth configuration (#645)
This commit is contained in:
parent
218ae3f654
commit
7e751e0ca7
@ -68,7 +68,9 @@ func NewGlobalOption(global *config.Global, log *logrus.Logger) *GlobalOption {
|
||||
ExtraOption: D.ExtraOption{
|
||||
AllowInsecure: global.AllowInsecure,
|
||||
TlsImplementation: global.TlsImplementation,
|
||||
UtlsImitate: global.UtlsImitate},
|
||||
UtlsImitate: global.UtlsImitate,
|
||||
BandwidthMaxTx: global.BandwidthMaxTx,
|
||||
BandwidthMaxRx: global.BandwidthMaxRx},
|
||||
Log: log,
|
||||
TcpCheckOptionRaw: TcpCheckOptionRaw{Raw: global.TcpCheckUrl, Log: log, ResolverNetwork: common.MagicNetwork("udp", global.SoMarkFromDae, global.Mptcp), Method: global.TcpCheckHttpMethod},
|
||||
CheckDnsOptionRaw: CheckDnsOptionRaw{Raw: global.UdpCheckDns, ResolverNetwork: common.MagicNetwork("udp", global.SoMarkFromDae, global.Mptcp), Somark: global.SoMarkFromDae},
|
||||
|
@ -43,6 +43,9 @@ type Global struct {
|
||||
UtlsImitate string `mapstructure:"utls_imitate" default:"chrome_auto"`
|
||||
PprofPort uint16 `mapstructure:"pprof_port" default:"0"`
|
||||
Mptcp bool `mapstructure:"mptcp" default:"false"`
|
||||
// TODO: support input in human-readable format (e.g., 100Mbps, 1Gbps)
|
||||
BandwidthMaxTx uint64 `mapstructure:"bandwidth_max_tx" default:"0"`
|
||||
BandwidthMaxRx uint64 `mapstructure:"bandwidth_max_rx" default:"0"`
|
||||
}
|
||||
|
||||
type Utls struct {
|
||||
|
@ -101,6 +101,11 @@ global {
|
||||
# Multipath TCP (MPTCP) support. If is true, dae will try to use MPTCP to connect all nodes, but it will only take
|
||||
# effects when the node supports MPTCP. It can use for load balance and failover to multiple interfaces and IPs.
|
||||
mptcp: false
|
||||
|
||||
# The maximum bandwidth for accessing the Internet. It is useful for some specific protocols (e.g., Hysteria2),
|
||||
# which will perform better with bandwith information provided. The unit is **byte** per second.
|
||||
bandwidth_max_tx: 26214400 # 200Mbps == 25MB/s == 26214400 B/s uplink
|
||||
bandwidth_max_rx: 131072000 # 1Gbps == 125MB/s == 131072000 B/s downlink
|
||||
}
|
||||
|
||||
# Subscriptions defined here will be resolved as nodes and merged as a part of the global node pool.
|
||||
|
4
go.mod
4
go.mod
@ -8,13 +8,14 @@ require (
|
||||
github.com/bits-and-blooms/bloom/v3 v3.5.0
|
||||
github.com/cilium/ebpf v0.12.3
|
||||
github.com/daeuniverse/dae-config-dist/go/dae_config v0.0.0-20230604120805-1c27619b592d
|
||||
github.com/daeuniverse/outbound v0.0.0-20240926143218-3cf58cdd942f
|
||||
github.com/daeuniverse/outbound v0.0.0-20240926154105-c01ad3a54a38
|
||||
github.com/fsnotify/fsnotify v1.7.0
|
||||
github.com/json-iterator/go v1.1.12
|
||||
github.com/mholt/archiver/v3 v3.5.1
|
||||
github.com/miekg/dns v1.1.58
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
|
||||
github.com/okzk/sdnotify v0.0.0-20180710141335-d9becc38acbd
|
||||
github.com/panjf2000/ants v1.3.0
|
||||
github.com/safchain/ethtool v0.3.0
|
||||
github.com/shirou/gopsutil/v4 v4.24.5
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
@ -50,7 +51,6 @@ require (
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
|
||||
github.com/nwaples/rardecode v1.1.0 // indirect
|
||||
github.com/onsi/ginkgo/v2 v2.11.0 // indirect
|
||||
github.com/panjf2000/ants v1.3.0 // indirect
|
||||
github.com/pierrec/lz4/v4 v4.1.2 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
|
||||
|
4
go.sum
4
go.sum
@ -23,8 +23,8 @@ github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBS
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/daeuniverse/dae-config-dist/go/dae_config v0.0.0-20230604120805-1c27619b592d h1:hnC39MjR7xt5kZjrKlef7DXKFDkiX8MIcDXYC/6Jf9Q=
|
||||
github.com/daeuniverse/dae-config-dist/go/dae_config v0.0.0-20230604120805-1c27619b592d/go.mod h1:VGWGgv7pCP5WGyHGUyb9+nq/gW0yBm+i/GfCNATOJ1M=
|
||||
github.com/daeuniverse/outbound v0.0.0-20240926143218-3cf58cdd942f h1:HB2IMJcU6FqLFqgDHbhhK9F0At6AFfpDRKk/oZz3T2A=
|
||||
github.com/daeuniverse/outbound v0.0.0-20240926143218-3cf58cdd942f/go.mod h1:0dkFMC58MVUWMB19jwQuXEg1G16uAIAtdAU7v+yWXYs=
|
||||
github.com/daeuniverse/outbound v0.0.0-20240926154105-c01ad3a54a38 h1:O+lD0zchAn+rn76Y4ol2G9qiGdF7nVYwCyrPqpMvRkc=
|
||||
github.com/daeuniverse/outbound v0.0.0-20240926154105-c01ad3a54a38/go.mod h1:0dkFMC58MVUWMB19jwQuXEg1G16uAIAtdAU7v+yWXYs=
|
||||
github.com/daeuniverse/quic-go v0.0.0-20240413031024-943f218e0810 h1:YtEYouFaNrg9sV9vf3UabvKShKn6sD0QaCdOxCwaF3g=
|
||||
github.com/daeuniverse/quic-go v0.0.0-20240413031024-943f218e0810/go.mod h1:61o2uZUGLrlv1i+oO2rx9sVX0vbf8cHzdSHt7h6lMnM=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
Loading…
Reference in New Issue
Block a user