TCP remote forwarding with chain
This commit is contained in:
parent
88c204899b
commit
46cb9af130
@ -34,8 +34,8 @@ func main() {
|
|||||||
go wsServer()
|
go wsServer()
|
||||||
go wssServer()
|
go wssServer()
|
||||||
go kcpServer()
|
go kcpServer()
|
||||||
// go tcpForwardServer()
|
go tcpForwardServer()
|
||||||
// go rtcpForwardServer()
|
go tcpRemoteForwardServer()
|
||||||
// go rudpForwardServer()
|
// go rudpForwardServer()
|
||||||
// go tcpRedirectServer()
|
// go tcpRedirectServer()
|
||||||
go sshTunnelServer()
|
go sshTunnelServer()
|
||||||
@ -138,10 +138,11 @@ func tcpForwardServer() {
|
|||||||
log.Fatal(s.Serve(ln, h))
|
log.Fatal(s.Serve(ln, h))
|
||||||
}
|
}
|
||||||
|
|
||||||
func rtcpForwardServer() {
|
func tcpRemoteForwardServer() {
|
||||||
s := &gost.Server{}
|
s := &gost.Server{}
|
||||||
ln, err := gost.TCPRemoteForwardListener(
|
ln, err := gost.TCPRemoteForwardListener(
|
||||||
":1222",
|
":1222",
|
||||||
|
/*
|
||||||
gost.NewChain(
|
gost.NewChain(
|
||||||
gost.Node{
|
gost.Node{
|
||||||
Protocol: "socks5",
|
Protocol: "socks5",
|
||||||
@ -154,13 +155,15 @@ func rtcpForwardServer() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
*/
|
||||||
|
nil,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal()
|
log.Fatal()
|
||||||
}
|
}
|
||||||
h := gost.TCPRemoteForwardHandler(
|
h := gost.TCPRemoteForwardHandler(
|
||||||
":1222",
|
":22",
|
||||||
gost.AddrHandlerOption("127.0.0.1:22"),
|
//gost.AddrHandlerOption("127.0.0.1:22"),
|
||||||
)
|
)
|
||||||
log.Fatal(s.Serve(ln, h))
|
log.Fatal(s.Serve(ln, h))
|
||||||
}
|
}
|
||||||
|
@ -405,6 +405,7 @@ func (c *udpServerConn) SetWriteDeadline(t time.Time) error {
|
|||||||
type tcpRemoteForwardListener struct {
|
type tcpRemoteForwardListener struct {
|
||||||
addr net.Addr
|
addr net.Addr
|
||||||
chain *Chain
|
chain *Chain
|
||||||
|
ln net.Listener
|
||||||
closed chan struct{}
|
closed chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -463,7 +464,13 @@ func (l *tcpRemoteForwardListener) accept() (conn net.Conn, err error) {
|
|||||||
cc.Close()
|
cc.Close()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = errors.New("invalid chain")
|
if l.ln == nil {
|
||||||
|
l.ln, err = net.Listen("tcp", l.addr.String())
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
conn, err = l.ln.Accept()
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user