【Linux疑難雜症】ssh timeout… WTF 被踢拉…

閱讀時間約 2 分鐘
raw-image

圖片來源...

Linux是一個非常好用、兼具效能、靈活度高的作業系統, 唯一的缺點就是學習曲線較為陡峭, 一開始難以入門, 但假若學會了, 對於我們的作業效率勢必事半功倍, 尤其是軟體工程師、IT人員…。

過程中難免遇到一些零零總總的狀況, 不過沒關係! 一項項慢慢解決即可。

前景提要

raw-image

圖片來源...

有一天,工程師小明在進行遠端連線SSH作業時,發現一件奇怪的事情,明明就是跟朋友聚餐一下,兩個小時後回來,咦! 奇怪, 怎麼我剛剛遠端連線到伺服器的終端機都不動了!!! WTF… 不會是壞掉了吧! 這時候小明發揮工程師的精神,一定要實事求是,將問題給找出來…, 那麼我們就來幫小明一把唄…。

什麼原因呢?

主要是SSH預設會有一個檢查機制,假如說一段時間內,客戶端沒有發送任何封包請求來往時,伺服端就會視為這一個連線是失效的,因此會強制中斷連線,避免占著茅坑不拉屎的狀況,但不必擔心,這是有幾個解決方法的,就在底下,請根據需求選取一種解決方案吧!

如何解決?

客戶端配置

由於連線的過程中會有心跳機制, 伺服端會在一定時間內需要收到Client的封包, 否則就視為拒絕連線的對象。

因此我們可以在Client端配置固定時間向伺服端發送封包, 以確保我們的連線無虞。

# 編輯客戶端的ssh連線配置
vim ~/.ssh/config

# 每60秒發送一次keep alive封包
ServerAliveInterval 60

# 斷開時重新連接的次數
ServerAliveCountMax 5

伺服端配置

我們也可以延長伺服端的時效性, 以及給予更寬鬆的最大延時次數。

# 編輯伺服端的連線配置
vim /etc/ssh/sshd_config

# 將超時設定為600秒(10分鐘), 最大允許3
ClientAliveInterval 600
ClientAliveCountMax 3

動態配置

如果我們不希望這種未逾時的連線成為常態的配置時, 我們可以在連線時指定參數, 告訴這次連線每60秒發送一次封包, 避免被中斷。

ssh -o ServerAliveInterval=60 user@remote_host

使用tmux or screen…等工具來避免中斷導致程式運行中止

如果您需要在SSH連接中保持長時間運行的任務,但不希望被空閒超時終止,可以使用tmux或screen工具。這些工具可以創建會話,即使斷開SSH連接,任務也會在後台繼續運行。這樣,您可以隨時重新連接到會話並恢復工作。

結語

Linux系統雖然相對門檻較高, 但使用者也都非常樂意分享遇到的狀況以及處理方法,所以基本上都不用害怕這個系統, 而且處理效能相對較佳, 尤其我們開發雲服務的應用程式時就非常需要Linux的技能, 不妨好好的學習一番, 跟上時代的趨勢。

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識

