自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何保持 SSH 會話不中斷?

網(wǎng)絡(luò) 通信技術(shù)
在空閑 TCP 連接上發(fā)送 TCP keepalive 探針的間隔時(shí)間,即使在沒有實(shí)際數(shù)據(jù)傳輸?shù)那闆r下。TCP keepalive 探針用于檢測遠(yuǎn)程主機(jī)是否仍然存活和響應(yīng)

哈嘍大家好,我是咸魚

不知道小伙伴們有沒有遇到過下面的情況:

使用終端(XShell、secureCRT 或 MobaXterm 等)登錄 Linux 服務(wù)器之后如果有一段時(shí)間沒有進(jìn)行交互,SSH 會話就會斷開

如果正在執(zhí)行一些非后臺命令,SSH 會話斷開就可能會使得這些命令可能會被中斷,導(dǎo)致任務(wù)無法完成

那如何保持 SSH 會話不中斷呢?我們來看一下

原文鏈接:https://linuxiac.com/how-to-keep-ssh-session-alive/

為什么 SSH 會關(guān)閉連接

簡短的回答是,這一切都?xì)w結(jié)為 TCP 超時(shí)

TCP 超時(shí)時(shí)間是指 TCP 連接或網(wǎng)絡(luò)操作在認(rèn)為進(jìn)程失敗之前等待響應(yīng)的時(shí)間

在 Linux 中,TCP 超時(shí)時(shí)間設(shè)置確定了 TCP 連接或操作在丟包或者連接無響應(yīng)前應(yīng)該等待多長時(shí)間

TCP 超時(shí)機(jī)制確保了網(wǎng)絡(luò)通信的可靠性和效率

在保持 SSH 會話的情況下,有三個(gè)關(guān)鍵的系統(tǒng)參數(shù)我們需要注意:

  • tcp_keepalive_time:在空閑 TCP 連接上發(fā)送 TCP keepalive 探針的間隔時(shí)間,即使在沒有實(shí)際數(shù)據(jù)傳輸?shù)那闆r下。TCP keepalive 探針用于檢測遠(yuǎn)程主機(jī)是否仍然存活和響應(yīng)
  • tcp_keepalive_probes:TCP keepalive 探針,由 TCP 端發(fā)送的數(shù)據(jù)包,用于檢查空閑連接中遠(yuǎn)端的運(yùn)行狀況和響應(yīng)性。有助于檢測遠(yuǎn)程主機(jī)是否變得不可訪問,或者連接是否由于網(wǎng)絡(luò)問題而丟失
  • tcp_keepalive_intvl:控制發(fā)送空閑 TCP 連接的 keepalive 探針的時(shí)間間隔

我們可以通過下面的命令來查看上面三個(gè)參數(shù)的值:

tcp_keepalive_time 為 600 表示保持 TCP 連接時(shí)間為 600s 或 10 分鐘,但是這并不意味著我們的 SSH 會話就真的會保持 10 分鐘

因?yàn)?tcp_keepalive_probes 為 9 和 tcp_keepalive_intvl 為 75 表示系統(tǒng)會每隔 75s 發(fā)送 9 個(gè)探測包(總計(jì) 675 s),之后會話將會被視為失敗然后關(guān)閉

也就是說,在 675s 后,SSH 會話將在不活動時(shí)終止,即沒有在終端中輸入內(nèi)容

如何保持 SSH 會話

保持 SSH 會話是一個(gè)涉及 client 和 server 配置的過程

Linux client 配置

對于 Linux client ,我們在家目錄下修改 ~/.ssh/config 文件(如果沒有就創(chuàng)建)

vim  ~/.ssh/config

下面是配置

Host *
ServerAliveInterval 120
ServerAliveCountMax 30

  • Host:配置僅對 “Host” 關(guān)鍵字后面列出的主機(jī)生效。由于使用了通配符 (*),因此它們適用于所有主機(jī)
  • ServerAliveInterval:設(shè)置超時(shí)間隔(以秒為單位),如果沒有從 server 接收到數(shù)據(jù),SSH 將通過加密通道發(fā)送消息,請求 server 響應(yīng)。默認(rèn)值為 0,表示不會將這些消息發(fā)送到 server
  • ServerAliveCountMax:設(shè)置在 SSH 沒有收到任何消息的情況下向 server 發(fā)送keepalive 消息的數(shù)量。如果達(dá)到了該閾值,SSH 將斷開與 server 的連接,終止會話(默認(rèn)值為 3)

表示 client 每 120s 向 server 發(fā)送 keepalive 消息,一共發(fā)送 30 次,也就是 120 * 30 = 3600 s(一個(gè)小時(shí)),在這一個(gè)小時(shí)內(nèi) SSH 會話會一直保持

Windows client 配置

對于 Windows 而言,我們一般使用終端來訪問 server

以 secureCRT 為例

選項(xiàng)——>會話選項(xiàng)

圖片圖片

然后點(diǎn)擊【終端】

圖片圖片

Linux server 配置

上面介紹的是 client 端的配置,我們接下來介紹 server 端的配置

修改 /etc/ssh/sshd_config 文件

vim /etc/ssh/sshd_config

TCPKeepAlive yes
ClientAliveInterval 120 
ClientAliveCountMax 30

  • TCPKeepAlive:是否應(yīng)該向 client 發(fā)送 TCP keepalive 信息
  • ClientAliveInterval:設(shè)置超時(shí)間隔(以秒為單位),如果沒有從 client 接收到數(shù)據(jù),SSH 將通過加密通道發(fā)送消息,請求 client 響應(yīng)。默認(rèn)值為 0,表示不會將這些消息發(fā)送到 client
  • ClientAliveCountMax:設(shè)置在 SSH 沒有收到任何消息的情況下向 client 發(fā)送keepalive 消息的數(shù)量。如果達(dá)到了該閾值,SSH 將斷開與 client 的連接,終止會話(默認(rèn)值為 3)

與前面講到的 Linux client 配置一樣,server 將保持 SSH 會話一個(gè)小時(shí)(120 * 30 = 3600s)

配置之后重啟 SSH 服務(wù)

systemctl restart sshd

責(zé)任編輯:武曉燕 來源: 咸魚運(yùn)維雜談
相關(guān)推薦

2022-04-10 22:50:20

SSHLinux會話

2020-03-03 22:15:58

byobuSSH會話Linux

2012-11-28 11:17:09

云打印聯(lián)想

2023-09-27 07:18:27

Nginxsession客戶端

2015-08-17 13:44:53

數(shù)字化醫(yī)院解決方案東華華為

2011-09-07 17:00:51

Ubuntussh

2012-01-11 13:38:15

移動BI解決方案

2011-11-08 10:04:59

安奈特醫(yī)院網(wǎng)絡(luò)

2018-01-22 09:12:18

Linuxbashssh

2020-03-12 13:00:36

Python斷點(diǎn)設(shè)置編程語言

2010-05-05 19:05:03

負(fù)載均衡器會話保持

2019-03-13 11:03:06

騰訊金融數(shù)據(jù)機(jī)房

2020-03-01 17:49:16

Linux腳本語言操作系統(tǒng)

2017-07-06 12:35:39

SSHLinux

2019-06-20 14:52:46

Nginx+Tomca負(fù)載均衡

2025-02-21 09:04:18

微軟Windows 11系統(tǒng)

2020-01-27 16:25:48

SSHLinuxLinux scree

2023-06-21 18:59:01

2012-06-21 16:49:53

視頻會議飛視美
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號