Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.9.2版本连续启动两次frpc, 两个客户端都失去连接 #225

Closed
jcao-ai opened this issue Jan 12, 2017 · 8 comments
Closed

0.9.2版本连续启动两次frpc, 两个客户端都失去连接 #225

jcao-ai opened this issue Jan 12, 2017 · 8 comments

Comments

@jcao-ai
Copy link

jcao-ai commented Jan 12, 2017

frps启动, 先启动一次frpc,连接成功(称呼它为“连接1”)。在连接1成功的状态下,再启动一个frpc进程,配置相同,能不能把上一个连接踢掉,和最新的frpc保持连接。

看一下frps的log:

root@iZ11txj6ya6Z:~/frp/frp_0.9.1_linux_amd64# ./frps -c ./frps.ini
2017/01/12 11:12:52 [main.go:194] [I] Start frps success
2017/01/12 11:12:52 [main.go:196] [I] PrivilegeMode is enabled, you should pay more attention to security issues
2017/01/12 11:13:49 [server.go:180] [I] ProxyName [web02], type http listen for host [2a41c890-d654-11e6-a0fb-6593bac81348.frpc.zaocan84.com] location []
2017/01/12 11:13:49 [control.go:338] [I] ProxyName [web02], start proxy success
2017/01/12 11:13:49 [control.go:340] [I] ProxyName [web02], created by PrivilegeMode
######这里是第二个frpc开始连接###########
2017/01/12 11:15:22 [control.go:275] [W] ProxyName [web02], this proxy is already working now
2017/01/1
2 11:16:00 [control.go:214] [W] ProxyName [web02] is not exist
2017/01/12 11:16:08 [server.go:429] [W] ProxyName [web02], timeout trying to get work connection
2017/01/12 11:16:59 [control.go:214] [W] ProxyName [web02] is not exist
2017/01/12 11:17:08 [server.go:429] [W] ProxyName [web02], timeout trying to get work connection
2017/01/12 11:18:34 [control.go:214] [W] ProxyName [web02] is not exist
2017/01/12 11:18:44 [server.go:429] [W] ProxyName [web02], timeout trying to get work connection
2017/01/12 11:19:34 [control.go:214] [W] ProxyName [web02] is not exist
2017/01/12 11:19:44 [server.go:429] [W] ProxyName [web02], timeout try
ing to get work connection

这是第二个frpc执行的log:

root@FriendlyARM:~/NanoPi/NanoPiService/modules# ./frpc -c /var/frpc.ini
2017/01/12 03:22:04 [main.go:109] [I] Start frpc success
2017/01/12 03:22:04 [control.go:202] [E] ProxyName [web02], start proxy error, ProxyName [web02], this proxy is already working now
2017/01/12 03:22:04 [control.go:39] [E] ProxyName [web02], connect to server failed!
2017/01/12 03:22:04 [main.go:112] [W] All proxy exit!

看起来第二个frpc客户端直接就退出了

@jcao-ai
Copy link
Author

jcao-ai commented Jan 12, 2017

仔细看了一下config.go文件,能不能把406行的return去掉,让他继续执行、?以便让新的frpc客户端取得连接,并且把旧的客户端disconnect掉

@fatedier
Copy link
Owner

fatedier commented Jan 12, 2017

在前一个连接还是正常的情况下,后一个连接不会成功,这个是符合预期的。

至于你反馈的前一个连接已经 release 的问题,我会排查一下。

@jcao-ai
Copy link
Author

jcao-ai commented Jan 12, 2017

@fatedier 现在是这样的,我用在IoT设备上,设备随时可以断电上电,然后服务端可能还以为client活着,但是客户端上电后再连接就连不上了,所以我希望能够后来的client顶替。然后请你看一下我第二条评论的可行性
P.S. 看了一下,应该前一个连接没有被release

@fatedier
Copy link
Owner

这个问题目前是可以解决的,可以看下我在 #209 这个 issue 中对于重连机制的描述。这样的场景不会有问题,如果想要缩短重连期间的等待时间,可以修改心跳包的间隔时间和超时时间。

@fatedier fatedier removed the question label Jan 12, 2017
@jcao-ai
Copy link
Author

jcao-ai commented Jan 12, 2017

@fatedier 但是重点是前一个frpc客户端虽然还连着,也在发心跳包,但是运行不正常,也打不开网页了。

2017/01/12 03:59:48 [control.go:224] [D] Send heartbeat to server
2017/01/12 03:59:48 [control.go:113] [D] ProxyName [web02], receive heartbeat response
2017/01/12 03:59:49 [control.go:116] [D] ProxyName [web02], new user connection
2017/01/12 03:59:49 [client.go:169] [D] Join two connections, (l[127.0.0.1:53345] r[127.0.0.1:8888]) (l[172.16.24.119:34482] r[139.196.16)
2017/01/12 03:59:49 [process.go:86] [D] ProxyName [web02], One tunnel stopped
2017/01/12 03:59:50 [control.go:116] [D] ProxyName [web02], new user connection
2017/01/12 03:59:50 [client.go:169] [D] Join two connections, (l[127.0.0.1:53347] r[127.0.0.1:8888]) (l[172.16.24.119:34484] r[139.196.16)
2017/01/12 03:59:50 [process.go:86] [D] ProxyName [web02], One tunnel stopped

然后fprs这样子打印的:

2017/01/12 11:59:15 [control.go:214] [W] ProxyName [web02] is not exist
2017/01/12 11:59:20 [control.go:214] [W] ProxyName [web02] is not exist
2017/01/12 11:59:25 [server.go:429] [W] ProxyName [web02], timeout trying to get work connection
2017/01/12 11:59:30 [server.go:429] [W] ProxyName [web02], timeout trying to get work connection

不知道是什么原因

@jcao-ai
Copy link
Author

jcao-ai commented Jan 12, 2017

能不能加个Wechat探讨一下?大神

@fatedier
Copy link
Owner

可以加 qq 群: 606194980

@JesseGuoX
Copy link

@LitleCarl 发现我和你的应用场景类似,发了邮件给你的 foxmail,希望能多多交流

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants