首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

解决 SSH 无操作自动断开 | pychram 超时无响应

工作中常需要连接着服务器,下班或暂时离开时会出现一段时间不操作终端,此时就会自动断开。...这本身无伤大雅,重连即可,直到我发现,一些依赖 SSH 提供服务也会因此受到影响,比如 Pychram 远程开发,会在一段时间后无响应,只能重启 Pychram 解决,很影响效率。...为解决该问题,在网上找到一种配置方法,亲测一夜 (10h+) 不会再断开,在此分享: 众所周知,SSH 是用于与远程服务器建立加密通信通道,因此配置涉及服务端和客户端: 服务端 /etc/ssh/sshd_config...+ClientAliveInterval 60 #每60秒发送一个KeepAlive请求 +ClientAliveCountMax 15 #总时间为:15*60 ,15分钟没有操作,终端断开。...ServerAliveInterval 60 # 或是全局配置(对所有用户生效) vim /etc/ssh/sshd_config + ServerAliveInterval 60 参考文献# SSH长时间不使用自动断开解决方案

45250

一文带你搞定TCP面试(二)

摘要 TCP断开连接 TIME_WAIT TIME_WAIT优化 TCP保活 Sokcet编程 TCP断开连接 TCP断开连接,需要经历四次挥手,通信双方都可主动断开连接断开连接通信双方占用资源将会被释放...服务器收到ACK报文以后,就会真正关闭连接,进入CLOSED状态 客户端经过2MSL时间后,也会自动关闭连接进入CLOSED状态 为什么回收需要四次 原因是客户端主动发起FIN报文以后仅表示客户端不再主动发送数据了但是还可以接收数据...客户端收到新FIN报文时会重新发送ACK报文并刷新2MSL计时,最终能够保证服务端连接能够正常关闭。...TCP保活机制 某个时间段内,如果TCP连接上无任何活动,TCP保活机制开始生效,每隔一段时间就会发送一个探测报文,如果连续几个探测报文都没有收到响应,则认为TCP连接已死,系统内核会将错误信息通知给应用程序...服务端处理完所有的数据以后,会读取到EOF,此时会调用close方法关闭Socket,然后发送一个FIN包进入LAST_ACK状态。 后面的其实就是TCP最终断开连接

56010
您找到你想要的搜索结果了吗?
是的
没有找到

Linux SSH 连接一段时间内没有活动时可能会自动断开,怎么办?

当使用 Linux SSH 连接远程服务器时,可能会遇到一个问题:一段时间内没有活动时,SSH 连接可能会自动断开。这对于那些需要长时间维护服务器或者执行耗时任务用户来说可能是非常烦人。...本文中,我们将探讨这个问题原因以及如何解决它。图片1. 为什么会发生自动断开?SSH(Secure Shell)是一种通过加密通道来远程访问和管理服务器安全协议。...为了提高服务器安全性,SSH 一段时间内没有活动时会自动断开连接。这个行为被称为 SSH 会话超时。SSH 会话超时目的是防止未经授权访问和保护服务器资源。...ClientAliveCountMax 指定了服务器未收到客户端响应后断开连接之前发送保持活动消息次数。将其设置为一个适当值,以确保连接不会过于频繁地断开(比如 3)。保存并关闭文件。...小结SSH 连接一段时间内没有活动时可能会自动断开,以提高服务器安全性和节省资源。然而,对于需要长时间维护服务器或执行耗时任务用户来说,这可能会带来不便。

3.8K30

后端面试总结-网络篇

