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