博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云ssh断开处理办法
阅读量:5087 次
发布时间:2019-06-13

本文共 1295 字,大约阅读时间需要 4 分钟。

一、背景说明

1.1 墙外的吐槽

云是个好东西但我一直不觉是个有那么好的东西,因为就较多次的体验来看,用得很难受;如果要我来选我宁愿自建机房。要说难受的具体原因原来倒是没想得很清楚,现在想来网速慢不是最主要的主要的是,主要的是我们站在墙外操作墙内的主机,然后被操作主机要从墙内向墙外反馈结果。

如果是物理机,那么人与设备相对于网络同处于一侧,人可以直接操作机器甚至是物理操作机器;而如果是云,那么人与设备分处于网络的两侧,人只能通过网络操作机器,首先要确保网络是没问题的然后操作程度只能限于云提供的接口。

 

1.2 阿里云ssh断开描述

在阿里云建了几台虚拟机开放端口后ssh连上去,短则几秒钟长则十来分钟就自动断开,正在操作也会断开。

因为会话维持的长短时间不一所以不是定时断开,由于正在操作也断开所以也不是会话超时断开(查看TMOUT确实也未设置),从未见过这种情况不懂什么原因。而且观察到似乎网络流量越大断开越快。

 

二、处理办法

2.1 无效的网上处理办法

网上看到最多的处理办法是编缉/etc/ssh/sshd_config在最后追加以下两项,然后重启sshd

cat >> /etc/ssh/sshd_config << EOF# ClientAliveInterval设定服务端向客户端发送存活确认的时间间隔,单位为秒ClientAliveInterval 60# ClientAliveCountMax设定服务端向客户端发送存活确认客户端无响应即主动关闭会话的次数ClientAliveCountMax 8888EOF# systemd也无所谓,会自动重定向到systemctl restart sshdservice sshd restart

从道理上来说这种方法应该是可行的才对,但在多台Centos6和7都未见有效依然断开。

 

2.2 启用TCPKeepAlive

经常在yum、make、mvn等命令中途断开,虽然nohup有些作用,但还是感觉饱受折磨。

无意间注意到本地机器的配置文件中启用了TCPKeepAlive,而阿里云中未启用,试了一下似乎真有用至少就现在观察来看到了第二天都不会自动断开。所以最终处理办法如下:

cat >> /etc/ssh/sshd_config << EOF# ClientAliveInterval设定服务端向客户端发送存活确认的时间间隔,单位为秒ClientAliveInterval 60# ClientAliveCountMax设定服务端向客户端发送存活确认客户端无响应即主动关闭会话的次数ClientAliveCountMax 8888# 保持会话TCPKeepAlive yesEOF# systemd也无所谓,会自动重定向到systemctl restart sshdservice sshd restart

(其实也不太确定是不是TCPKeepAlive起了作用,因为我现在注释掉ssh也没见断开,未生效只是阿里云系统故障?)

 

转载于:https://www.cnblogs.com/lsdb/p/9988796.html

你可能感兴趣的文章
(转)Unity3D移动平台动态读取外部文件全解析
查看>>
回顾与陈景润讨论歌德巴哈猜想的情景
查看>>
java编写的2048程序
查看>>
解决git clone时报错:The requested URL returned error: 401 Unauthorized while accessing
查看>>
在进程View时的四个构造函数详解
查看>>
C++ 实现把非静态成员函数作为回调函数(非static)(转)
查看>>
Oracle 删除重复行
查看>>
Linq表达式、Lambda表达式你更喜欢哪个?
查看>>
iview select filterable属性使用下拉小bug
查看>>
vue table 固定首列和首行
查看>>
Educational Codeforces Round 64 C. Match Points 【二分思想】
查看>>
mysql安装和基本配置-redhat
查看>>
(第六周)团队项目3
查看>>
6-[表操作]--数据类型
查看>>
python的30个编程技巧
查看>>
Invalid bound statement (not found)之idea打包maven项目问题
查看>>
PL/SQL Developer连接Oracle 10g 64位数据库
查看>>
前端工程师-Vue-v-model的理解
查看>>
Different ways to execute a SQL Server SSIS package
查看>>
jwt
查看>>