diff --git a/client/visitor.go b/client/visitor.go index 3587d497..44e384d6 100644 --- a/client/visitor.go +++ b/client/visitor.go @@ -183,7 +183,7 @@ func (sv *XtcpVisitor) worker() { for { conn, err := sv.l.Accept() if err != nil { - sv.Warn("stcp local listener closed") + sv.Warn("xtcp local listener closed") return } diff --git a/cmd/frps/root.go b/cmd/frps/root.go index fb19f532..a874db44 100644 --- a/cmd/frps/root.go +++ b/cmd/frps/root.go @@ -25,6 +25,7 @@ import ( "github.com/fatedier/frp/models/config" "github.com/fatedier/frp/server" "github.com/fatedier/frp/utils/log" + "github.com/fatedier/frp/utils/util" "github.com/fatedier/frp/utils/version" ) @@ -84,6 +85,7 @@ func init() { rootCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token") rootCmd.PersistentFlags().Int64VarP(&authTimeout, "auth_timeout", "", 900, "auth timeout") rootCmd.PersistentFlags().StringVarP(&subDomainHost, "subdomain_host", "", "", "subdomain host") + rootCmd.PersistentFlags().StringVarP(&allowPorts, "allow_ports", "", "", "allow ports") rootCmd.PersistentFlags().Int64VarP(&maxPortsPerClient, "max_ports_per_client", "", 0, "max ports per client") } @@ -176,6 +178,18 @@ func parseServerCommonCfgFromCmd() (err error) { g.GlbServerCfg.Token = token g.GlbServerCfg.AuthTimeout = authTimeout g.GlbServerCfg.SubDomainHost = subDomainHost + if len(allowPorts) > 0 { + // e.g. 1000-2000,2001,2002,3000-4000 + ports, errRet := util.ParseRangeNumbers(allowPorts) + if errRet != nil { + err = fmt.Errorf("Parse conf error: allow_ports: %v", errRet) + return + } + + for _, port := range ports { + g.GlbServerCfg.AllowPorts[int(port)] = struct{}{} + } + } g.GlbServerCfg.MaxPortsPerClient = maxPortsPerClient return } diff --git a/models/config/proxy.go b/models/config/proxy.go index 31b26e70..0270c1c0 100644 --- a/models/config/proxy.go +++ b/models/config/proxy.go @@ -671,7 +671,6 @@ func (cfg *StcpProxyConf) UnmarshalFromIni(prefix string, name string, section i cfg.Sk = section["sk"] if tmpStr == "visitor" { - prefix := section["prefix"] cfg.ServerName = prefix + section["server_name"] if cfg.BindAddr = section["bind_addr"]; cfg.BindAddr == "" { cfg.BindAddr = "127.0.0.1" @@ -777,7 +776,6 @@ func (cfg *XtcpProxyConf) UnmarshalFromIni(prefix string, name string, section i cfg.Sk = section["sk"] if tmpStr == "visitor" { - prefix := section["prefix"] cfg.ServerName = prefix + section["server_name"] if cfg.BindAddr = section["bind_addr"]; cfg.BindAddr == "" { cfg.BindAddr = "127.0.0.1"