,发送端通过这个可以知道需要重传哪些数据包 ❞ 流量控制 为什么需要流量控制 ❝数据包到接收端接收缓冲区后,应用程序从缓冲区读取数据,但可能由于应用程序处理速度较慢,导致接收缓冲区被占满了,这个时候发送端就应该得知道接收端这个情况...这时服务端这边 TCP 从 listen 状态变为 SYN_RCVD (SYN Received),此时会将这个连接信息放入「半连接队列」;服务端发送ACK+SYN后,会开启一个定时器,如果超时还没收到...若对端还发送数据过来,会返回一个rst报文❞ ⚠️套接字会维护一个计数,当有一个进程持有,计数加一,close调用时会检查计数,只有当计数为0时,才会关闭连接,否则,只是将套接字计数减一❞ ❝「int...❞ ⚠️shutdown不会检查套接字计数情况,会直接关闭连接❞ 四次挥手 ❝「为什么需要在TIME_WAIT等待一段时间」 避免新连接(使用同一个五元组连接)收到旧连接数据包,造成数据混乱 保证...:记录了缓存有效期,相对时间 缓存策略: no-cache 不使用本地缓存。

70740

《网络是怎么样连接》读书笔记 - TcpIP连接(二)

断开Socket连接,解除绑定。转化为具体流程图如下:图片创建Socket过程大致为应用程序会把控制流程会转移到 socket 内部并执行创建套接字操作,完成之后控制流程又会被移交回应用程序。...断开连接这一步需要简单理解为需要一方主动发起断开申请浏览器调用read收发数据同时会收到关闭请求,此时客户端确认请求之后将会停止请求并且开始释放Socket连接为什么不能用描述符标识应用程序入口?...连接含义人和人之间沟通有时候可以不使一个语言,只要双方都听懂就行,但是对于计算机是行不通。...实际上协议栈收发数据是有所保留,并不是强制按照协议规定处理,而是给了应用程序一些可控选项,比如浏览器这种要求实时性应用程序通常不使用缓冲区。...协议栈会将接收到数据复制到应用程序指定内存地址中,然后将控制流程交回应用程序断开连接断开连接部分包含断开连接和删除套接字操作,断开连接也就是经典四次挥手操作,而删除套接字则需要注意在协议栈中并没有规定关闭时间

64030

oracleTAF浅析 (r6笔记第37天)

使用rac时候,有几个很闪亮使用特性,一个就是load balance,这块毋庸置疑,确实做了很大改进,从10g版本开始多个vip地址load balance,到11g版本中进一步load...已经断开,需要重连。...比如说换取时间,为了更快达到failover速度,failover method 有preconnect,这种预连接方式还是会占用较多资源使用,各个节点上还是会预先占用一部分额外资源,切换时会相对更加平滑...一种方式就是使用select,即会完成故障切换,继续把剩下2000条记录返回,当然中间会有一些上下文环境切换,对于用户基本还是透明,但是会有一定延时。 另外一种是直接断开连接,要求重新查询。...当然有一个不同之处是10g中我们可以直接通过dbca来完成配置,就是简单清晰。 11g中,只能借助于命令或者EM来实现了。不知道为什么把这块功能图形界面部分给去掉了。

1.5K50

聊聊TCP连接管理

面向连接意思是一个应用进程开始向另一个应用进程发送数据之前,这两个进程需要先进行“握手”以建立连接,而在结束数据传输之前,也需要通过“挥手”断开连接。...首先客户端A请求与服务端B建立连接,其会发送一个TCP报文段,且首部中同步位SYN=1,同时会带上一个初始序列号seq=x。 服务端B收到A连接请求后,如果同意建立连接,则向A发送确认报文。...确认报文中需要将SYN和ACK位都置为1,同时确认序列号为ack=x+1,并且为自己选择一个初始序列号seq=y。 客户端A收到服务端的确认后,还要给B发出确认,后面会解释为什么。...其会向服务端发送一个断开连接报文段,其报文段首部终止控制位FIN置为1,序列号seq=u。...这里有一个问题就是,为什么A发送完最后一个确认报文段之后,需要经过2MSL时间才关闭连接呢?其理由如下: 其一,为了保证A发送最后一个确认报文段能够到达B。

1.3K80

《网络是怎么样连接》读书笔记 - TcpIP连接(二)

