init
This commit is contained in:
35
cmd/client.go
Normal file
35
cmd/client.go
Normal file
@ -0,0 +1,35 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"shadowTLS/shadow"
|
||||
)
|
||||
|
||||
type ClientParam struct {
|
||||
ListenAddr string
|
||||
ServerAddr string
|
||||
SNI string
|
||||
}
|
||||
|
||||
var (
|
||||
clientParams *ClientParam
|
||||
clientCmd = &cobra.Command{
|
||||
Use: "client",
|
||||
Short: "Client mode",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
client := shadow.NewClient(clientParams.ListenAddr, clientParams.ServerAddr, clientParams.SNI)
|
||||
client.Start()
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
clientParams = &ClientParam{}
|
||||
clientCmd.Flags().StringVarP(&clientParams.ListenAddr, "listen", "l", "0.0.0.0:18080", "Listen address and port")
|
||||
clientCmd.Flags().StringVarP(&clientParams.ServerAddr, "saddr", "s", "", "Server address and port")
|
||||
clientCmd.Flags().StringVarP(&clientParams.SNI, "domain", "d", "", "Domain name used for TLS Handshake")
|
||||
clientCmd.MarkFlagRequired("listen")
|
||||
clientCmd.MarkFlagRequired("saddr")
|
||||
clientCmd.MarkFlagRequired("sni")
|
||||
rootCmd.AddCommand(clientCmd)
|
||||
}
|
25
cmd/root.go
Normal file
25
cmd/root.go
Normal file
@ -0,0 +1,25 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/spf13/cobra"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
rootCmd = &cobra.Command{
|
||||
Use: "shadowTLS",
|
||||
Short: "Pack TCP connection and perform real TLS handshake to confuse firewall",
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
rootCmd.CompletionOptions.DisableDefaultCmd = true
|
||||
}
|
||||
|
||||
func Execute() {
|
||||
if err := rootCmd.Execute(); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
35
cmd/server.go
Normal file
35
cmd/server.go
Normal file
@ -0,0 +1,35 @@
|
||||
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)
|
||||
}
|
Reference in New Issue
Block a user