48 lines
822 B
Go
48 lines
822 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
|
|
"github.com/ginuerzh/gost/gost"
|
|
)
|
|
|
|
var (
|
|
laddr, faddr string
|
|
quiet bool
|
|
)
|
|
|
|
func init() {
|
|
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
|
|
|
flag.StringVar(&laddr, "L", ":18080", "listen address")
|
|
flag.StringVar(&faddr, "F", ":12222", "forward address")
|
|
flag.BoolVar(&quiet, "q", false, "quiet mode")
|
|
flag.BoolVar(&gost.Debug, "d", false, "debug mode")
|
|
flag.Parse()
|
|
|
|
if quiet {
|
|
gost.SetLogger(&gost.NopLogger{})
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
chain := gost.NewChain(
|
|
gost.Node{
|
|
Addr: faddr,
|
|
Client: gost.NewClient(
|
|
gost.HTTPConnector(nil),
|
|
gost.SSHTunnelTransporter(),
|
|
),
|
|
},
|
|
)
|
|
|
|
s := &gost.Server{}
|
|
s.Handle(gost.HTTPHandler(gost.ChainHandlerOption(chain)))
|
|
ln, err := gost.TCPListener(laddr)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Fatal(s.Serve(ln))
|
|
}
|