Signed-off-by: arraykeys@gmail.com <arraykeys@gmail.com>

This commit is contained in:
arraykeys@gmail.com
2017-10-09 15:33:09 +08:00
parent f270885a4d
commit 7b247384ec
2 changed files with 18 additions and 16 deletions

View File

@ -230,10 +230,10 @@ VPS(IP:22.22.22.33)执行:
步骤:
1. 在vps上执行
`./proxy tbridge -p ":33080" -C proxy.crt -K proxy.key`
`./proxy tserver -p ":28080" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key`
`./proxy tserver -r ":28080@:80" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key`
1. 在公司机器A上面执行
`./proxy tclient -p "127.0.0.1:80" -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
`./proxy tclient -C proxy.crt -K proxy.key`
1. 完成
@ -248,10 +248,10 @@ VPS(IP:22.22.22.33)执行:
步骤:
1. 在vps上执行
`./proxy tbridge -p ":33080" -C proxy.crt -K proxy.key`
`./proxy tserver --udp -p ":53" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key`
`./proxy tserver --udp -r ":53@:53" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key`
1. 在公司机器A上面执行
`./proxy tclient --udp -p "127.0.0.1:53" -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
`./proxy tclient --udp -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
1. 完成
@ -269,17 +269,19 @@ VPS(IP:22.22.22.33)执行:
`./proxy tbridge -p ":33080" -C proxy.crt -K proxy.key`
1. 在公司机器A上面执行
`./proxy tclient -p "127.0.0.1:80" -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
`./proxy tclient -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
1. 在家里电脑上执行
`./proxy tserver -p ":28080" -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
`./proxy tserver -r ":28080@:80" -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
1. 完成
**4.5、高级用法二**
提示:
一个client和一个server是一对,如果要暴露多个端口,需要使用--k参数进行分组,
--k可以是任意唯一字符串,只要多个端口使用的不一样即可.
如果同时有多个client连接到同一个bridge,需要指定不同的key,可以通过--k参数设定,--k可以是任意唯一字符串,
只要在同一个bridge上唯一即可.
server连接到bridge的时候,如果同时有多个client连接到同一个bridge,需要使用--k参数选择client.
暴露多个端口重复-r参数即可.-r格式是:"本地IP:本地端口@clientHOST:client端口"
背景:
- 公司机器A提供了web服务80端口,ftp服务21端口
@ -292,12 +294,10 @@ VPS(IP:22.22.22.33)执行:
步骤:
1. 在vps上执行
`./proxy tbridge -p ":33080" -C proxy.crt -K proxy.key`
`./proxy tserver -p ":28080" --k web -P "127.0.0.1:33080" -C proxy.crt -K proxy.key`
`./proxy tserver -p ":29090" --k ftp -P "127.0.0.1:33080" -C proxy.crt -K proxy.key`
`./proxy tserver -r ":28080@:80" -r ":29090@:21" --k test -P "127.0.0.1:33080" -C proxy.crt -K proxy.key`
1. 在公司机器A上面执行
`./proxy tclient -p "127.0.0.1:80" --k web -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
`./proxy tclient -p "127.0.0.1:21" --k ftp -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
`./proxy tclient --k test -P "22.22.22.22:33080" -C proxy.crt -K proxy.key`
1. 完成

View File

@ -39,12 +39,13 @@ func (s *TunnelServerManager) Start(args interface{}) (err error) {
} else {
log.Fatalf("parent required")
}
//log.Printf("route:%v", *s.cfg.Route)
for _, info := range *s.cfg.Route {
_routeInfo := strings.Split(info, "@")
server := NewTunnelServer()
local := _routeInfo[0]
remote := _routeInfo[1]
server.Start(TunnelServerArgs{
err = server.Start(TunnelServerArgs{
Args: s.cfg.Args,
Local: &local,
IsUDP: s.cfg.IsUDP,
@ -52,6 +53,9 @@ func (s *TunnelServerManager) Start(args interface{}) (err error) {
Key: s.cfg.Key,
Timeout: s.cfg.Timeout,
})
if err != nil {
return
}
}
return
}
@ -91,7 +95,6 @@ func (s *TunnelServer) Start(args interface{}) (err error) {
host, port, _ := net.SplitHostPort(*s.cfg.Local)
p, _ := strconv.Atoi(port)
s.sc = utils.NewServerChannel(host, p)
if *s.cfg.IsUDP {
err = s.sc.ListenUDP(func(packet []byte, localAddr, srcAddr *net.UDPAddr) {
s.udpChn <- UDPItem{
@ -273,8 +276,7 @@ func (s *TunnelServer) UDPConnDeamon() {
log.Printf("write udp packet to %s fail ,flush err:%s ,retrying...", *s.cfg.Parent, err)
goto RETRY
}
log.Printf("write packet %v", *item.packet)
//log.Printf("write packet %v", *item.packet)
}
}()
}