sock5验证加密、udp隧道、gzip、snnapy压缩

This commit is contained in:
刘河
2018-12-03 23:03:25 +08:00
parent 83eb8dcb3c
commit 212d74bbc4
7 changed files with 345 additions and 104 deletions

25
main.go
View File

@@ -11,15 +11,33 @@ var (
tcpPort = flag.Int("tcpport", 8284, "Socket连接或者监听的端口")
httpPort = flag.Int("httpport", 8024, "当mode为server时为服务端监听端口当为mode为client时为转发至本地客户端的端口")
rpMode = flag.String("mode", "client", "启动模式可选为client、server")
tunnelTarget = flag.String("target", "10.1.50.203:80", "tunnel模式远程目标")
tunnelTarget = flag.String("target", "10.1.50.203:80", "远程目标")
verifyKey = flag.String("vkey", "", "验证密钥")
u = flag.String("u", "", "sock5验证用户名")
p = flag.String("p", "", "sock5验证密码")
compress = flag.String("compress", "", "数据压缩gizp|snappy")
config Config
err error
DataEncode int
DataDecode int
)
func main() {
flag.Parse()
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
switch *compress {
case "":
DataDecode = COMPRESS_NONE
DataEncode = COMPRESS_NONE
case "gzip":
DataDecode = COMPRESS_GZIP_DECODE
DataEncode = COMPRESS_GZIP_ENCODE
case "snnapy":
DataDecode = COMPRESS_SNAPY_DECODE
DataEncode = COMPRESS_SNAPY_ENCODE
default:
log.Fatalln("数据压缩格式错误")
}
if *rpMode == "client" {
JsonParse := NewJsonStruct()
config, err = JsonParse.Load(*configPath)
@@ -50,11 +68,14 @@ func main() {
svr := NewTunnelModeServer(*tcpPort, *httpPort, *tunnelTarget, ProcessTunnel)
svr.Start()
} else if *rpMode == "sock5Server" {
svr := NewSock5ModeServer(*tcpPort, *httpPort)
svr := NewSock5ModeServer(*tcpPort, *httpPort, *u, *p)
svr.Start()
} else if *rpMode == "httpProxyServer" {
svr := NewTunnelModeServer(*tcpPort, *httpPort, *tunnelTarget, ProcessHttp)
svr.Start()
} else if *rpMode == "udpServer" {
svr := NewUdpModeServer(*tcpPort, *httpPort, *tunnelTarget)
svr.Start()
}
}
}