反向ssh代理遠(yuǎn)程訪問處于內(nèi)網(wǎng)的電腦

本文來自我的網(wǎng)站-跨時代的jay

本文介紹一種遠(yuǎn)程訪問本地電腦的一種方法

利用ssh反向代理

以一臺處于公網(wǎng)的服務(wù)器作為媒介

從公網(wǎng)服務(wù)器上實現(xiàn)遠(yuǎn)程訪問處于局域網(wǎng)的本地電腦

應(yīng)用場景

訪問處于局域網(wǎng)下的本地電腦

我們知道

本地電腦沒有公網(wǎng)ip

無法實現(xiàn)遠(yuǎn)程訪問

但在同一局域網(wǎng)下

是可以訪問的

但是這樣局限性比較大

當(dāng)你出門在外卻想要訪問處在寢室的本地電腦時

這時如果該怎么辦

實現(xiàn)遠(yuǎn)程訪問

要求

有一臺處于公網(wǎng)的服務(wù)器

作用:訪問本地電腦的媒介

配置

在處于局域網(wǎng)下的本機電腦執(zhí)行命令

建議在root用戶下

$ ssh -NCfR 1111:localhost:22 username@IP -p 22

解釋

-f 在后臺執(zhí)行

-N 不實際連接而是做port forwarding

-R 做反向ssh

將公網(wǎng)服務(wù)器A的1111端口映射成連接內(nèi)網(wǎng)服務(wù)器與該公網(wǎng)服務(wù)器的反向ssh的端口22。

username是你登錄公網(wǎng)服務(wù)器的用戶名,IP為服務(wù)器的公網(wǎng)ip

然后輸入登錄服務(wù)器A的密碼即可

修改公網(wǎng)機器A的SSH配置文件/etc/ssh/sshd_config

添加

GatewayPorts yes

這樣可以把監(jiān)聽的端口綁定到任意IP 0.0.0.0上

否則只有本機127.0.0.1可以訪問

服務(wù)器開啟對應(yīng)端口的防火墻

使用端口1111去映射本地端口22

那么服務(wù)器的端口1111肯定是要開啟的

初步遠(yuǎn)程登錄

首先在任何一臺機器上登錄公網(wǎng)服務(wù)器

windows上同樣可以使用 cmd登錄

$ ssh root@公網(wǎng)ip
$ ssh  本地登錄用戶名@localhost -p 1111

這個端口號可以隨意設(shè)置

不要和其他一些默認(rèn)的端口號一樣就可以

問題

每次登錄都需要密碼

可以創(chuàng)建密匙

實現(xiàn)ssl免密登錄

ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
#-t 指定類型,-f指定文件生成路徑,-P指定文件密碼(''表示無密碼)
ssh-copy-id -i .ssh/id_rsa.pub username@IP
# 這里的username為公網(wǎng)服務(wù)器的登錄名

這種反向代理不穩(wěn)定

使用autossh建立穩(wěn)定隧道

注意:此前提是可以本地可以免密登錄服務(wù)器

$  apt-get install autossh
# 我的本機是ubuntu
# 如果是centos 
#使用命令 $ yum install autossh
$ autossh -M 8888 -NCfR 1111:localhost:22 -o ServerAliveInterval=60 公網(wǎng)服務(wù)器登錄名@公網(wǎng)ip -p 22

有可能長時間沒有操作

會斷開

用autossh 自動重連

我們用一個端口8888去監(jiān)聽

并且用-o ServerAliveInterval=60

每隔60秒去操作一下(比較接地氣的說法)

每次開機后都要重新輸入命令

可以寫一個腳本

開機自啟

這樣就比較完美了

我的微信公眾號:跨時代的jay

關(guān)注我哦,定時推送知識

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容