断开连接 这一步需要简单理解为需要一方主动发起断开申请浏览器调用read收发数据同时会收到关闭请求,此时客户端确认请求之后将会停止请求并且开始释放Socket连接。...为什么不能用描述符标识应用程序入口? 描述符是和委托创建套接字 应用程序进行交互时使用,并不是用来告诉网络连接另一方。...连接含义 人和人之间沟通有时候可以不使一个语言,只要双方都听懂就行,但是对于计算机是行不通。...实际上协议栈收发数据是有所保留,并不是强制按照协议规定处理,而是给了应用程序一些可控选项,比如浏览器这种要求实时性应用程序通常不使用缓冲区。...协议栈会将接收到数据复制到应用程序指定内存地址中,然后将控制流程交回应用程序 断开连接 断开连接部分包含断开连接和删除套接字操作,断开连接也就是经典四次挥手操作,而删除套接字则需要注意在协议栈中并没有规定关闭时间

49240

又见KeepAlive

这种问题不只是LVS上有,之前商用负载均衡设备F5上遇到过同样问题,F5Session断开方式和LVS有点区别,F5不会主动发送RESET给链接两端,Session消失之后,当链接中一方再次发送报文时会接收到...(命令行基本上TCPdump,后面我们还会用这张图说明问题): 现在我看只要看前3行,这就是TCP三次握手完整建立过程,第一个报文SYN从发起方发出,第二个报文SYN,ACK是从被连接方发出,第三个报文...现在才是开始说明为什么要有KeepAlive。...是7200s, 如果我应用程序中针对socket开启了KeepAlive,然后设置TCP_KEEPIDLE为60,那么TCP协议栈发现TCP链接空闲了60s没有数据传输时候就会发送第一个探测报文...TCP链接,而是等待一段时间接收浏览器端可能发送过来第二个请求,通常浏览器一个请求返回之后会立即发送第二个请求,如果某一时刻只能有一个链接,同一个TCP链接处理请求越多,开启KeepAlive能节省

1.7K60

网络编程懒人入门(十四):到底什么是Socket?一文即懂!

应用程序中有一个 socket 组件,应用程序启动时,会调用 socket 申请创建Socket,协议栈会根据应用程序申请创建Socket:首先分配一个Socket所需内存空间,这一步相当于是为控制信息准备一个容器...但是,在数据收发之前,还需要进行一步“连接”(术语就是 connect),建立连接有一整套过程。 这个“连接”并不是真实连接一根水管插在两个电脑之间?不是你想这样。。。)。...当所有建立连接报文都能够正常收发之后,此时套接字就已经进入可收发状态了,此时可以认为一根管理把两个套接字连接了起来。当然,实际上并不存在这个管子。...6、Socket 是如何断开连接 当通信双方不再需要收发数据时,需要断开连接。不同应用程序断开连接时机不同。...收到服务器发来 FIN 请求后:客户端协议栈会将Socket标记为断开连接状态,然后,客户端会向服务器返回一个确认号,这是断开连接第一步,在这一步之后,应用程序还会调用 read 来读取数据。

72020

这篇文章带你读懂Socket,让你知道什么是Socket?

应用程序中有一个 socket 组件,应用程序启动时,会调用 socket 申请创建Socket,协议栈会根据应用程序申请创建Socket:首先分配一个Socket所需内存空间,这一步相当于是为控制信息准备一个容器...但是,在数据收发之前,还需要进行一步“连接”(术语就是 connect),建立连接有一整套过程。 这个“连接”并不是真实连接一根水管插在两个电脑之间?不是你想这样。。。)。...上面的描叙不够形象具体,这里借用一张别人动图  当所有建立连接报文都能够正常收发之后,此时套接字就已经进入可收发状态了,此时可以认为一根管理把两个套接字连接了起来。...6、Socket 是如何断开连接 当通信双方不再需要收发数据时,需要断开连接。不同应用程序断开连接时机不同。...收到服务器发来 FIN 请求后:客户端协议栈会将Socket标记为断开连接状态,然后,客户端会向服务器返回一个确认号,这是断开连接第一步,在这一步之后,应用程序还会调用 read 来读取数据。

