最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

打造家里7*24小時在線的SSH代理

來源:懂視網 責編:小采 時間:2020-11-09 13:25:29
文檔

打造家里7*24小時在線的SSH代理

打造家里7*24小時在線的SSH代理:實現此功能,主要是為了充分壓榨和利用家里的PT下載機,讓家里的其他網絡設備能夠通過共享出來的socket5代理平滑的上網,你懂的 我們都知道,SSH支持端口轉發,能夠把當前連接狀態的SSH,共享為socket5代理,主要就是使用到ssh命令的-D參數。另外,在Lin
推薦度:
導讀打造家里7*24小時在線的SSH代理:實現此功能,主要是為了充分壓榨和利用家里的PT下載機,讓家里的其他網絡設備能夠通過共享出來的socket5代理平滑的上網,你懂的 我們都知道,SSH支持端口轉發,能夠把當前連接狀態的SSH,共享為socket5代理,主要就是使用到ssh命令的-D參數。另外,在Lin

實現此功能,主要是為了充分壓榨和利用家里的PT下載機,讓家里的其他網絡設備能夠通過共享出來的socket5代理平滑的上網,你懂的 我們都知道,SSH支持端口轉發,能夠把當前連接狀態的SSH,共享為socket5代理,主要就是使用到ssh命令的-D參數。另外,在Linux/U

實現此功能,主要是為了充分壓榨和利用家里的PT下載機,讓家里的其他網絡設備能夠通過共享出來的socket5代理“平滑的”上網,你懂的……

我們都知道,SSH支持端口轉發,能夠把當前連接狀態的SSH,共享為socket5代理,主要就是使用到ssh命令的-D參數。另外,在Linux/Unix平臺下,一般運行SSH命令,是需要輸入密碼的,我們需要做一些設置,讓SSH能夠通過public key來驗證,從而省去輸入密碼的繁瑣步驟。如果你用的是windows平臺,那就方便多了,推薦使用Tunnelier這個軟件,不但可以保存SSH用戶名和密碼,還可以自動斷線重連。使用此工具,你可以忽略掉此文了……

下面介紹一下Linux/Unix下通過public key驗證SSH登錄的步驟:

1. 需要在你的客戶端機器生成public key,通過如下命令來實現:

ssh-keygen -t rsa

跟著提示,一步一步按回車,就可以生成一對key,包含private key和public key,然后,通過scp/SFTP/rsync/FTP 等等方式,把這個含有public key的文件: id_rsa.pub上傳到你的SSH連接的服務端上去。

2. SSH連接到服務端,設置SSH驗證的方式,把SSH配置文件中的下面兩項的注釋去掉,使其生效:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

開啟public key驗證,并且指定了key存放的路徑,比如,你如果用用戶名user1登錄SSH,就得把上面提到的public key file: idrsa.pub 上傳到服務器上的 /home/user1/.ssh/ 并改名叫做authorizedkeys

步驟操作完成之后,重啟一下sshd服務,然后客戶端就可以通過public key來連接SSH了。

搞定上面的兩步,我們可以編輯一個shell文件,比如叫做AutoSSH.sh,內容如下:

/usr/bin/ssh -p 24 -N -D 0.0.0.0:7070 user1@YourDomain.com &

賦予腳本可執行權限,然后執行,你會發現SSH自動連接成功,并且會在本機監聽7070端口,這就是一個socket5代理了,然后充分發揮你的智慧,該干嘛干嘛去,比如Firefox+AutoProxy,或者Chrome+Proxy SwitchySharp,等等…… 哥就不細說了……

這里需要注意的是,-D后的IP,必須是0.0.0.0,這樣,這個socket5代理才能被家里局域網中的其他機器訪問到,不然,默認只監聽本機的127.0.0.0:7070,其他機器是訪問不了的!

本文貌似要接近尾聲了,不過,你用了一段時間后,會發現一個比較嚴肅的問題,這個SSH貌似一段時間連上能用,過了一段時間就自動斷開了,你不得不一次又一次的手動運行這個腳本。

這是咋回事呢? 原來,SSH是默認有一個空閑時間的,當客戶端沒有操作處于一定的空閑時間,服務端就會主動斷開SSH連接。

在SSH服務端的配置文件中,有兩個參數,分別叫做:ClientAliveInterval 和 ClientAliveCountMax,這個就是用來控制最大閑置時間的。

ClientAliveInterval 數值是秒,比如你設置為300,就是5分鐘.

ClientAliveCountMax 指如果發現客戶端沒有相應,則判斷一次超時,這個參數設置允許超時的次數。比如:

ClientAliveInterval 300
ClientAliveCountMax 5;

則代表允許超時 1500秒 =25分鐘

通過更改數值大小,能保證SSH連接最大閑置時間。不過感覺這樣的方式還是不太靠譜,一旦網絡遇到問題,或者其他原因導致SSH連接端口,你還是得手動去運行那個連接SSH的腳本。

既然這樣,我們還是自己動手,豐衣足食一下,俺順帶用ruby寫了個檢測SSH連接是否斷開,并且自從運行SSH連接腳本的簡單程序:

#!/usr/local/rvm/bin/ruby
#AutoSSH.rb
#Written by Timothy 2012.11.19
#Run it with: ruby AutoSSH.rb &
lambda{
PORT_NUM = "0.0.0.0:7070"
GREP_STR = "netstat -anp|grep #{PORT_NUM}"
SHELL_PATH = "/root/AutoSSH/AutoSSH.sh &"
pipe = IO.popen(GREP_STR)
result = pipe.gets
if((result != nil) && (result.include? PORT_NUM))
 return
else
 p 'SSH is disconnected! Will reconnect it!'
 system SHELL_PATH
end
}.call

這個程序的功能,就是檢測0.0.0.0:7070 是否還在監聽。你或許需要根據你的需求,配置一下AutoSSH.sh文件的路徑,然后,把這個腳本加到系統的定時任務里面去,讓它每一分鐘執行并檢測一次,若是遇到SSH連接端口,會立馬重新連接SSH的。如果你機器沒有配置ruby環境,可以google一下如何安裝ruby。

大功告成,到此,你就有了一個7*24小時不斷網的SSH代理,供家里其他的機器同時使用。

聲明: 此Blog中的文章和隨筆僅代表作者在某一特定時間內的觀點和結論,對其完全的正確不做任何擔?;蚣僭O
本站文章均采用 知識共享署名-相同方式共享3.0 協議進行授權,除非注明,本站文章均為原創,轉載請注明轉自 Timothy's Space 并應以鏈接形式標明本文地址!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

打造家里7*24小時在線的SSH代理

打造家里7*24小時在線的SSH代理:實現此功能,主要是為了充分壓榨和利用家里的PT下載機,讓家里的其他網絡設備能夠通過共享出來的socket5代理平滑的上網,你懂的 我們都知道,SSH支持端口轉發,能夠把當前連接狀態的SSH,共享為socket5代理,主要就是使用到ssh命令的-D參數。另外,在Lin
推薦度:
標簽: 代理 功能 家里
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
国产精品久久久久精品…-国产精品可乐视频最新-亚洲欧美重口味在线-欧美va免费在线观看