mirror of
https://github.com/ehang-io/nps.git
synced 2025-09-22 12:45:35 +00:00
sock5验证加密、udp隧道、gzip、snnapy压缩
This commit is contained in:
25
main.go
25
main.go
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user