我使用 iTerm2 ,使用 ssh 命令登录远程服务器。在电脑休眠的时候, ssh 连接会断开。我想让 ssh 连接能保持不断开,是否办法能做到?
1
Theo14 2015-09-23 14:03:54 +08:00
不如禁止休眠。。。
|
2
GG2 2015-09-23 14:04:24 +08:00 1
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 2015-09-23 14:20:41 +08:00
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
nirocfz 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
Jeremial 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
jyhmijack 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
|