Closed anlityli closed 4 years ago
这个项目只是试验性的,如果真的要加入堡垒机,是需要考虑这方面的东西的
嗯
我测试了一下,闲置了10几个小时都没有断开呢,你的具体情况是?
我链接的是阿里云服务器,可能阿里云对长连接的时间有控制,然后我用定时器,每隔一段时间发送了一个包解决了这个问题。谢谢!
我链接的是阿里云服务器,可能阿里云对长连接的时间有控制,然后我用定时器,每隔一段时间发送了一个包解决了这个问题。谢谢!
能否分享一下你的具体实现代码呢?
你的服务器能链接10几个小时不断,可能是服务器的/etc/ssh/ssh_config文件配置了
TCPKeepAlive yes
ServerAliveInterval 30
我的代码是在 newSSHXtermSession方法中加了一个定时器,定时器内的代码是:
if _, err := session.SendRequest("keepalive@golang.org", true, nil); err != nil {
errors.Wrap(err, "failed to send keep alive")
}
你的服务器能链接10几个小时不断,可能是服务器的/etc/ssh/ssh_config文件配置了
我的服务器不断那是因为TMOUT的设置的原因,我是意思分享下你的心跳方案
定时器,我用的是gf框架带的时间轮定时器,因为go默认的定时器可能有性能问题
定时器,我用的是gf框架带的时间轮定时器,因为go默认的定时器可能有性能问题
比如说你采用了gf定时器,到了一定时间后会向后端服务器发送什么心跳数据呢?
我上面发了代码了
if _, err := session.SendRequest("keepalive@golang.org", true, nil); err != nil {
errors.Wrap(err, "failed to send keep alive")
}
看到了,谢谢,学习了
客气,我从你的代码中学到的更多!😁
长时间不动,没有任何输入,再次输入服务端会EOF,此时ssh可能是与服务器已经断开连接了。能否增加心跳,来保活?