36 lines
980 B
Go
36 lines
980 B
Go
package cmd
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
"shadowTLS/shadow"
|
|
)
|
|
|
|
type ServerParam struct {
|
|
ListenAddr string
|
|
TargetAddr string
|
|
FakeAddr string
|
|
}
|
|
|
|
var (
|
|
serverParams *ServerParam
|
|
serverCmd = &cobra.Command{
|
|
Use: "server",
|
|
Short: "Server mode",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
server := shadow.NewServer(serverParams.ListenAddr, serverParams.TargetAddr, serverParams.FakeAddr)
|
|
server.Start()
|
|
},
|
|
}
|
|
)
|
|
|
|
func init() {
|
|
serverParams = &ServerParam{}
|
|
serverCmd.Flags().StringVarP(&serverParams.ListenAddr, "listen", "l", "0.0.0.0:443", "Listen address and port")
|
|
serverCmd.Flags().StringVarP(&serverParams.TargetAddr, "target", "t", "", "target address and port to be proxied")
|
|
serverCmd.Flags().StringVarP(&serverParams.FakeAddr, "faddr", "f", "", "Address and port of server to make TLS")
|
|
serverCmd.MarkFlagRequired("listen")
|
|
serverCmd.MarkFlagRequired("target")
|
|
serverCmd.MarkFlagRequired("faddr")
|
|
rootCmd.AddCommand(serverCmd)
|
|
}
|