mirror of
https://github.com/fumiama/WireGold.git
synced 2026-06-13 05:31:08 +08:00
drop commandline mtu
This commit is contained in:
14
README.md
14
README.md
@@ -7,7 +7,7 @@
|
|||||||
## Usage
|
## Usage
|
||||||
> If you are running in windows, remember to select the `wintun.dll` of your arch in `lower/wintun` and place it alongside the compiled exe
|
> If you are running in windows, remember to select the `wintun.dll` of your arch in `lower/wintun` and place it alongside the compiled exe
|
||||||
```bash
|
```bash
|
||||||
wg [-c config.yaml] [-d|w] [-g] [-h] [-m mtu] [-p] [-l log.txt]
|
wg [-c config.yaml] [-d|w] [-g] [-h] [-p] [-l log.txt]
|
||||||
```
|
```
|
||||||
#### Instructions
|
#### Instructions
|
||||||
```bash
|
```bash
|
||||||
@@ -18,21 +18,21 @@ wg [-c config.yaml] [-d|w] [-g] [-h] [-m mtu] [-p] [-l log.txt]
|
|||||||
-h display this help
|
-h display this help
|
||||||
-l string
|
-l string
|
||||||
write log to file (default "-")
|
write log to file (default "-")
|
||||||
-m int
|
|
||||||
set the mtu of wg (default 1432)
|
|
||||||
-p show my publickey
|
-p show my publickey
|
||||||
-w only show logs above warn level
|
-w only show logs above warn level
|
||||||
```
|
```
|
||||||
|
|
||||||
- **macos mojave**: max mtu (under ipv4 endpoint) is `9159`
|
|
||||||
- **ipv6 endpoint**: the recommand mtu is `1280~1400` to prevent the big segments from being dropped
|
|
||||||
|
|
||||||
## Config file example
|
## Config file example
|
||||||
|
|
||||||
|
- **macos mojave**: max mtu (under ipv4 endpoint) is `9159`
|
||||||
|
- **ipv6 endpoint**: the recommand mtu is `1280~1500` to prevent the big segments from being dropped
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
IP: 192.168.233.1
|
IP: 192.168.233.1
|
||||||
SubNet: 192.168.233.0/24
|
SubNet: 192.168.233.0/24
|
||||||
PrivateKey: 暲菉斂狧污爉窫擸紈卆帞蔩慈睠庮扝憚瞼縀
|
PrivateKey: 暲菉斂狧污爉窫擸紈卆帞蔩慈睠庮扝憚瞼縀
|
||||||
EndPoint: 0.0.0.0:56789
|
EndPoint: 0.0.0.0:56789
|
||||||
|
MTU: 1500
|
||||||
Peers:
|
Peers:
|
||||||
-
|
-
|
||||||
IP: "192.168.233.2"
|
IP: "192.168.233.2"
|
||||||
@@ -42,6 +42,7 @@ Peers:
|
|||||||
AllowedIPs: ["192.168.233.2/32"]
|
AllowedIPs: ["192.168.233.2/32"]
|
||||||
KeepAliveSeconds: 0
|
KeepAliveSeconds: 0
|
||||||
QueryList: ["192.168.233.3"]
|
QueryList: ["192.168.233.3"]
|
||||||
|
MTU: 1400
|
||||||
QuerySeconds: 10
|
QuerySeconds: 10
|
||||||
AllowTrans: false
|
AllowTrans: false
|
||||||
-
|
-
|
||||||
@@ -50,6 +51,7 @@ Peers:
|
|||||||
PublicKey: 牢喨粷詸衭譛浾蘹櫠砙杹蟫瑳叩刋橋経挵蘀
|
PublicKey: 牢喨粷詸衭譛浾蘹櫠砙杹蟫瑳叩刋橋経挵蘀
|
||||||
EndPoint: ""
|
EndPoint: ""
|
||||||
AllowedIPs: ["192.168.233.3/32"]
|
AllowedIPs: ["192.168.233.3/32"]
|
||||||
|
MTU: 1300
|
||||||
KeepAliveSeconds: 0
|
KeepAliveSeconds: 0
|
||||||
AllowTrans: false
|
AllowTrans: false
|
||||||
```
|
```
|
||||||
@@ -14,6 +14,7 @@ type Config struct {
|
|||||||
SubNet string `yaml:"SubNet"`
|
SubNet string `yaml:"SubNet"`
|
||||||
PrivateKey string `yaml:"PrivateKey"`
|
PrivateKey string `yaml:"PrivateKey"`
|
||||||
EndPoint string `yaml:"EndPoint"`
|
EndPoint string `yaml:"EndPoint"`
|
||||||
|
MTU int64 `yaml:"MTU"`
|
||||||
Peers []Peer `yaml:"Peers"`
|
Peers []Peer `yaml:"Peers"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
3
main.go
3
main.go
@@ -21,7 +21,6 @@ func main() {
|
|||||||
gen := flag.Bool("g", false, "generate key pair")
|
gen := flag.Bool("g", false, "generate key pair")
|
||||||
showp := flag.Bool("p", false, "show my publickey")
|
showp := flag.Bool("p", false, "show my publickey")
|
||||||
file := flag.String("c", "config.yaml", "specify conf file")
|
file := flag.String("c", "config.yaml", "specify conf file")
|
||||||
mtu := flag.Int("m", 1500-68, "set the mtu of wg")
|
|
||||||
debug := flag.Bool("d", false, "print debug logs")
|
debug := flag.Bool("d", false, "print debug logs")
|
||||||
warn := flag.Bool("w", false, "only show logs above warn level")
|
warn := flag.Bool("w", false, "only show logs above warn level")
|
||||||
logfile := flag.String("l", "-", "write log to file")
|
logfile := flag.String("l", "-", "write log to file")
|
||||||
@@ -129,7 +128,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defer w.Stop()
|
defer w.Stop()
|
||||||
w.Run(upper.ServiceWireGold, upper.ServiceWireGold, uint16(*mtu))
|
w.Run(upper.ServiceWireGold, upper.ServiceWireGold)
|
||||||
}
|
}
|
||||||
|
|
||||||
func displayHelp(hint string) {
|
func displayHelp(hint string) {
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package wg
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
|
||||||
"net"
|
"net"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
base14 "github.com/fumiama/go-base16384"
|
base14 "github.com/fumiama/go-base16384"
|
||||||
curve "github.com/fumiama/go-x25519"
|
curve "github.com/fumiama/go-x25519"
|
||||||
@@ -48,13 +48,13 @@ func NewWireGold(c *config.Config) (wg WG, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wg *WG) Start(srcport, destport, mtu uint16) {
|
func (wg *WG) Start(srcport, destport uint16) {
|
||||||
wg.init(srcport, destport, mtu)
|
wg.init(srcport, destport)
|
||||||
go wg.me.ListenFromNIC()
|
go wg.me.ListenFromNIC()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wg *WG) Run(srcport, destport, mtu uint16) {
|
func (wg *WG) Run(srcport, destport uint16) {
|
||||||
wg.init(srcport, destport, mtu)
|
wg.init(srcport, destport)
|
||||||
_, err := wg.me.ListenFromNIC()
|
_, err := wg.me.ListenFromNIC()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Panicln(err)
|
logrus.Panicln(err)
|
||||||
@@ -65,7 +65,7 @@ func (wg *WG) Stop() {
|
|||||||
_ = wg.me.Close()
|
_ = wg.me.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (wg *WG) init(srcport, dstport, mtu uint16) {
|
func (wg *WG) init(srcport, dstport uint16) {
|
||||||
cidrsmap := make(map[string]bool, 32)
|
cidrsmap := make(map[string]bool, 32)
|
||||||
_, mysubnet, err := net.ParseCIDR(wg.c.SubNet)
|
_, mysubnet, err := net.ParseCIDR(wg.c.SubNet)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -93,10 +93,10 @@ func (wg *WG) init(srcport, dstport, mtu uint16) {
|
|||||||
MyIPwithMask: wg.c.IP + "/32",
|
MyIPwithMask: wg.c.IP + "/32",
|
||||||
MyEndpoint: wg.c.EndPoint,
|
MyEndpoint: wg.c.EndPoint,
|
||||||
PrivateKey: &wg.key,
|
PrivateKey: &wg.key,
|
||||||
NIC: lower.NewNIC(wg.c.IP, wg.c.SubNet, fmt.Sprintf("%d", mtu), cidrs...),
|
NIC: lower.NewNIC(wg.c.IP, wg.c.SubNet, strconv.FormatInt(wg.c.MTU, 64), cidrs...),
|
||||||
SrcPort: srcport,
|
SrcPort: srcport,
|
||||||
DstPort: dstport,
|
DstPort: dstport,
|
||||||
MTU: mtu,
|
MTU: uint16(wg.c.MTU),
|
||||||
})
|
})
|
||||||
|
|
||||||
for _, peer := range wg.c.Peers {
|
for _, peer := range wg.c.Peers {
|
||||||
|
|||||||
Reference in New Issue
Block a user