mirror of
https://github.com/net-byte/vtun
synced 2024-03-14 10:50:03 +08:00
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
|
|
"github.com/net-byte/vtun/common/config"
|
|
"github.com/net-byte/vtun/udp"
|
|
"github.com/net-byte/vtun/ws"
|
|
)
|
|
|
|
func main() {
|
|
config := config.Config{}
|
|
flag.StringVar(&config.CIDR, "c", "172.16.0.2/24", "tun interface CIDR")
|
|
flag.StringVar(&config.LocalAddr, "l", "0.0.0.0:3000", "local address")
|
|
flag.StringVar(&config.ServerAddr, "s", "0.0.0.0:3001", "server address")
|
|
flag.StringVar(&config.Key, "k", "6w9z$C&F)J@NcRfWjXn3r4u7x!A%D*G-", "encryption key")
|
|
flag.StringVar(&config.Gateway, "g", "172.16.0.1", "gateway")
|
|
flag.StringVar(&config.Route, "r", "", "route to forward data")
|
|
flag.StringVar(&config.Protocol, "p", "wss", "protocol ws/wss/udp")
|
|
flag.BoolVar(&config.ServerMode, "S", false, "server mode")
|
|
flag.BoolVar(&config.Encrypt, "e", true, "data encryption")
|
|
flag.Parse()
|
|
config.Init()
|
|
switch config.Protocol {
|
|
case "udp":
|
|
if config.ServerMode {
|
|
udp.StartServer(config)
|
|
} else {
|
|
udp.StartClient(config)
|
|
}
|
|
case "ws":
|
|
if config.ServerMode {
|
|
ws.StartServer(config)
|
|
} else {
|
|
ws.StartClient(config)
|
|
}
|
|
default:
|
|
if config.ServerMode {
|
|
ws.StartServer(config)
|
|
} else {
|
|
ws.StartClient(config)
|
|
}
|
|
}
|
|
}
|