36710

收发数据原理(下)

应用程序调用write时会指定发送数据长度,协议栈看来,要发送数据数据就是一定长度二进制字节序列而已。...上文讲到连接过程中,有一个将SYN控制位设为1并发送给服务器操作,就是在这一步将序号初始值告知对方。实际上,将SYN设为1同时,还需要同时设置序号字段值,而这里值就是初始值。...应用程序调用write时会指定发送数据长度,协议栈看来,要发送数据数据就是一定长度二进制字节序列而已。...应用程序发送数据和接收数据都依赖协议栈。 协议栈接收数据会先将数据放入缓冲区,然后将数据块按顺序连接,还原成原始数据,最后将数据交给应用程序。...接收完成与服务器断开 应用程序接收数据,其判断数据被全部接收完成,则这个时间就是收发数据结束时间。协议栈设计上允许通信双方任意一方先发起断开过程。

96420

超详细Socket通信原理和实例讲解

应用程序中有一个 socket 组件,应用程序启动时,会调用 socket 申请创建套接字,协议栈会根据应用程序申请创建套接字:首先分配一个套接字所需内存空间,这一步相当于是为控制信息准备一个容器...这个连接并不是真实连接一根水管插在两个电脑之间。而是应用程序通过 TCP/IP 协议标准从一个主机通过网络介质传输到另一个主机过程。套接字刚刚创建完成后,还没有数据,也不知道通信对象。...当所有建立连接报文都能够正常收发之后,此时套接字就已经进入可收发状态了,此时可以认为一根管理把两个套接字连接了起来。当然,实际上并不存在这个管子。...断开连接当通信双方不再需要收发数据时,需要断开连接。不同应用程序断开连接时机不同。...收到服务器发来 FIN 请求后,客户端协议栈会将套接字标记为断开连接状态,然后,客户端会向服务器返回一个确认号,这是断开连接第一步,在这一步之后,应用程序还会调用 read 来读取数据。

1.2K20

.NET中各种池

.NET中,常用到池有四个:字符串拘留池、线程池 、应用程序池、数据库连接池。 字符串拘留池 .NET中字符串是不可变对象,修改字符串变量值会产生新对象。... ,卸载AppDomain时会抛出该异常 CLR或宿主进程终止一个线程时 .NET1.0和1.1版本中, CLR会处理掉线程池中未处理异常。...默认情况下,一个应用程序池有一个工作进程,可以根据实际情况设置多个工作进程,但要考虑资源消耗及本地缓存同步问题。 IIS6和IIS5中工作进程隔离均是服务器级别。...当我们调用IDbConnectionClose方法时,连接会被连接池回收但不断开与数据库连接,以备下次使用。...连接池中连接空闲一段时间(约4~8分钟)后或者连接池检测到连接已与服务器断开(需要与服务器通讯才能检测连接是否已断开),那么该连接将会被销毁。

88340

MySQL | SQL 语句是怎样执行呢?

如果账号密码正确,连接器就会读取当前用户此时所拥有的权限,值得注意是,连接过程中,即使你管理员账号修改当前用户权限,丝毫不会影响它在本次连接权限,你修改需要等到下次连接才会生效。...长连接指的是数据库持续拥有一个连接,短连接指每次执行完很少几次操作就断开连接。...可以考虑以下方案: 定期断开连接,使用一段时间,或者程序里面判断占用内存较大时,断开连接。...连接建立完成后,接下来,select 语句就是到查询缓存中判断是否有当前语句缓存,若有直接返回结果集。 使用了查询缓存效率会很高。但一般不建议为什么为什么不建议查询缓存?...优化器 经过分析器知道了做什么,开始执行前还需要经过优化器。 它作用就是表里面有多个索引时候。决定使用那个索引;或者一个语句有多表关联时候,决定各个表连接顺序。

2K10

