protocol = websocketsecure
websocketsecure support in frpc
This commit is contained in:
parent
134a46c00b
commit
59f35fe952
@ -28,7 +28,7 @@ import (
|
|||||||
func init() {
|
func init() {
|
||||||
httpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
httpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
||||||
httpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
httpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
||||||
httpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket")
|
httpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket or websocketsecure")
|
||||||
httpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
httpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
||||||
httpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
httpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
||||||
httpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
httpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
||||||
|
@ -28,7 +28,7 @@ import (
|
|||||||
func init() {
|
func init() {
|
||||||
httpsCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
httpsCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
||||||
httpsCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
httpsCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
||||||
httpsCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket")
|
httpsCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket or websocketsecure")
|
||||||
httpsCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
httpsCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
||||||
httpsCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
httpsCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
||||||
httpsCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
httpsCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
||||||
|
@ -27,7 +27,7 @@ import (
|
|||||||
func init() {
|
func init() {
|
||||||
stcpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
stcpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
||||||
stcpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
stcpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
||||||
stcpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket")
|
stcpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket or websocketsecure")
|
||||||
stcpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
stcpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
||||||
stcpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
stcpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
||||||
stcpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
stcpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
||||||
|
@ -27,7 +27,7 @@ import (
|
|||||||
func init() {
|
func init() {
|
||||||
udpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
udpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
||||||
udpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
udpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
||||||
udpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket")
|
udpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket or websocketsecure")
|
||||||
udpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
udpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
||||||
udpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
udpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
||||||
udpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
udpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
||||||
|
@ -27,7 +27,7 @@ import (
|
|||||||
func init() {
|
func init() {
|
||||||
xtcpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
xtcpCmd.PersistentFlags().StringVarP(&serverAddr, "server_addr", "s", "127.0.0.1:7000", "frp server's address")
|
||||||
xtcpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
xtcpCmd.PersistentFlags().StringVarP(&user, "user", "u", "", "user")
|
||||||
xtcpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket")
|
xtcpCmd.PersistentFlags().StringVarP(&protocol, "protocol", "p", "tcp", "tcp or kcp or websocket or websocketsecure")
|
||||||
xtcpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
xtcpCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "auth token")
|
||||||
xtcpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
xtcpCmd.PersistentFlags().StringVarP(&logLevel, "log_level", "", "info", "log level")
|
||||||
xtcpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
xtcpCmd.PersistentFlags().StringVarP(&logFile, "log_file", "", "console", "console or file path")
|
||||||
|
@ -41,7 +41,7 @@ user = your_name
|
|||||||
login_fail_exit = true
|
login_fail_exit = true
|
||||||
|
|
||||||
# communication protocol used to connect to server
|
# communication protocol used to connect to server
|
||||||
# now it supports tcp and kcp and websocket, default is tcp
|
# now it supports tcp and kcp and websocket and websocketsecure, default is tcp
|
||||||
protocol = tcp
|
protocol = tcp
|
||||||
|
|
||||||
# if tls_enable is true, frpc will connect frps by tls
|
# if tls_enable is true, frpc will connect frps by tls
|
||||||
|
@ -189,7 +189,7 @@ func UnmarshalClientConfFromIni(defaultCfg *ClientCommonConf, content string) (c
|
|||||||
|
|
||||||
if tmpStr, ok = conf.Get("common", "protocol"); ok {
|
if tmpStr, ok = conf.Get("common", "protocol"); ok {
|
||||||
// Now it only support tcp and kcp and websocket.
|
// Now it only support tcp and kcp and websocket.
|
||||||
if tmpStr != "tcp" && tmpStr != "kcp" && tmpStr != "websocket" {
|
if tmpStr != "tcp" && tmpStr != "kcp" && tmpStr != "websocket" && tmpStr != "websocketsecure" {
|
||||||
err = fmt.Errorf("Parse conf error: invalid protocol")
|
err = fmt.Errorf("Parse conf error: invalid protocol")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -203,7 +203,9 @@ func ConnectServerByProxy(proxyUrl string, protocol string, addr string) (c Conn
|
|||||||
// http proxy is not supported for kcp
|
// http proxy is not supported for kcp
|
||||||
return ConnectServer(protocol, addr)
|
return ConnectServer(protocol, addr)
|
||||||
case "websocket":
|
case "websocket":
|
||||||
return ConnectWebsocketServer(addr)
|
return ConnectWebsocketServer(addr,"http","ws")
|
||||||
|
case "websocketsecure":
|
||||||
|
return ConnectWebsocketServer(addr,"https","wss")
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unsupport protocol: %s", protocol)
|
return nil, fmt.Errorf("unsupport protocol: %s", protocol)
|
||||||
}
|
}
|
||||||
|
@ -81,14 +81,14 @@ func (p *WebsocketListener) Close() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// addr: domain:port
|
// addr: domain:port
|
||||||
func ConnectWebsocketServer(addr string) (Conn, error) {
|
func ConnectWebsocketServer(addr string, httpProtocol string, wsProtocol string) (Conn, error) {
|
||||||
addr = "ws://" + addr + FrpWebsocketPath
|
addr = wsProtocol +"://" + addr + FrpWebsocketPath
|
||||||
uri, err := url.Parse(addr)
|
uri, err := url.Parse(addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
origin := "http://" + uri.Host
|
origin := httpProtocol + "://" + uri.Host
|
||||||
cfg, err := websocket.NewConfig(addr, origin)
|
cfg, err := websocket.NewConfig(addr, origin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
Reference in New Issue
Block a user