新足迹

 找回密码
 注册

精华好帖回顾

· 我的选车日记(已更新,69楼已上图) (2012-4-17) duudu · 唠嗑| 我们在一所很白的女校。 (2021-4-21) eurekana
· (全!文!完!)鸿篇巨制,生死时速:献给我的台湾行(台南&台北)– 标题略浮夸,内容qiao丰富,美食图片 (2018-2-12) caridi · 简易花园浇水系统 (2009-9-6) woodream
Advertisement
Advertisement
查看: 2168|回复: 10

oracle virtual box 里面的vm [复制链接]

发表于 2021-2-27 12:23 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整


以前vmware用的多些,最近用了下oracle virtual box, 里面运行的redhat vm,  ssh本机连过去做实验。  晚上的时候,直接把电脑睡眠, 第二天唤醒电脑后, ssh的session居然不断, 这是怎么回事阿?

ssh是基于tcp的连接,需要keepalive的吧, 为什么停了一晚,一点事没用?
Sunday Afternoons UPF50+防晒帽专卖
oursteps.co/forum.php?mod=viewthread&tid=934220
Advertisement
Advertisement

发表于 2021-2-27 12:30 |显示全部楼层
此文章由 APSTNDP 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 APSTNDP 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我也有时候遇到过类似的,不是virtual box, 是其他的虚拟机。

等待大神解惑

发表于 2021-2-27 14:05 |显示全部楼层
此文章由 git 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 git 所有!转贴必须注明作者、出处和本声明,并保持内容完整
ssh有不断重新连接的设置。

要看默认设置。

发表于 2021-2-27 15:53 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
git 发表于 2021-2-27 14:05
ssh有不断重新连接的设置。

要看默认设置。

不是重新连接, 重新连接会停在等待用户名密码那。

这个就是完完全全在原来session那里, 敲一半的命令,补全了,直接运行,超级神奇。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.co/forum.php?mod=viewthread&tid=934220

发表于 2021-2-27 16:01 来自手机 |显示全部楼层
此文章由 kanweng 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kanweng 所有!转贴必须注明作者、出处和本声明,并保持内容完整
TMOUT=0 就不断开,  可以配置TMOUT=30.

发表于 2021-2-27 18:02 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kanweng 发表于 2021-2-27 16:01
TMOUT=0 就不断开,  可以配置TMOUT=30.

感觉不是这个缘故。


这电脑休眠, 对于ssh 客户端来说,基本等于拔网线了 TMOUT只是shell级别的variable, 我这情况感觉是ssh下面的tcp就不断。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.co/forum.php?mod=viewthread&tid=934220
Advertisement
Advertisement

发表于 2021-2-27 23:47 |显示全部楼层
此文章由 llee 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 llee 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我的理解,抛砖引玉。

首先TCP协议是没有在一段时间内如果没有传输数据就断开连接这种设计的。如果客户端和服务器之间没有其他设备骚扰的话,理论上只要双方愿意,一个TCP连接可以永远存活下去——即使这期间完全没有数据交互也没关系。当然现实生活中双方之间总有一些中间设备有超时的逻辑。

宿主机和虚拟机之间的连接基本上可以认为是这种无干扰的理想情况了。所以休眠再唤醒,对TCP的影响可以认为没有。

然后ssh的keepalive逻辑基本上是这样:如果客户端有一段时间没动静,就发一个空包过去;如果客户端对这个包也没响应,就继续发,直到发送的次数够多了就断开连接。但是这里程序也不会看客户端多久没有动静了。所以虚拟机和宿主机一起唤醒的时候,ssh服务器发现有个连接已经十几个小时没发东西过来了,就发了个空包试试,结果发现有反应!当然可以继续工作啦。

发表于 2021-2-28 09:26 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
llee 发表于 2021-2-27 23:47
我的理解,抛砖引玉。

首先TCP协议是没有在一段时间内如果没有传输数据就断开连接这种设计的。如果客户端 ...

还是不太明白, 但是感觉ssh应该是在tcp上,应该算应用层了。

tcp还是在下面一层,而且tcp本身自己也有keepalive,一段时间如果没有数据传输,应该就开始keepalive,好像默认2小时,最多9次?  那理论上可以坚持18个小时没有反应?

不太确定,只是ubuntu物理机,vmware里的各种虚拟机,ssh我都从来没遇到过这么时间的,都是10几20分钟,基本就断了。

看看这个,可以到18小时

Keep-Alive Process
There are three configurable properties that determine how Keep-Alives work. On Linux they are1:

tcp_keepalive_time
default 7200 seconds
tcp_keepalive_probes
default 9
tcp_keepalive_intvl
default 75 seconds
The process works like this:

Client opens TCP connection
If the connection is silent for tcp_keepalive_time seconds, send a single empty ACK packet.1
Did the server respond with a corresponding ACK of its own?
No
Wait tcp_keepalive_intvl seconds, then send another ACK
Repeat until the number of ACK probes that have been sent equals tcp_keepalive_probes.
If no response has been received at this point, send a RST and terminate the connection.
Yes: Return to step 2

Sunday Afternoons UPF50+防晒帽专卖
oursteps.co/forum.php?mod=viewthread&tid=934220

发表于 2021-2-28 11:33 |显示全部楼层
此文章由 archills 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 archills 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我觉得可能是休眠的一个特例。   也就是你的native host + vm 同时 pause/sleep了。

发表于 2021-2-28 12:13 来自手机 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
archills 发表于 2021-2-28 11:33
我觉得可能是休眠的一个特例。   也就是你的native host + vm 同时 pause/sleep了。

  ...

这个感觉靠谱
Sunday Afternoons UPF50+防晒帽专卖
oursteps.co/forum.php?mod=viewthread&tid=934220

发表于 2021-4-10 10:53 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
archills 发表于 2021-2-28 10:33
我觉得可能是休眠的一个特例。   也就是你的native host + vm 同时 pause/sleep了。

  ...

今天又体会了一把,应该你这个就是答案了。

不只是oracle vb,  vmware今天也是如此, 我是host本机putty ssh到 guest 里面, 晚上睡觉的时候,我都是直接按电源,笔记本休眠, 第二天电脑打开, putty和ssh session还都是活的。  感觉确实是server,client一起睡眠,醒来, 还都活着。

我仔细想想以前睡眠之后putty就死掉的情况是我putty都是先连接到车库里的server,再回来到本机 guest os里面,这种情况一睡眠,肯定session就死掉了。  当时vmware guest和host不能直接互联, 就周转一下, oracle vb 下guest和host直连。

Sunday Afternoons UPF50+防晒帽专卖
oursteps.co/forum.php?mod=viewthread&tid=934220
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部