Przeglądaj źródła

Make auto updating optional

tags/v2.1.12^2^2
9seconds 2 miesięcy temu
rodzic
commit
189dce07c6

+ 5
- 0
example.config.toml Wyświetl plik

48
 #     Only ipv4 connectivity is used
48
 #     Only ipv4 connectivity is used
49
 prefer-ip = "prefer-ipv6"
49
 prefer-ip = "prefer-ipv6"
50
 
50
 
51
+# If this setting is set, then mtg will try to get proxy updates from Telegram
52
+# Usually this is completely fine to have it disabled, because mtg has a list
53
+# of some core proxies hardcoded.
54
+auto-update = false
55
+
51
 # FakeTLS uses domain fronting protection. So it needs to know a port to
56
 # FakeTLS uses domain fronting protection. So it needs to know a port to
52
 # access.
57
 # access.
53
 #
58
 #

+ 1
- 0
internal/cli/run_proxy.go Wyświetl plik

255
 		DomainFrontingIP:            conf.GetDomainFrontingIP(nil),
255
 		DomainFrontingIP:            conf.GetDomainFrontingIP(nil),
256
 		DomainFrontingProxyProtocol: conf.GetDomainFrontingProxyProtocol(false),
256
 		DomainFrontingProxyProtocol: conf.GetDomainFrontingProxyProtocol(false),
257
 		PreferIP:                    conf.PreferIP.Get(mtglib.DefaultPreferIP),
257
 		PreferIP:                    conf.PreferIP.Get(mtglib.DefaultPreferIP),
258
+		AutoUpdate:                  conf.AutoUpdate.Get(false),
258
 
259
 
259
 		AllowFallbackOnUnknownDC: conf.AllowFallbackOnUnknownDC.Get(false),
260
 		AllowFallbackOnUnknownDC: conf.AllowFallbackOnUnknownDC.Get(false),
260
 		TolerateTimeSkewness:     conf.TolerateTimeSkewness.Value,
261
 		TolerateTimeSkewness:     conf.TolerateTimeSkewness.Value,

+ 1
- 0
internal/config/config.go Wyświetl plik

28
 	BindTo                      TypeHostPort    `json:"bindTo"`
28
 	BindTo                      TypeHostPort    `json:"bindTo"`
29
 	ProxyProtocolListener       TypeBool        `json:"proxyProtocolListener"`
29
 	ProxyProtocolListener       TypeBool        `json:"proxyProtocolListener"`
30
 	PreferIP                    TypePreferIP    `json:"preferIp"`
30
 	PreferIP                    TypePreferIP    `json:"preferIp"`
31
+	AutoUpdate                  TypeBool        `json:"autoUpdate"`
31
 	DomainFrontingPort          TypePort        `json:"domainFrontingPort"`
32
 	DomainFrontingPort          TypePort        `json:"domainFrontingPort"`
32
 	DomainFrontingIP            TypeIP          `json:"domainFrontingIp"`
33
 	DomainFrontingIP            TypeIP          `json:"domainFrontingIp"`
33
 	DomainFrontingProxyProtocol TypeBool        `json:"domainFrontingProxyProtocol"`
34
 	DomainFrontingProxyProtocol TypeBool        `json:"domainFrontingProxyProtocol"`

+ 1
- 0
internal/config/parse.go Wyświetl plik

15
 	BindTo                      string `toml:"bind-to" json:"bindTo"`
15
 	BindTo                      string `toml:"bind-to" json:"bindTo"`
16
 	ProxyProtocolListener       bool   `toml:"proxy-protocol-listener" json:"proxyProtocolListener"`
16
 	ProxyProtocolListener       bool   `toml:"proxy-protocol-listener" json:"proxyProtocolListener"`
17
 	PreferIP                    string `toml:"prefer-ip" json:"preferIp,omitempty"`
17
 	PreferIP                    string `toml:"prefer-ip" json:"preferIp,omitempty"`
18
+	AutoUpdate                  bool   `toml:"auto-update" json:"autoUpdate,omitempty"`
18
 	DomainFrontingPort          uint   `toml:"domain-fronting-port" json:"domainFrontingPort,omitempty"`
19
 	DomainFrontingPort          uint   `toml:"domain-fronting-port" json:"domainFrontingPort,omitempty"`
19
 	DomainFrontingIP            string `toml:"domain-fronting-ip" json:"domainFrontingIp,omitempty"`
20
 	DomainFrontingIP            string `toml:"domain-fronting-ip" json:"domainFrontingIp,omitempty"`
