Documentation ¶
Index ¶
- Constants
- Variables
- func HandleUserTcpConnection(pxy Proxy, userConn frpNet.Conn)
- func RunDashboardServer(addr string, port int) (err error)
- func StatsAddTrafficIn(name string, trafficIn int64)
- func StatsAddTrafficOut(name string, trafficOut int64)
- func StatsClearUselessInfo()
- func StatsCloseClient()
- func StatsCloseConnection(name string)
- func StatsCloseProxy(proxyName string, proxyType string)
- func StatsNewClient()
- func StatsNewProxy(name string, proxyType string)
- func StatsOpenConnection(name string)
- type BaseOutConf
- type BaseProxy
- type Control
- func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error)
- func (ctl *Control) GetWorkConn() (workConn net.Conn, err error)
- func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr string, err error)
- func (ctl *Control) RegisterWorkConn(conn net.Conn)
- func (ctl *Control) Replaced(newCtl *Control)
- func (ctl *Control) Start()
- type ControlManager
- type GeneralResponse
- type GetProxyInfoResp
- type GetProxyStatsResp
- type GetProxyTrafficResp
- type HttpOutConf
- type HttpProxy
- type HttpsOutConf
- type HttpsProxy
- type NatHoleClientCfg
- type NatHoleController
- func (nc *NatHoleController) CloseClient(name string)
- func (nc *NatHoleController) GenNatHoleResponse(session *NatHoleSession, errInfo string) []byte
- func (nc *NatHoleController) GenSid() string
- func (nc *NatHoleController) HandleClient(m *msg.NatHoleClient, raddr *net.UDPAddr)
- func (nc *NatHoleController) HandleVisitor(m *msg.NatHoleVisitor, raddr *net.UDPAddr)
- func (nc *NatHoleController) ListenClient(name string, sk string) (sidCh chan string)
- func (nc *NatHoleController) Run()
- type NatHoleSession
- type Proxy
- type ProxyManager
- type ProxyStatistics
- type ProxyStats
- type ProxyStatsInfo
- type ProxyTrafficInfo
- type ServerInfoResp
- type ServerStatistics
- type ServerStats
- type Service
- func (svr *Service) DelProxy(name string)
- func (svr *Service) HandleListener(l frpNet.Listener)
- func (svr *Service) RegisterControl(ctlConn frpNet.Conn, loginMsg *msg.Login) (err error)
- func (svr *Service) RegisterProxy(name string, pxy Proxy) error
- func (svr *Service) RegisterVisitorConn(visitorConn frpNet.Conn, newMsg *msg.NewVisitorConn) error
- func (svr *Service) RegisterWorkConn(workConn frpNet.Conn, newMsg *msg.NewWorkConn)
- func (svr *Service) Run()
- type StcpOutConf
- type StcpProxy
- type TcpOutConf
- type TcpProxy
- type UdpOutConf
- type UdpProxy
- type VisitorManager
- type XtcpOutConf
- type XtcpProxy
Constants ¶
View Source
const (
ReserveDays = 7
)
Variables ¶
View Source
var NatHoleTimeout int64 = 10
Timeout seconds.
Functions ¶
func HandleUserTcpConnection ¶
HandleUserTcpConnection is used for incoming tcp user connections. It can be used for tcp, http, https type.
func RunDashboardServer ¶
func StatsAddTrafficIn ¶
func StatsAddTrafficOut ¶
func StatsClearUselessInfo ¶ added in v0.11.0
func StatsClearUselessInfo()
func StatsCloseClient ¶
func StatsCloseClient()
func StatsCloseConnection ¶
func StatsCloseConnection(name string)
func StatsCloseProxy ¶
func StatsNewClient ¶
func StatsNewClient()
func StatsNewProxy ¶
func StatsOpenConnection ¶
func StatsOpenConnection(name string)
Types ¶
type BaseOutConf ¶ added in v0.20.0
type BaseOutConf struct {
config.BaseProxyConf
}
type BaseProxy ¶
func (*BaseProxy) GetControl ¶
func (*BaseProxy) GetUsedPortsNum ¶ added in v0.16.0
type Control ¶
type Control struct {
// contains filtered or unexported fields
}
func (*Control) CloseProxy ¶ added in v0.12.0
func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error)
func (*Control) GetWorkConn ¶
When frps get one user connection, we get one work connection from the pool and return it. If no workConn available in the pool, send message to frpc to get one or more and wait until it is available. return an error if wait timeout
func (*Control) RegisterProxy ¶
func (*Control) RegisterWorkConn ¶
type ControlManager ¶
type ControlManager struct {
// contains filtered or unexported fields
}
func NewControlManager ¶
func NewControlManager() *ControlManager
type GeneralResponse ¶
type GetProxyInfoResp ¶
type GetProxyInfoResp struct { GeneralResponse Proxies []*ProxyStatsInfo `json:"proxies"` }
type GetProxyStatsResp ¶ added in v0.17.0
type GetProxyStatsResp struct { GeneralResponse Name string `json:"name"` Conf interface{} `json:"conf"` TodayTrafficIn int64 `json:"today_traffic_in"` TodayTrafficOut int64 `json:"today_traffic_out"` CurConns int64 `json:"cur_conns"` LastStartTime string `json:"last_start_time"` LastCloseTime string `json:"last_close_time"` Status string `json:"status"` }
Get proxy info by name.
type GetProxyTrafficResp ¶
type GetProxyTrafficResp struct { GeneralResponse Name string `json:"name"` TrafficIn []int64 `json:"traffic_in"` TrafficOut []int64 `json:"traffic_out"` }
api/traffic/:name
type HttpOutConf ¶ added in v0.20.0
type HttpOutConf struct { BaseOutConf config.DomainConf Locations []string `json:"locations"` HostHeaderRewrite string `json:"host_header_rewrite"` }
type HttpProxy ¶
type HttpProxy struct { BaseProxy // contains filtered or unexported fields }
func (*HttpProxy) GetRealConn ¶ added in v0.14.1
type HttpsOutConf ¶ added in v0.20.0
type HttpsOutConf struct { BaseOutConf config.DomainConf }
type HttpsProxy ¶
type HttpsProxy struct { BaseProxy // contains filtered or unexported fields }
func (*HttpsProxy) Close ¶
func (pxy *HttpsProxy) Close()
func (*HttpsProxy) GetConf ¶
func (pxy *HttpsProxy) GetConf() config.ProxyConf
func (*HttpsProxy) Run ¶
func (pxy *HttpsProxy) Run() (remoteAddr string, err error)
type NatHoleClientCfg ¶ added in v0.14.0
type NatHoleController ¶ added in v0.14.0
type NatHoleController struct {
// contains filtered or unexported fields
}
func NewNatHoleController ¶ added in v0.14.0
func NewNatHoleController(udpBindAddr string) (nc *NatHoleController, err error)
func (*NatHoleController) CloseClient ¶ added in v0.14.0
func (nc *NatHoleController) CloseClient(name string)
func (*NatHoleController) GenNatHoleResponse ¶ added in v0.14.0
func (nc *NatHoleController) GenNatHoleResponse(session *NatHoleSession, errInfo string) []byte
func (*NatHoleController) GenSid ¶ added in v0.14.0
func (nc *NatHoleController) GenSid() string
func (*NatHoleController) HandleClient ¶ added in v0.14.0
func (nc *NatHoleController) HandleClient(m *msg.NatHoleClient, raddr *net.UDPAddr)
func (*NatHoleController) HandleVisitor ¶ added in v0.14.0
func (nc *NatHoleController) HandleVisitor(m *msg.NatHoleVisitor, raddr *net.UDPAddr)
func (*NatHoleController) ListenClient ¶ added in v0.14.0
func (nc *NatHoleController) ListenClient(name string, sk string) (sidCh chan string)
func (*NatHoleController) Run ¶ added in v0.14.0
func (nc *NatHoleController) Run()
type NatHoleSession ¶ added in v0.14.0
type Proxy ¶
type ProxyManager ¶
type ProxyManager struct {
// contains filtered or unexported fields
}
func NewProxyManager ¶
func NewProxyManager() *ProxyManager
func (*ProxyManager) Del ¶
func (pm *ProxyManager) Del(name string)
type ProxyStatistics ¶
type ProxyStats ¶
type ProxyStats struct { Name string Type string TodayTrafficIn int64 TodayTrafficOut int64 LastStartTime string LastCloseTime string CurConns int64 }
func StatsGetProxiesByType ¶
func StatsGetProxiesByType(proxyType string) []*ProxyStats
func StatsGetProxiesByTypeAndName ¶ added in v0.17.0
func StatsGetProxiesByTypeAndName(proxyType string, proxyName string) (res *ProxyStats)
type ProxyStatsInfo ¶
type ProxyStatsInfo struct { Name string `json:"name"` Conf interface{} `json:"conf"` TodayTrafficIn int64 `json:"today_traffic_in"` TodayTrafficOut int64 `json:"today_traffic_out"` CurConns int64 `json:"cur_conns"` LastStartTime string `json:"last_start_time"` LastCloseTime string `json:"last_close_time"` Status string `json:"status"` }
Get proxy info.
type ProxyTrafficInfo ¶
func StatsGetProxyTraffic ¶
func StatsGetProxyTraffic(name string) (res *ProxyTrafficInfo)
type ServerInfoResp ¶
type ServerInfoResp struct { GeneralResponse Version string `json:"version"` BindPort int `json:"bind_port"` BindUdpPort int `json:"bind_udp_port"` VhostHttpPort int `json:"vhost_http_port"` VhostHttpsPort int `json:"vhost_https_port"` KcpBindPort int `json:"kcp_bind_port"` AuthTimeout int64 `json:"auth_timeout"` SubdomainHost string `json:"subdomain_host"` MaxPoolCount int64 `json:"max_pool_count"` MaxPortsPerClient int64 `json:"max_ports_per_client"` HeartBeatTimeout int64 `json:"heart_beat_timeout"` TotalTrafficIn int64 `json:"total_traffic_in"` TotalTrafficOut int64 `json:"total_traffic_out"` CurConns int64 `json:"cur_conns"` ClientCounts int64 `json:"client_counts"` ProxyTypeCounts map[string]int64 `json:"proxy_type_count"` }
api/serverinfo
type ServerStatistics ¶
type ServerStatistics struct { TotalTrafficIn metric.DateCounter TotalTrafficOut metric.DateCounter CurConns metric.Counter // counter for clients ClientCounts metric.Counter // counter for proxy types ProxyTypeCounts map[string]metric.Counter // statistics for different proxies // key is proxy name ProxyStatistics map[string]*ProxyStatistics // contains filtered or unexported fields }
type ServerStats ¶
type ServerStats struct { TotalTrafficIn int64 TotalTrafficOut int64 CurConns int64 ClientCounts int64 ProxyTypeCounts map[string]int64 }
Functions for getting server stats.
func StatsGetServer ¶
func StatsGetServer() *ServerStats
type Service ¶
type Service struct { // For https proxies, route requests to different clients by hostname and other infomation VhostHttpsMuxer *vhost.HttpsMuxer // contains filtered or unexported fields }
Server service
var ServerService *Service
func NewService ¶
func (*Service) HandleListener ¶ added in v0.12.0
func (*Service) RegisterControl ¶
func (*Service) RegisterVisitorConn ¶ added in v0.14.0
func (*Service) RegisterWorkConn ¶
func (svr *Service) RegisterWorkConn(workConn frpNet.Conn, newMsg *msg.NewWorkConn)
RegisterWorkConn register a new work connection to control and proxies need it.
type StcpOutConf ¶ added in v0.20.0
type StcpOutConf struct {
BaseOutConf
}
type StcpProxy ¶ added in v0.13.0
type StcpProxy struct { BaseProxy // contains filtered or unexported fields }
type TcpOutConf ¶ added in v0.20.0
type TcpOutConf struct { BaseOutConf RemotePort int `json:"remote_port"` }
type UdpOutConf ¶ added in v0.20.0
type UdpOutConf struct { BaseOutConf RemotePort int `json:"remote_port"` }
type VisitorManager ¶ added in v0.14.0
type VisitorManager struct {
// contains filtered or unexported fields
}
Manager for visitor listeners.
func NewVisitorManager ¶ added in v0.14.0
func NewVisitorManager() *VisitorManager
func (*VisitorManager) CloseListener ¶ added in v0.14.0
func (vm *VisitorManager) CloseListener(name string)
func (*VisitorManager) Listen ¶ added in v0.14.0
func (vm *VisitorManager) Listen(name string, sk string) (l *frpNet.CustomListener, err error)
type XtcpOutConf ¶ added in v0.20.0
type XtcpOutConf struct {
BaseOutConf
}
Source Files ¶
Click to show internal directories.
Click to hide internal directories.