From 675061fd63baac9b7e49541a4d79abb6ca5a86e5 Mon Sep 17 00:00:00 2001 From: "arraykeys@gmail.com" Date: Mon, 9 Oct 2017 20:15:24 +0800 Subject: [PATCH] Signed-off-by: arraykeys@gmail.com --- CHANGELOG | 7 +++++++ README.md | 6 ++++++ release.sh | 2 +- services/tunnel_server.go | 11 +++++++++-- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fb23d6e..cf82c77 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,11 @@ proxy更新日志 +v3.2 +1.内网穿透功能server端-r参数增加了协议,默认是tcp://,可以是udp://. + 格式是:-r "协议://本地绑定IP:本地监听端口@clientHost:clientPort" + 比如: -r "udp://:10053@:53" -r "tcp://:10800@:1080" -r ":8080@:80" + 如果指定了--udp参数,协议留空默认为udp://; + 如果没有指定--udp参数,协议留空默认为tcp://; + 本地绑定IP为空默认是绑定全部ip. v3.1 1.优化了内网穿透功能,bridge,client和server只需要启动一个即可。 diff --git a/README.md b/README.md index 89fedc7..4a8b109 100644 --- a/README.md +++ b/README.md @@ -340,6 +340,12 @@ server连接到bridge的时候,如果同时有多个client连接到同一个brid ### TODO - socks5代理支持. +### 如何使用源码? +cd进入你的go src目录,然后git clone https://github.com/snail007/goproxy.git ./proxy 即可. +编译直接:go build +运行: go run *.go +utils是工具包,service是具体的每个服务类. + ### License Proxy is licensed under GPLv3 license. ### Contact diff --git a/release.sh b/release.sh index 9edbac1..b72697a 100755 --- a/release.sh +++ b/release.sh @@ -1,5 +1,5 @@ #!/bin/bash -VER="3.1" +VER="3.2" RELEASE="release-${VER}" rm -rf .cert mkdir .cert diff --git a/services/tunnel_server.go b/services/tunnel_server.go index b84a7d1..3a8d361 100644 --- a/services/tunnel_server.go +++ b/services/tunnel_server.go @@ -40,7 +40,14 @@ func (s *TunnelServerManager) Start(args interface{}) (err error) { log.Fatalf("parent required") } //log.Printf("route:%v", *s.cfg.Route) - for _, info := range *s.cfg.Route { + for _, _info := range *s.cfg.Route { + IsUDP := s.cfg.IsUDP + if strings.HasPrefix(_info, "udp://") { + u := true + IsUDP = &u + } + info := strings.TrimPrefix(_info, "udp://") + info = strings.TrimPrefix(info, "tcp://") _routeInfo := strings.Split(info, "@") server := NewTunnelServer() local := _routeInfo[0] @@ -48,7 +55,7 @@ func (s *TunnelServerManager) Start(args interface{}) (err error) { err = server.Start(TunnelServerArgs{ Args: s.cfg.Args, Local: &local, - IsUDP: s.cfg.IsUDP, + IsUDP: IsUDP, Remote: &remote, Key: s.cfg.Key, Timeout: s.cfg.Timeout,