Jelajahi Sumber

enable client to connect non-local [ip:port]

Hurricanezwf 9 tahun lalu
induk
melakukan
f02ed95ef1
3 mengubah file dengan 8 tambahan dan 1 penghapusan
  1. 1 0
      conf/frpc.ini
  2. 2 1
      src/frp/models/client/client.go
  3. 5 0
      src/frp/models/client/config.go

+ 1 - 0
conf/frpc.ini

@@ -11,4 +11,5 @@ log_way = console
 # test1即为name
 [test1]
 passwd = 123
+local_ip = 127.0.0.1
 local_port = 22

+ 2 - 1
src/frp/models/client/client.go

@@ -12,11 +12,12 @@ import (
 type ProxyClient struct {
 	Name      string
 	Passwd    string
+	LocalIp   string
 	LocalPort int64
 }
 
 func (p *ProxyClient) GetLocalConn() (c *conn.Conn, err error) {
-	c, err = conn.ConnectServer("127.0.0.1", p.LocalPort)
+	c, err = conn.ConnectServer(p.LocalIp, p.LocalPort)
 	if err != nil {
 		log.Error("ProxyName [%s], connect to local port error, %v", p.Name, err)
 	}

+ 5 - 0
src/frp/models/client/config.go

@@ -66,6 +66,11 @@ func LoadConf(confFile string) (err error) {
 				return fmt.Errorf("Parse ini file error: proxy [%s] no passwd found", proxyClient.Name)
 			}
 
+			proxyClient.LocalIp, ok = section["local_ip"]
+			if !ok {
+				return fmt.Errorf("Parse ini file error: proxy [%s] no local_ip found", proxyClient.Name)
+			}
+
 			portStr, ok := section["local_port"]
 			if ok {
 				proxyClient.LocalPort, err = strconv.ParseInt(portStr, 10, 64)