mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-12-20 00:50:06 +08:00
feat: support AmneziaWG v2.0
Some checks are pending
Test / test (1.20, macos-13) (push) Waiting to run
Test / test (1.20, macos-latest) (push) Waiting to run
Test / test (1.20, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.20, ubuntu-latest) (push) Waiting to run
Test / test (1.20, windows-latest) (push) Waiting to run
Test / test (1.21, macos-13) (push) Waiting to run
Test / test (1.21, macos-latest) (push) Waiting to run
Test / test (1.21, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.21, ubuntu-latest) (push) Waiting to run
Test / test (1.21, windows-latest) (push) Waiting to run
Test / test (1.22, macos-13) (push) Waiting to run
Test / test (1.22, macos-latest) (push) Waiting to run
Test / test (1.22, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.22, ubuntu-latest) (push) Waiting to run
Test / test (1.22, windows-latest) (push) Waiting to run
Test / test (1.23, macos-13) (push) Waiting to run
Test / test (1.23, macos-latest) (push) Waiting to run
Test / test (1.23, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.23, ubuntu-latest) (push) Waiting to run
Test / test (1.23, windows-latest) (push) Waiting to run
Test / test (1.24, macos-13) (push) Waiting to run
Test / test (1.24, macos-latest) (push) Waiting to run
Test / test (1.24, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.24, ubuntu-latest) (push) Waiting to run
Test / test (1.24, windows-latest) (push) Waiting to run
Test / test (1.25, macos-13) (push) Waiting to run
Test / test (1.25, macos-latest) (push) Waiting to run
Test / test (1.25, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.25, ubuntu-latest) (push) Waiting to run
Test / test (1.25, windows-latest) (push) Waiting to run
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
Some checks are pending
Test / test (1.20, macos-13) (push) Waiting to run
Test / test (1.20, macos-latest) (push) Waiting to run
Test / test (1.20, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.20, ubuntu-latest) (push) Waiting to run
Test / test (1.20, windows-latest) (push) Waiting to run
Test / test (1.21, macos-13) (push) Waiting to run
Test / test (1.21, macos-latest) (push) Waiting to run
Test / test (1.21, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.21, ubuntu-latest) (push) Waiting to run
Test / test (1.21, windows-latest) (push) Waiting to run
Test / test (1.22, macos-13) (push) Waiting to run
Test / test (1.22, macos-latest) (push) Waiting to run
Test / test (1.22, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.22, ubuntu-latest) (push) Waiting to run
Test / test (1.22, windows-latest) (push) Waiting to run
Test / test (1.23, macos-13) (push) Waiting to run
Test / test (1.23, macos-latest) (push) Waiting to run
Test / test (1.23, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.23, ubuntu-latest) (push) Waiting to run
Test / test (1.23, windows-latest) (push) Waiting to run
Test / test (1.24, macos-13) (push) Waiting to run
Test / test (1.24, macos-latest) (push) Waiting to run
Test / test (1.24, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.24, ubuntu-latest) (push) Waiting to run
Test / test (1.24, windows-latest) (push) Waiting to run
Test / test (1.25, macos-13) (push) Waiting to run
Test / test (1.25, macos-latest) (push) Waiting to run
Test / test (1.25, ubuntu-24.04-arm) (push) Waiting to run
Test / test (1.25, ubuntu-latest) (push) Waiting to run
Test / test (1.25, windows-latest) (push) Waiting to run
Trigger CMFA Update / trigger-CMFA-update (push) Waiting to run
This commit is contained in:
parent
3b63fef2eb
commit
80a90f05f3
@ -92,21 +92,21 @@ type AmneziaWGOption struct {
|
|||||||
JMax int `proxy:"jmax,omitempty"`
|
JMax int `proxy:"jmax,omitempty"`
|
||||||
S1 int `proxy:"s1,omitempty"`
|
S1 int `proxy:"s1,omitempty"`
|
||||||
S2 int `proxy:"s2,omitempty"`
|
S2 int `proxy:"s2,omitempty"`
|
||||||
H1 uint32 `proxy:"h1,omitempty"`
|
S3 int `proxy:"s3,omitempty"` // AmneziaWG v1.5 and v2
|
||||||
H2 uint32 `proxy:"h2,omitempty"`
|
S4 int `proxy:"s4,omitempty"` // AmneziaWG v1.5 and v2
|
||||||
H3 uint32 `proxy:"h3,omitempty"`
|
H1 string `proxy:"h1,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
|
||||||
H4 uint32 `proxy:"h4,omitempty"`
|
H2 string `proxy:"h2,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
|
||||||
|
H3 string `proxy:"h3,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
|
||||||
// AmneziaWG v1.5
|
H4 string `proxy:"h4,omitempty"` // In AmneziaWG v1.x, it was uint32, but our WeaklyTypedInput can handle this situation
|
||||||
I1 string `proxy:"i1,omitempty"`
|
I1 string `proxy:"i1,omitempty"` // AmneziaWG v1.5 and v2
|
||||||
I2 string `proxy:"i2,omitempty"`
|
I2 string `proxy:"i2,omitempty"` // AmneziaWG v1.5 and v2
|
||||||
I3 string `proxy:"i3,omitempty"`
|
I3 string `proxy:"i3,omitempty"` // AmneziaWG v1.5 and v2
|
||||||
I4 string `proxy:"i4,omitempty"`
|
I4 string `proxy:"i4,omitempty"` // AmneziaWG v1.5 and v2
|
||||||
I5 string `proxy:"i5,omitempty"`
|
I5 string `proxy:"i5,omitempty"` // AmneziaWG v1.5 and v2
|
||||||
J1 string `proxy:"j1,omitempty"`
|
J1 string `proxy:"j1,omitempty"` // AmneziaWG v1.5 only (removed in v2)
|
||||||
J2 string `proxy:"j2,omitempty"`
|
J2 string `proxy:"j2,omitempty"` // AmneziaWG v1.5 only (removed in v2)
|
||||||
J3 string `proxy:"j3,omitempty"`
|
J3 string `proxy:"j3,omitempty"` // AmneziaWG v1.5 only (removed in v2)
|
||||||
Itime int64 `proxy:"itime,omitempty"`
|
Itime int64 `proxy:"itime,omitempty"` // AmneziaWG v1.5 only (removed in v2)
|
||||||
}
|
}
|
||||||
|
|
||||||
type wgSingErrorHandler struct {
|
type wgSingErrorHandler struct {
|
||||||
@ -412,17 +412,23 @@ func (w *WireGuard) genIpcConf(ctx context.Context, updateOnly bool) (string, er
|
|||||||
if w.option.AmneziaWGOption.S2 != 0 {
|
if w.option.AmneziaWGOption.S2 != 0 {
|
||||||
ipcConf += "s2=" + strconv.Itoa(w.option.AmneziaWGOption.S2) + "\n"
|
ipcConf += "s2=" + strconv.Itoa(w.option.AmneziaWGOption.S2) + "\n"
|
||||||
}
|
}
|
||||||
if w.option.AmneziaWGOption.H1 != 0 {
|
if w.option.AmneziaWGOption.S3 != 0 {
|
||||||
ipcConf += "h1=" + strconv.FormatUint(uint64(w.option.AmneziaWGOption.H1), 10) + "\n"
|
ipcConf += "s3=" + strconv.Itoa(w.option.AmneziaWGOption.S3) + "\n"
|
||||||
}
|
}
|
||||||
if w.option.AmneziaWGOption.H2 != 0 {
|
if w.option.AmneziaWGOption.S4 != 0 {
|
||||||
ipcConf += "h2=" + strconv.FormatUint(uint64(w.option.AmneziaWGOption.H2), 10) + "\n"
|
ipcConf += "s4=" + strconv.Itoa(w.option.AmneziaWGOption.S4) + "\n"
|
||||||
}
|
}
|
||||||
if w.option.AmneziaWGOption.H3 != 0 {
|
if w.option.AmneziaWGOption.H1 != "" {
|
||||||
ipcConf += "h3=" + strconv.FormatUint(uint64(w.option.AmneziaWGOption.H3), 10) + "\n"
|
ipcConf += "h1=" + w.option.AmneziaWGOption.H1 + "\n"
|
||||||
}
|
}
|
||||||
if w.option.AmneziaWGOption.H4 != 0 {
|
if w.option.AmneziaWGOption.H2 != "" {
|
||||||
ipcConf += "h4=" + strconv.FormatUint(uint64(w.option.AmneziaWGOption.H4), 10) + "\n"
|
ipcConf += "h2=" + w.option.AmneziaWGOption.H2 + "\n"
|
||||||
|
}
|
||||||
|
if w.option.AmneziaWGOption.H3 != "" {
|
||||||
|
ipcConf += "h3=" + w.option.AmneziaWGOption.H3 + "\n"
|
||||||
|
}
|
||||||
|
if w.option.AmneziaWGOption.H4 != "" {
|
||||||
|
ipcConf += "h4=" + w.option.AmneziaWGOption.H4 + "\n"
|
||||||
}
|
}
|
||||||
if w.option.AmneziaWGOption.I1 != "" {
|
if w.option.AmneziaWGOption.I1 != "" {
|
||||||
ipcConf += "i1=" + w.option.AmneziaWGOption.I1 + "\n"
|
ipcConf += "i1=" + w.option.AmneziaWGOption.I1 + "\n"
|
||||||
|
|||||||
@ -862,20 +862,25 @@ proxies: # socks5
|
|||||||
# jmax: 501
|
# jmax: 501
|
||||||
# s1: 30
|
# s1: 30
|
||||||
# s2: 40
|
# s2: 40
|
||||||
# h1: 123456
|
# s3: 50 # AmneziaWG v1.5 and v2
|
||||||
# h2: 67543
|
# s4: 5 # AmneziaWG v1.5 and v2
|
||||||
# h4: 32345
|
# h1: 123456 # AmneziaWG v1.0 and v1.5
|
||||||
# h3: 123123
|
# h2: 67543 # AmneziaWG v1.0 and v1.5
|
||||||
# # AmneziaWG v1.5
|
# h3: 123123 # AmneziaWG v1.0 and v1.5
|
||||||
# i1: <b 0xf6ab3267fa><c><b 0xf6ab><t><r 10><wt 10>
|
# h4: 32345 # AmneziaWG v1.0 and v1.5
|
||||||
# i2: <b 0xf6ab3267fa><r 100>
|
# h1: 123456-123500 # AmneziaWG v2.0 only
|
||||||
# i3: ""
|
# h2: 67543-67550 # AmneziaWG v2.0 only
|
||||||
# i4: ""
|
# h3: 123123-123200 # AmneziaWG v2.0 only
|
||||||
# i5: ""
|
# h4: 32345-32350 # AmneziaWG v2.0 only
|
||||||
# j1: <b 0xffffffff><c><b 0xf6ab><t><r 10>
|
# i1: <b 0xf6ab3267fa><c><b 0xf6ab><t><r 10><wt 10> # AmneziaWG v1.5 and v2
|
||||||
# j2: <c><b 0xf6ab><t><wt 1000>
|
# i2: <b 0xf6ab3267fa><r 100> # AmneziaWG v1.5 and v2
|
||||||
# j3: <t><b 0xf6ab><c><r 10>
|
# i3: "" # AmneziaWG v1.5 and v2
|
||||||
# itime: 60
|
# i4: "" # AmneziaWG v1.5 and v2
|
||||||
|
# i5: "" # AmneziaWG v1.5 and v2
|
||||||
|
# j1: <b 0xffffffff><c><b 0xf6ab><t><r 10> # AmneziaWG v1.5 only (removed in v2)
|
||||||
|
# j2: <c><b 0xf6ab><t><wt 1000> # AmneziaWG v1.5 only (removed in v2)
|
||||||
|
# j3: <t><b 0xf6ab><c><r 10> # AmneziaWG v1.5 only (removed in v2)
|
||||||
|
# itime: 60 # AmneziaWG v1.5 only (removed in v2)
|
||||||
|
|
||||||
# tuic
|
# tuic
|
||||||
- name: tuic
|
- name: tuic
|
||||||
|
|||||||
2
go.mod
2
go.mod
@ -14,7 +14,7 @@ require (
|
|||||||
github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905
|
github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905
|
||||||
github.com/klauspost/compress v1.17.9 // lastest version compatible with golang1.20
|
github.com/klauspost/compress v1.17.9 // lastest version compatible with golang1.20
|
||||||
github.com/mdlayher/netlink v1.7.2
|
github.com/mdlayher/netlink v1.7.2
|
||||||
github.com/metacubex/amneziawg-go v0.0.0-20250820070344-732c0c9d418a
|
github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281
|
||||||
github.com/metacubex/bart v0.20.5
|
github.com/metacubex/bart v0.20.5
|
||||||
github.com/metacubex/bbolt v0.0.0-20250725135710-010dbbbb7a5b
|
github.com/metacubex/bbolt v0.0.0-20250725135710-010dbbbb7a5b
|
||||||
github.com/metacubex/blake3 v0.1.0
|
github.com/metacubex/blake3 v0.1.0
|
||||||
|
|||||||
4
go.sum
4
go.sum
@ -90,8 +90,8 @@ github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/
|
|||||||
github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw=
|
github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw=
|
||||||
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
|
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
|
||||||
github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
|
github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
|
||||||
github.com/metacubex/amneziawg-go v0.0.0-20250820070344-732c0c9d418a h1:c1QSGpacSeQdBdWcEKZKGuWLcqIG2wxHEygAcXuDwS4=
|
github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281 h1:09EM0sOLb2kfL0KETGhHujsBLB5iy5U/2yHRHsxf/pI=
|
||||||
github.com/metacubex/amneziawg-go v0.0.0-20250820070344-732c0c9d418a/go.mod h1:MsM/5czONyXMJ3PRr5DbQ4O/BxzAnJWOIcJdLzW6qHY=
|
github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281/go.mod h1:MsM/5czONyXMJ3PRr5DbQ4O/BxzAnJWOIcJdLzW6qHY=
|
||||||
github.com/metacubex/ascon v0.1.0 h1:6ZWxmXYszT1XXtwkf6nxfFhc/OTtQ9R3Vyj1jN32lGM=
|
github.com/metacubex/ascon v0.1.0 h1:6ZWxmXYszT1XXtwkf6nxfFhc/OTtQ9R3Vyj1jN32lGM=
|
||||||
github.com/metacubex/ascon v0.1.0/go.mod h1:eV5oim4cVPPdEL8/EYaTZ0iIKARH9pnhAK/fcT5Kacc=
|
github.com/metacubex/ascon v0.1.0/go.mod h1:eV5oim4cVPPdEL8/EYaTZ0iIKARH9pnhAK/fcT5Kacc=
|
||||||
github.com/metacubex/bart v0.20.5 h1:XkgLZ17QxfxkqKdGsojoM2Zu01mmHyyQSFzt2/calTM=
|
github.com/metacubex/bart v0.20.5 h1:XkgLZ17QxfxkqKdGsojoM2Zu01mmHyyQSFzt2/calTM=
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user