20
 	DomainFrontingProxyProtocol bool   `toml:"domain-fronting-proxy-protocol" json:"domainFrontingProxyProtocol,omitempty"`
21
 	DomainFrontingProxyProtocol bool   `toml:"domain-fronting-proxy-protocol" json:"domainFrontingProxyProtocol,omitempty"`

+ 6
- 0
mtglib/internal/dc/init.go Wyświetl plik

57
 		5: {
57
 		5: {
58
 			{Network: "tcp4", Address: "149.154.171.5:443"},
58
 			{Network: "tcp4", Address: "149.154.171.5:443"},
59
 		},
59
 		},
60
+		203: {
61
+			{Network: "tcp4", Address: "91.105.192.100:443"},
62
+		},
60
 	},
63
 	},
61
 	v6: map[int][]Addr{
64
 	v6: map[int][]Addr{
62
 		1: {
65
 		1: {
74
 		5: {
77
 		5: {
75
 			{Network: "tcp6", Address: "[2001:b28:f23f:f005::a]:443"},
78
 			{Network: "tcp6", Address: "[2001:b28:f23f:f005::a]:443"},
76
 		},
79
 		},
80
+		203: {
81
+			{Network: "tcp6", Address: "[2a0a:f280:0203:000a:5000:0000:0000:0100]:443"},
82
+		},
77
 	},
83
 	},
78
 }
84
 }

+ 2
- 0
mtglib/internal/dc/view_test.go Wyświetl plik

41
 		},
41
 		},
42
 		203: {
42
 		203: {
43
 			{Network: "tcp4", Address: "127.0.0.2:443"},
43
 			{Network: "tcp4", Address: "127.0.0.2:443"},
44
+			{Network: "tcp4", Address: "91.105.192.100:443"},
44
 		},
45
 		},
45
 		2: {
46
 		2: {
46
 			{Network: "tcp4", Address: "149.154.167.51:443"},
47
 			{Network: "tcp4", Address: "149.154.167.51:443"},
60
 		111: {},
61
 		111: {},
61
 		203: {
62
 		203: {
62
 			{Network: "tcp6", Address: "xxx"},
63
 			{Network: "tcp6", Address: "xxx"},
64
+			{Network: "tcp6", Address: "[2a0a:f280:0203:000a:5000:0000:0000:0100]:443"},
63
 		},
65
 		},
64
 		1: {
66
 		1: {
65
 			{Network: "tcp6", Address: "[2001:b28:f23d:f001::a]:443"},
67
 			{Network: "tcp6", Address: "[2001:b28:f23d:f001::a]:443"},

+ 4
- 2
mtglib/proxy.go Wyświetl plik

346
 		domainFrontingProxyProtocol: opts.DomainFrontingProxyProtocol,
346
 		domainFrontingProxyProtocol: opts.DomainFrontingProxyProtocol,
347
 	}
347
 	}
348
 
348
 
349
-	proxy.configUpdater.Run(ctx, dc.PublicConfigUpdateURLv4, "tcp4")
350
-	proxy.configUpdater.Run(ctx, dc.PublicConfigUpdateURLv6, "tcp6")
349
+	if opts.AutoUpdate {
350
+		proxy.configUpdater.Run(ctx, dc.PublicConfigUpdateURLv4, "tcp4")
351
+		proxy.configUpdater.Run(ctx, dc.PublicConfigUpdateURLv6, "tcp6")
352
+	}
351
 
353
 
352
 	pool, err := ants.NewPoolWithFunc(opts.getConcurrency(),
354
 	pool, err := ants.NewPoolWithFunc(opts.getConcurrency(),
353
 		func(arg any) {
355
 		func(arg any) {

+ 6
- 0
mtglib/proxy_opts.go Wyświetl plik

85
 	// This is an optional setting.
85
 	// This is an optional setting.
86
 	PreferIP string
86
 	PreferIP string
87
 
87
 
88
+	// AutoUpdate defines if it is required to auto update proxy list from
89
+	// Telegram instead of relying on a hardcoded list.
90
+	//
91
+	// This is an optional setting.
92
+	AutoUpdate bool
93
+
88
 	// DomainFrontingPort is a port we use to connect to a fronting domain.
94
 	// DomainFrontingPort is a port we use to connect to a fronting domain.
89
 	//
95
 	//
90
 	// This is required because secret does not specify a port. It specifies a
96
 	// This is required because secret does not specify a port. It specifies a

Ładowanie…
Anuluj
Zapisz