/
client.go
47 lines (42 loc) · 1.65 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package main
import (
"flag"
"log"
"net/http"
_ "net/http/pprof"
"os"
"os/signal"
"syscall"
"github.com/dosgo/xsocks/client"
"github.com/dosgo/xsocks/comm"
"github.com/dosgo/xsocks/param"
)
func main() {
comm.InitLog("", log.LstdFlags)
//debug server
go http.ListenAndServe(":8000", nil)
paramParam := param.Args
flag.StringVar(¶mParam.Sock5Addr, "sock5Addr", "127.0.0.1:6000", "remote socks5 addr ")
//"quic://127.0.0.1:5002" or "wss://127.0.0.1:5003"
flag.StringVar(¶mParam.ServerAddr, "serverAddr", "wss://127.0.0.1:5003", "remote addr")
flag.StringVar(¶mParam.Password, "password", "password", "password")
flag.StringVar(¶mParam.CaFile, "caFile", "", "RootCAs file")
flag.BoolVar(¶mParam.SkipVerify, "skipVerify", false, "SkipVerify")
flag.IntVar(¶mParam.TunType, "tunType", 0, "tun type 1.tun2sock 2.tun2Remote")
flag.StringVar(¶mParam.UnixSockTun, "unixSockTun", "", "unix socket tun")
flag.StringVar(¶mParam.ExcludeDomain, "excludeDomain", "", "exclude Domain")
flag.IntVar(¶mParam.MuxNum, "muxNum", 4, "multiplexer Num")
flag.IntVar(¶mParam.LocalDns, "localDns", 0, "use local dns")
flag.IntVar(¶mParam.SmartDns, "smartDns", 1, "use smart dns")
flag.IntVar(¶mParam.UdpProxy, "udpProxy", 1, "use udpProxy ")
flag.IntVar(¶mParam.Mtu, "mtu", 4500, "mtu")
flag.BoolVar(¶mParam.TunSmartProxy, "tunSmartProxy", false, "tun Smart Proxy ")
flag.Parse()
c := client.Client{}
c.Start()
defer c.Shutdown()
ch := make(chan os.Signal, 1)
signal.Notify(ch, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGABRT, syscall.SIGSEGV, syscall.SIGQUIT)
_ = <-ch
c.Shutdown()
}