一文吃透 WebSocket 原理

ws://example.com:80/some/path 为什么需要 WebSocket? 我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?...) 五、WebSocket应用场景 即时聊天通信 多玩家游戏 在线协同编辑/编辑 实时数据流拉取与推送 体育/游戏实况 实时地图位置 即时Web应用程序:即时Web应用程序使用一个Web套接字客户端显示数据...WebSocket中,数据被连续推送/传输到已经打开同一连接中,这就是为什么WebSocket更快并提高了应用程序性能原因。...游戏应用程序游戏应用程序中,你可能会注意到,服务器会持续接收数据,而不会刷新用户界面。屏幕上用户界面会自动刷新,而且不需要建立新连接,因此WebSocket游戏应用程序中非常有帮助。...连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接,但是实际情况中,如果中间节点出现什么故障是难以知道

2.1K10

你不知道数据库连接

实际上,大多数应用程序仅使用一个或几个不同连接配置。 这意味着执行应用程序期间,许多相同连接将反复地打开和关闭。...如果应用程序尝试阻塞期内进行连接,则将再次引发第一个异常。阻塞期结束后后续失败将导致新阻塞期,该阻塞期持续时间是上一个阻塞期两倍,最长为一分钟。...,因为连接字符串与A匹配 } 如果 MinPoolSize 连接字符串中未指定或指定为零,池中连接将在一段时间不活动后关闭。...池碎片 池碎片是许多 Web 应用程序一个常见问题,应用程序可能会创建大量进程退出后才会释放池。 这样,将打开大量连接,占用许多内存,从而导致性能降低。...但是,如果启用了池,连接将返回池,重复使用池连接时会出错。 应用程序角色替代项 建议您利用可以使用安全机制,而不使应用程序角色。

98610

C3P0-数据库连接池解读

: 连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,默认值 15(建议使用) acquireIncrement:连接无空闲连接可用时一次性创建新数据库连接数...当然正在使用连接不会马上断开,而是等待它close再断开。配置为0时候则不会对连接生存时间进行限制。...default : 0 单位 s(不建议使用) ---- 配置连接测试: automaticTestTable:配置一个表名,连接池根据这个表名自己测试sql语句在这个空表上测试数据库连接,这个表只能由...管理,比如在Connection acquire 时候设定Connection隔离级别,或者Connection丢弃时候进行资源关闭, 就可以通过继承一个AbstractConnectionCustomizer...---- 配置debug和回收Connection unreturnedConnectionTimeout:为0时候要求所有的Connection应用程序中必须关闭。

50620

网络是怎样连接 第一、二章 笔记

通信阶段) 4.断开管道并删除套接字 (断开阶段) 管道连接时是有客户端发起,但在断开时可以由客户端或服务器任意一方发起 当管道断开后,套接字就会被删除 注:以上四个操作都是由协议栈来执行,浏览器等应用程序并不会自己去做...write时会指定发送数据长度 协议栈接收到数据后会将数据存放在内部发送缓冲区中,并等待下一段数据 这样做原因是: 应用程序交给协议栈发送数据长度是由应用程序本身来决定,不同应用程序会在实现上有所不同...,之后,协议栈要找到合适时机向发送方发送窗口更新 从服务器断开并删除套接字 数据发送完毕后断开连接 收发数据时间点应该是应用程序判断所有数据都已经发送完毕时候 数据发送完毕一方会发起断开过程,不同应用程序会选择不同断开时机...因此就像之前提到一样,不妨将责任范围划分得宽松一点,将TCP和IP作为一个整体来看待,这样可以带来更大灵活性 UDP 协议收发操作 不需要重发数据 UDP 重发更高效 有些程序不使用TCP协议...TCP这样复杂机制 而且,如果不使用TCP,也不需要发送那些用来建立和断开连接控制包 此外,我们发送了数据,对方一般都会给出回复,只要将回复数据当做接收确认就行了,也就不需要专门接收确认包了 控制短数据

74110
领券