|
|
@ -26,7 +26,10 @@ import (
|
|
|
|
"github.com/fatedier/frp/pkg/nathole"
|
|
|
|
"github.com/fatedier/frp/pkg/nathole"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
var natHoleSTUNServer string
|
|
|
|
var (
|
|
|
|
|
|
|
|
natHoleSTUNServer string
|
|
|
|
|
|
|
|
serverUDPPort int
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
func init() {
|
|
|
|
RegisterCommonFlags(natholeCmd)
|
|
|
|
RegisterCommonFlags(natholeCmd)
|
|
|
@ -34,7 +37,8 @@ func init() {
|
|
|
|
rootCmd.AddCommand(natholeCmd)
|
|
|
|
rootCmd.AddCommand(natholeCmd)
|
|
|
|
natholeCmd.AddCommand(natholeDiscoveryCmd)
|
|
|
|
natholeCmd.AddCommand(natholeDiscoveryCmd)
|
|
|
|
|
|
|
|
|
|
|
|
natholeCmd.PersistentFlags().StringVarP(&natHoleSTUNServer, "nat_hole_stun_server", "", "", "STUN server address for nathole")
|
|
|
|
natholeCmd.PersistentFlags().StringVarP(&natHoleSTUNServer, "nat_hole_stun_server", "", "stun.easyvoip.com:3478", "STUN server address for nathole")
|
|
|
|
|
|
|
|
natholeCmd.PersistentFlags().IntVarP(&serverUDPPort, "server_udp_port", "", 0, "UDP port of frps for nathole")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var natholeCmd = &cobra.Command{
|
|
|
|
var natholeCmd = &cobra.Command{
|
|
|
@ -46,14 +50,14 @@ var natholeDiscoveryCmd = &cobra.Command{
|
|
|
|
Use: "discover",
|
|
|
|
Use: "discover",
|
|
|
|
Short: "Discover nathole information by frps and stun server",
|
|
|
|
Short: "Discover nathole information by frps and stun server",
|
|
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
|
|
cfg, _, _, err := config.ParseClientConfig(cfgFile)
|
|
|
|
// ignore error here, because we can use command line pameters
|
|
|
|
if err != nil {
|
|
|
|
cfg, _, _, _ := config.ParseClientConfig(cfgFile)
|
|
|
|
fmt.Println(err)
|
|
|
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if natHoleSTUNServer != "" {
|
|
|
|
if natHoleSTUNServer != "" {
|
|
|
|
cfg.NatHoleSTUNServer = natHoleSTUNServer
|
|
|
|
cfg.NatHoleSTUNServer = natHoleSTUNServer
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if serverUDPPort != 0 {
|
|
|
|
|
|
|
|
cfg.ServerUDPPort = serverUDPPort
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if err := validateForNatHoleDiscovery(cfg); err != nil {
|
|
|
|
if err := validateForNatHoleDiscovery(cfg); err != nil {
|
|
|
|
fmt.Println(err)
|
|
|
|
fmt.Println(err)
|
|
|
|