105會員
248內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
圖片來源... 故事的起源… 圖片來源... 首先我們來查查看目標的目錄有多少檔案, 結果卻… # 查看檔案有多少量 ll *.txt|wc -l # 悲劇發生了... -bash: /usr/bin/ls: Argument list too long 那我們試著搬移檔案呢?
Tmux對於常常在使用Linux或者Mac作業系統的朋友來說是一個非常方便的工具, 可以讓我們工作效率提升, 快速切換多個終端畫面進行多工處理, 但使用時難免遇到一些狀況跟需求, 而這次分享的主要是如何複製貼上, 相信這也是大部分使用者會遇到的情境, 因此進行經驗的分享與交流。 輸入指令的快捷
熟悉使用Linux系列的開發者最常接觸的就是Terminal終端機了, 而Terminal終端機要如何有效率的運用? 這裡就來推薦一個神兵利器「tmux」, 他可以開啟我們的多工模式, 快速的游移在各個視窗之中敲打程式指令,加快工作效率。 並且背後運行著Server, 當我們進行大型任務的程式執行
前景提要 故事是這樣的,小明某一天在Linux系統上進行AI模型訓練時, 原本安心的去睡覺了, 沒想到一早起床想要看成功結果時, 竟然有一條可疑的LOG…。 kernel:[1270601.804083] watchdog: BUG: soft lockup - CPU#8 stuck fo
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
圖片來源... 故事的起源… 圖片來源... 首先我們來查查看目標的目錄有多少檔案, 結果卻… # 查看檔案有多少量 ll *.txt|wc -l # 悲劇發生了... -bash: /usr/bin/ls: Argument list too long 那我們試著搬移檔案呢?
Tmux對於常常在使用Linux或者Mac作業系統的朋友來說是一個非常方便的工具, 可以讓我們工作效率提升, 快速切換多個終端畫面進行多工處理, 但使用時難免遇到一些狀況跟需求, 而這次分享的主要是如何複製貼上, 相信這也是大部分使用者會遇到的情境, 因此進行經驗的分享與交流。 輸入指令的快捷
熟悉使用Linux系列的開發者最常接觸的就是Terminal終端機了, 而Terminal終端機要如何有效率的運用? 這裡就來推薦一個神兵利器「tmux」, 他可以開啟我們的多工模式, 快速的游移在各個視窗之中敲打程式指令,加快工作效率。 並且背後運行著Server, 當我們進行大型任務的程式執行
前景提要 故事是這樣的,小明某一天在Linux系統上進行AI模型訓練時, 原本安心的去睡覺了, 沒想到一早起床想要看成功結果時, 竟然有一條可疑的LOG…。 kernel:[1270601.804083] watchdog: BUG: soft lockup - CPU#8 stuck fo
你可能也想看
Thumbnail
八十-二十法則提到,在多數生活的現象中,約80%的效果是來自於20%的原因,除了經濟學、學習理論外,這個法則同樣也可以應用在生活中的幸福感上。 我們需要認知到擁有的越多不一定會越快樂,反而有可能會因為無法專注在少數事物上而產生空虛、迷茫的感覺。「極簡」精神最重要的一點在於放下對於「多」的執著,將有
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Linux FAQ : ps 顯示的 stat 簡介 參考 : https://unix.stackexchange.com/questions/18474/what-does-this-process-stat-indicates
df 卡住大多是掛載磁碟異常 ( mount ) 可以改使用 df -l ( 查看本地磁碟 ) 查看掛載磁碟 mount | column -t 參考 : https://www.gushiciku.cn/pl/pIst/zh-tw 取消掛載磁碟 umount 位置
參考 : 1. UNIX/Linux 檔案壓縮與備份工具 tar 指令使用教學與範例(一):tar 檔案 2. Linux 使用 split 指令將大檔案切割成小檔案,方便網路傳輸 3. [Linux] tar/gzip 檔案壓縮與解壓縮、split/cat檔案分割與合併的實務應用
垂直加總資料 參考 : https://blog.longwin.com.tw/2009/02/bash-sum-use-awk-2009/ 若數字太大,出現 E 的符號,可以用 printf 來印
Linux FAQ : 給予顯示文字色彩 參考 : https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
Linux FAQ : grep 搜尋檔案內容 grep -i 不區分大小寫 grep -v 排除條件顯示 grep -l 顯示符合的檔名 grep -n 顯示條件在第幾行 grep -q 顯示 0 , 1 ( 檢查 $? , 0 is successful ) grep -x 整行完全符合才顯示
Thumbnail
Linux FAQ : 查看 jar 檔方式 jar 檔其實類似 zip 壓縮檔 除了可以用 zip 軟體來打開 在 Linux 可以用一些指令輔助
Linux FAQ : ls , cp , rm Argument list too long 在使用 Linux 如大量檔案 ls 查看 cp 複製 rm 清理 可能會遇到了 Argument list too long 大約 10 萬筆以上檔案 就可能會看到此訊息
最近發現MySQL用timestamp自動設定的現在時間CURRENT_TIMESTAMP,會慢八個小時,紀錄一下怎麼解的: 解決MySQL用timestamp自動設定的現在時間,會慢八個小時的問題: mysql > set global time_zone='+8:00';   // UTC+8為
Thumbnail
八十-二十法則提到,在多數生活的現象中,約80%的效果是來自於20%的原因,除了經濟學、學習理論外,這個法則同樣也可以應用在生活中的幸福感上。 我們需要認知到擁有的越多不一定會越快樂,反而有可能會因為無法專注在少數事物上而產生空虛、迷茫的感覺。「極簡」精神最重要的一點在於放下對於「多」的執著,將有
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Linux FAQ : ps 顯示的 stat 簡介 參考 : https://unix.stackexchange.com/questions/18474/what-does-this-process-stat-indicates
df 卡住大多是掛載磁碟異常 ( mount ) 可以改使用 df -l ( 查看本地磁碟 ) 查看掛載磁碟 mount | column -t 參考 : https://www.gushiciku.cn/pl/pIst/zh-tw 取消掛載磁碟 umount 位置
參考 : 1. UNIX/Linux 檔案壓縮與備份工具 tar 指令使用教學與範例(一):tar 檔案 2. Linux 使用 split 指令將大檔案切割成小檔案,方便網路傳輸 3. [Linux] tar/gzip 檔案壓縮與解壓縮、split/cat檔案分割與合併的實務應用
垂直加總資料 參考 : https://blog.longwin.com.tw/2009/02/bash-sum-use-awk-2009/ 若數字太大,出現 E 的符號,可以用 printf 來印
Linux FAQ : 給予顯示文字色彩 參考 : https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
Linux FAQ : grep 搜尋檔案內容 grep -i 不區分大小寫 grep -v 排除條件顯示 grep -l 顯示符合的檔名 grep -n 顯示條件在第幾行 grep -q 顯示 0 , 1 ( 檢查 $? , 0 is successful ) grep -x 整行完全符合才顯示
Thumbnail
Linux FAQ : 查看 jar 檔方式 jar 檔其實類似 zip 壓縮檔 除了可以用 zip 軟體來打開 在 Linux 可以用一些指令輔助
Linux FAQ : ls , cp , rm Argument list too long 在使用 Linux 如大量檔案 ls 查看 cp 複製 rm 清理 可能會遇到了 Argument list too long 大約 10 萬筆以上檔案 就可能會看到此訊息
最近發現MySQL用timestamp自動設定的現在時間CURRENT_TIMESTAMP,會慢八個小時,紀錄一下怎麼解的: 解決MySQL用timestamp自動設定的現在時間,會慢八個小時的問題: mysql > set global time_zone='+8:00';   // UTC+8為