linux通過ssh實現反向連線
1.問題描述:
有時,我們會想在區域網外訪問區域網內的機器。這時,我們可以使用SSH的反向連線來實現。
裝置A:位於區域網內,可以訪問代理伺服器B。 假設該裝置IP:A.A.A.A,使用者名稱userA
裝置B:位於區域網外,作為訪問裝置A的代理伺服器,不可訪問A。假設該裝置IP:B.B.B.B,使用者名稱userB
裝置C:想要訪問A的裝置,可以訪問B,無法直接訪問A。假設該裝置IP:C.C.C.C,使用者名稱userC
2.目標:裝置C可以通過SSH訪問區域網內裝置C
3.條件:
三臺裝置都需要包含SSH客戶端,A,B裝置需要包含SSH服務端。
4.實現步驟:
4.1.在A裝置上建立A裝置到B裝置的反向代理:
ssh -fCNR <port_b1>:localhost:22 [email protected]
例如:ssh -fCNR 10000:localhost:22 [email protected] (此時B裝置上已經可以通過ssh -p 10000 [email protected]連線到裝置A)
<port_b1>:建立在B機器上,用來代理裝置A機器22埠的埠。
[email protected] :B機器的使用者名稱和IP地址。
4.2.在B裝置上建立B裝置到A裝置的正向代理:(這樣做的目的是為了實現和外網的通訊)
ssh -fCNL *:<port_b2>:localhost:<port_b1>
例如:ssh -fCNL *:10001:localhost:10000 [email protected]
<port_b2>:用作本地轉發的埠,用來和外網通訊,並將資料轉發到<port_b1>,實現從其他機器可以訪問。
*代表可以接受來自任意機器的訪問。
4.3.現在C機器上可以通過B機器SSH到A機器
ssh -p<port_b2> [email protected]
5.注意事項
5.1.引數介紹
-f 後臺執行-C 允許壓縮資料-N 不執行任何命令-R 將埠繫結到遠端伺服器,反向代理-L 將埠繫結到本地客戶端,正向代理
5.2.自動連線和防斷線指令碼
如果你想讓連線長期保持,可以寫個指令碼來保證因為網路原因斷線的話可以自動重連。
先說Windows平臺,用plink -pw引數可以指定密碼,所以只要寫個批處理:
:1
plink -pw “password” -D 7070 [email protected]
goto 1
這樣應該就可以解決大多數問題造成的斷線。
Linux平臺ssh預設不支援把密碼作為引數,不過有sshpass可以搞定下載,解壓,編譯,把可執行檔案拷貝到合適的目錄,執行命令格式如下:
sshpass -p "password" ssh -D <port> [email protected]
貌似ubuntu下可以直接apt-get install sshpass編寫指令碼autossh.sh,內容如下:
#!/bin/bash
while [ '' == '' ]
do
ssh_d_process_num=`ps aux|grep -E 'ssh \-' |grep -v grep |wc -l`
if [ "$ssh_d_process_num" == "0" ]; then
/home/user/sshpass -p "password" ssh -D 7070 [email protected] &
fi
sleep 300
done
執行這個指令碼就可以了。sleep 300代表300秒檢視一次,可以根據需要調整。
5.3.如果裝置A重新啟動了,則只需要重新配置裝置A即可。
相關推薦
linux通過ssh實現反向連線
1.問題描述: 有時,我們會想在區域網外訪問區域網內的機器。這時,我們可以使用SSH的反向連線來實現。 裝置A:位於區域網內,可以訪問代理伺服器B。 假設該裝置IP:A.A.A.A,使用者名稱user
Linux通過NFS實現檔案共享
在專案生產環境我們經常需要實現檔案共享,傳統的常見方案是通過NFS,實現伺服器之間共享某一塊磁碟,通過網路傳輸將分散的檔案集中儲存在一塊指定的共享磁碟,實現基本的檔案共享。實現這種方案,分服務端和客戶端,將服務端的磁碟mount到客戶端指定目錄下,在客戶端操作就像操作本地磁碟一樣,nfs基本的安裝如下: 模
MySQL通過Navicat實現遠端連線的過程 學習記錄
1.首先使用localhost登入到想要進行遠端連線的資料庫 2.開啟阿里雲伺服器上安裝的windows系統,以管理員許可權開啟命令提示視窗,輸入如下命令: mysql> grant all privileges on *.* to 'root'@'%' ident
MySQL通過Navicat實現遠端連線的過程
直接使用Navicat通過IP連線會報各種錯誤,例如:Error 1130: Host '192.168.1.80' is not allowed to connect to this MySQL server。 經過個人驗證,得到解決方法,如下: 授權法: 1.首先使用localhos
Linux通過ssh遠端安裝Python3.6.1安裝包
linux系統環境自帶python2.6,但有時我們專案使用的版本可能是3.x以上等等,此時我們需要在linux中再安裝專案所需的python版本,此時就涉及多版本共存問題了,很多同學在安裝多個版本Python時會遇到各種問題 這裡主要演示通過ssh遠端安裝安裝包 1
玩轉 docker 入門(4) docker 通過nginx實現反向代理 配置多域名以及多埠號
一、前言 這段時間一直在研究docker的部署及相關開發環境、生產環境的搭建。但最終技術的學習就是用來實際使用的,所以就想將單位中的機房逐步從單機安裝環境過渡到通過docker部署多個開發環境(生產環境)。二、需求 單位機房的IP有限,我們都是通過
linux shell ssh實現自動登入,並且執行一些操作並返回到當前主機
#!/usr/bin/expect -f #-------------------------------------------------- about us # product: monitorone # Author:matthew # Last Modified:
pgcli通過SSH本地轉發連線遠端伺服器上的PostgreSQL DB
遠端主機(10.64.1.129)需求: 1. 假設遠端主機打開了ssh埠 2. 啟動了PostgreSQL,且監聽埠為預設的5432 3. 遠端主機的postgreSQL DB只允許localhost訪問 本地主機(10.64.71.6)需求:
解決kali linux 開啟ssh服務後連線不上的問題
今天在手機端裝了NetHunter 想連線PC的kali ,可是怎麼都連不上 綜合網友的經驗: 1.修改sshd_config檔案,命令為:vi /etc/ssh/sshd_config 將#PasswordAuthentication no的註釋去掉,並且將no修改
Linux通過SSH訪問中文亂碼問題(以secureCRT為例)
一般國內的例如阿里雲等伺服器安裝的Linux系統都不用修改Linux伺服器檔案的,我們可以直接修改secureCRT設定支援 1.開啟secureCRT 2.點選Options-->Sessi
IntelliJ IDEA實現遠端連線linux,並上傳檔案到linux伺服器(SSH會話功能和SFTP功能)
注意: eclipse的SSH會話功能和SFTP功能這裡不會說 點選以下連結可檢視 eclipse的SSH會話功能和SFTP功能 而IntelliJ IDEA(以下簡稱為IDEA)這麼強大的開發工具自然也有該功能,這篇部落格就介紹一下IDEA的SSH會話功能
【Linux】使用Xshell通過ssh連線linux出現Connection closed by foreign host.提示
一般我們都會使用crt或xshell通過ssh協議去連線Linux伺服器進行操作,最近遇到了一個問題,在通過xshell連線linux伺服器過程中出現Connection closed by foreign host.中文:外部主機關閉連線好吧,雖然知道中文意思,但是感覺毫無卵用。隨後使
通過ssh轉發實現穩定連線海外伺服器
1、架構 2、說明 連線海外伺服器網路非常的不穩定,這裡我們通過某廠雲私有網路的對等連線及iptables來實現穩定連線海外伺服器。 3、實踐 首先在上海區域購買一個私有網路(vpc),然後劃分好網段,再購買一臺伺服器加入私有網路。同樣的在香港區域再購買一個私有網路(vpc),然後劃分好網段,再購
用secureCRT通過SSH連線你的Linux(本文基於Ubuntu 10.04)
相信現在有很多學習或者工作需要使用或者是用VPS主機的Linux的人吧..單純的工作學習可以直接硬碟上安裝一個比較適合的Linux系統,但是我們大多時候可能還是需要工作在Windows的平臺下(很多情況也是無奈啊),所以虛擬機器就成了我們使用Linux的最佳選擇。 這是又出
埠轉發:通過ssh連線家中路由器下的linux,通過mstsc連線家中路由器下的windows(一種teamviewer的替代方案)
實現原理 本質就是轉發訊息:兩個tcp連線,將一個tcp連線中讀到的訊息不經過任何處理直接寫到另一個tcp連線。 家裡的電腦先和公網電腦建立tcp連線,然後將公網上(ip, port)收到的訊息轉發到家中電腦的某埠上 通過mstsc遠端桌面連線
Windows通過SSH遠端連線Linux
這裡的”遠端”操控的方法實際上也不是真正的遠端.,這此操作方法主要是在一個區域網內遠端操控電腦 (在一個路由器下)。可以把它做成在網際網路中的遠端操控, 不過技術難度上加了一個等級, 如果你想是想人在公司, 卻要操控家裡的 Linux, 可以參考免費的軟體 (TeamView
一臺Linux電腦連線另一臺Linux(SSH實現linux之間的免密碼登陸)
首先檢視是否安裝ssh服務:systemctl status sshd.service 啟動服務:systemctl start sshd.service 重啟服務:systemctl restart sshd.service 開機自啟:systemctl
SSH反向連線及Autossh 實現外網訪問內網樹莓派
需要一臺vps伺服器,樹莓派連上vps,再通過vps來訪問樹莓派 1.在樹莓派上設定 sudo screen -S sshtest ssh -R 19999:localhost:22 你的vps使用者名稱@你vps的ip 意思:將vps上的19999埠與樹莓派的
mac/linux/centos通過 ssh [email protected]方式連線如何上傳檔案都阿里雲
目錄1、mac上傳檔案到Linux伺服器scp 檔名 使用者名稱@伺服器ip:目標路徑如:scp /Users/test/testFile [email protected]:/test/2、mac上傳資料夾到Linux伺服器,與上傳檔案相比多加了-rscp -r
通過ssh反向隧道及nginx反向代理實現外網控制內網nodemcu晶片
基本思路:通過ssh反向隧道實現外網伺服器埠到內網中繼伺服器埠的轉發,通過配置內網中級伺服器nginx反向代理,將外網發過來的請求轉發到目標伺服器上。最後實現通過訪問外網ip轉到訪問內網的目標伺服器。 (一)ssh反向隧道將外網伺服器埠轉發到內網中繼伺服器指定埠 (1)首