
我使用 iTerm2 ,使用 ssh 命令登录远程服务器。在电脑休眠的时候, sh 连接会断开。我想让 ssh 连接能保持不断开,是否办法能做到?
1 Theo14 2015-09-23 14:03:54 +08:00 不如禁止休眠。。。 |
2 GG2 2015-09-23 14:04:24 +08:00 mosh |
3 xiaoyao9933 2015-09-23 14:05:21 +08:00 1. 如果非要保持不断开,可将 sshd client 和 server 的 alive 时间都调的非常大,我不知道可不可以设置为无限。我没这么试过,不清楚是否起作用。不推荐这种做法,因为连接可能确实会假死。 2. 为什么不用 tmux 或者 screen 呀? |
4 xiaoyao9933 2015-09-23 14:08:24 +08:00 @GG2 发现一个好东西。。 |
6 simpx 2015-09-23 14:17:37 +08:00 1. 用 mosh 2. 用 ssh + screen 的办法,每次 screen -x 到之前的 session 。 目前我使用的是方案二,比较通用,不用装一个 mosh |
7 Tink PRO screen 或者 mosh |
8 lucifer9 2015-09-23 14:35:48 +08:00 autossh + screen |
9 yuewolf 2015-09-23 14:37:37 +08:00 screen 感觉更适合,无需装东西,切一下即可 |
10 zts1993 2015-09-23 14:52:15 +08:00 autossh |
11 tracyone 2015-09-23 14:59:31 +08:00 也可以用 tmux 哦,这样就不会打断正在运行的远程进程了 |
12 alangz OP 之前用 tmux ,不太习惯,我试试 mosh |
13 zhouquanbest 2015-09-23 15:17:12 +08:00 mosh 才是真正意义上的不断 其他都是重连 虽然其实都是一回事 |
14 clino 2015-09-23 15:18:08 +08:00 ConnectTimeout 15 ConnectionAttempts 3 ServerAliveInterval 20 ServerAliveCountMax 5 调整这些参数看看有没有什么帮助 |
15 oska874 2015-09-23 15:27:02 +08:00 @zhouquanbest 为什么说 mosh 是真正的不断?电脑休眠了, ssh 肯定都断了。 |
16 tmdwex06895 2015-09-23 15:44:01 +08:00 推荐 mosh ,非常赞。 |
17 yaxin 2015-09-23 17:02:33 +08:00 竟然没有人提 ssh 的共享回话 在~/.ssh/config 中添加 Host * ControlMaster auto ControlPath ~/.ssh/%h-%p-%r ControlPersist 4h |
18 zhangwei1996 2015-09-23 17:15:09 +08:00 screen 神器。 |
19 cloudop 2015-09-23 17:34:21 +08:00 mac 下的 terminal 只要 echo "ServerAliveInterval 20" >> /root/.ssh/config 就够了 |
20 introom 2015-09-23 17:41:22 +08:00 via Android 楼上改 ssh config 都没用,你把电脑合上去试试就知道了。 因为那东西就不是干这个的啊,请好好读 man 所以老老实实用 tmux 和 autossh |
21 stillness 2015-09-23 17:49:50 +08:00 这是不是两个问题? 一个是 ssh 服务端和客户端长时间不通信怎么保持连接 一个是电脑休眠怎么让终端里的进程不退出 |
22 meiriyitie 2015-09-23 21:01:43 +08:00 |
23 uniquecolesmith 2015-09-23 21:08:59 +08:00 1. tmux 足够强大 2. mosh: 用 UDP, 没有 TCP 的超时概念 |
24 wyntau 2015-09-23 23:16:19 +08:00 mosh +10086 |
25 holinhot 2015-09-23 23:21:02 +08:00 你能做的还不够吧。有些 vps 奸商 设置了 tcp 会话超时。好像是 15 分钟无包就自动强致断开 |
26 ryd994 2015-09-23 23:57:38 +08:00 via Android TCP 在这种情况下一定会断 要么 mosh 用 UDP 要么 screen 断开也没事 |
27 gaitana 2015-09-24 00:53:22 +08:00 mosh 跟 mycli 冲突 |
28 ligyxy 2015-09-24 01:52:44 +08:00 tmux |
29 xierch 2015-09-24 02:18:23 +08:00 我是 mosh + tmux 的.. |
30 cxbig 2015-09-24 02:59:32 +08:00 via iPhone tmux |
32 imnpc 2015-09-24 08:02:12 +08:00 一般来说 都是用 screen |
33 itkdqwzero 2015-09-24 08:05:22 +08:00 大家都很历害, 我只会用 top |
34 Axurez 2015-09-24 08:44:47 +08:00 byobu ,也就是 tmux 或者 screen 。。 |
35 cnhongwei 2015-09-24 09:05:49 +08:00 @oska874 mosh 是不会断的,只要你 client 和 server 端进程不被 kill 掉,网络断了,会自动重连,并回到原会话。所以实用于移动环境,在公司连上,电脑一待机,拿回家,又自动连上了。 但 mosh 有一个缺陷,滚屏的内容没有办法回翻,这点就没有 tmux 和 screen 方便。官方说是 1.3 版本才会支持。 |
36 ijse 2015-09-24 09:19:43 +08:00 如果只想保持某个进程不会因为 session 断开而终止,比较简单的方法是用 nohub 。 如果想保留 ssh 工作空间,还是用 screen 比较好。 |
37 tcitry 2015-09-24 10:34:13 +08:00 楼主需要 tmux 或者 supervisor |
38 introom 2015-09-24 11:27:14 +08:00 another reason I don't recommend mosh to others is, mosh doesn't support X forwarding. Seemingly, you can't share the clipboard between your linux server and your host machine. One workaround is to use software like clipper, which instantiates a new tcp session between the server and your host for the sole purpose of sharing clipboard content. |
39 KKKKale 2015-09-24 11:35:17 +08:00 tmux +1 |
40 datocp 2015-09-24 12:29:51 +08:00 系统休眠首先要解决 无线连接 是否会因为节能特性断开。 然后才是 tcp/udp timeout 设置,路由的 tcp/udp timeout 在拔号获得 100.开头的 ip 时应该是没效果的,至少以前在使用 putty 时经常的断开,而现在获得的是公网 ip 则没问题, putty 在 connection 设置项有个 seconds between keepalive(0 to tun off) 防呆选项,其实通过 ping ip 是最简单的方法,当然前提还是先解决节能特性。 |
41 dennyzhang 2016-09-13 23:23:38 +08:00 tmux +1 |