最近经常有人问我为什么服务器隔一段时间不操作就自动断开了,这个有时候还是影响比较大的,只是中午出去吃个饭回来,任务就断开了,由于没有nohup后台之行,还得重新运行一遍。我们目前远程访问服务器使用的都是ssh的方案,ssh为了服务器端的安装,隔一段时间不操作,服务器端将自动断开连接,这是正常现象,有几种方法可以修改这种默认行为,下面我们来具体介绍一下。
修改TMOUT变量
echo $TMOUT
# 如果输出空或0表示不超时,大于0的数字n表示n秒没有收入则超时
# 修改方法
vi /etc/profile
# ----------------------------
export TMOUT=900
# ----------------------------
# 将以上900修改为0就是设置不超时
source /etc/profile
# 让配置立即生效
修改SSH配置
ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了。
ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开。正常情况下, 客户端不会不响应,使用默认值3即可。
使用root账户修改这两个配置即可。
sed -i "s/#ClientAliveInterval 0/ClientAliveInterval 60/g" sshd_config
sed -i "s/#ClientAliveCountMax 3/ClientAliveCountMax 3/g" sshd_config
#重启ssh服务
service sshd restart
客户端配置
以上方案都只有管理员可以操作,其实客户端也可以进行设置,一般都在客户端工具的设置选项中,在里面找ssh设置,客户端采取的方案一般都是每隔一个时间点,比如30秒,自动向服务器端发送一个信号,告诉服务器端,客户端还在活动,进而“骗过”服务器端程序,保持持续连接。下面我们介绍几款常见ssh工具的设置。
pytty
mobaxterm设置
xshell设置