藉助公有云伺服器內網穿牆ssh訪問內網伺服器
做內網需要用的Linux伺服器(A)ubuntu系統,只分配了內網IP,可以連線外網(通過手機熱點wifi或者有線網口),沒有辦法設定路由器。
A的使用者名稱:nameA@192.168.109.11,
現在用家裡的電腦C通過ssh連線到A上,當然有TeamViewer,向日葵等桌面連線軟體,但傳輸畫面比較卡,故想ssh連線。網路上有花生殼、net123等提供穿牆服務,可以實現ssh,但都比較貴。
自己在騰訊雲上申請了虛擬伺服器B,A、C可以通過B直接實現訪問。具體過程如下:
step1:申請騰訊雲伺服器 https://cloud.tencent.com/act/seckill?from=13338
買了一個99元一年的虛擬伺服器。
使用者名稱 ubuntu,埠22,IP:123.123.123.123,密碼
在個人電腦C上可以通過ssh終端實現訪問
ssh -p 22 ubuntu@123.123.123.123
step2:配置雲伺服器B,使其埠訪問開放
1>.修改B伺服器的sshd設定 #vi /etc/ssh/sshd_config
2>把GatewayPorts開啟(去掉前面的#號註釋): GatewayPorts yes
3>存檔後退出,並重新啟動sshd ,#service sshd restart
step3: 配置內網伺服器A,建立A到B的ssh方向代理,使用autossh實現更好,在A上操作,參考https://www.cnblogs.com/kwongtai/p/6903420.html
建立A機器到B機器的反向代理,具體指令為
1>安裝autossh, sudo apt install autossh
2>B到A的ssh代理命令,需要輸入
autossh -M 7291 -fCNR 7290:localhost:22 ubuntu@123.123.123.123
autossh
的引數與ssh的引數是一致的,但是不同的是,在隧道斷開的時候,autossh會自動重新連線而ssh不會。另外不同的是我們需要指出的-M引數,這個引數指定一個埠,這個埠是外網的B機器用來接收內網A機器的資訊,如果隧道不正常而返回給A機器讓他實現重新連線。
step4:建立從B到A的ssh正向代理,在B上操作
建立B機器的正向代理,用來做轉發,具體指令為
ssh -fCNL [A機器IP或省略]:[A機器埠]:[B機器的IP]:[B機器埠] [登陸B機器的使用者名稱@B機器的IP]
這裡的B機器的埠和上面的B機器的埠是一致的,埠1234的也是B機器的。
ssh -fCNL *:1234:localhost:7290 localhost
在B伺服器上嘗試以下命令:netstat -a |grep 7290,如果有返回如下介面,則證明成功
在B伺服器上,執行以下命令,則能ssh訪問A伺服器 ,1234 為B上的埠,轉發到A的7290
ssh -p 1234 nameA@123.123.123.123 ,輸入nameA在內網的密碼
step5:個人電腦C測試
完成之後就可以,實現在通過雲伺服器埠1234,對映到內網伺服器的埠7290。
在個人電腦C上執行以下命令,
ssh -p 1234 A的使用者名稱@B的公網IP地址。即
ssh -p 1234 nameA@123.123.123.123,輸入nameA的密碼
step6:內網伺服器A免密登入
建立A到B的反向代理時需要輸入密碼,為此,要建立A到B的免密碼ssh訪問。
1>在A操作,在A上生成金鑰檔案, ssh
-keygen -t rsa
將會生成金鑰檔案和私鑰檔案 id_rsa,id_rsa.pub(如果用dsa則生成id_dsa,id_dsa.pub)
生成位置在/home/user/.ssh/資料夾下(我用的是user使用者所以在root下,生成過程會有提示檔案位置),.ssh 是隱藏資料夾 使用 ls -a檢視
2>在A操作,將公鑰放到伺服器指定位置
將公鑰複製到雲伺服器B的root使用者下的.ssh資料夾(用哪個使用者登入就複製到哪個使用者下的.ssh資料夾下)
scp
/home/user/
.
ssh
/id_rsa
.pub ubuntu@123.123.123.123:
/home/ubuntu/
.
ssh
/
3>
在B操作,安裝公鑰
登入到雲伺服器B上 cd /home/ubuntu/.ssh/
cat
id_rsa.pub >> authorized_keys
step7:實現內網伺服器A開機自啟反向代理。
1>要在內網伺服器A開機自啟執行如下命令:autossh -M 7291 -fCNR 7290:localhost:22 ubuntu@123.123.123.123
A的系統是ubuntu18.04,為此,要新建/etc/rc.local,參考:
https://blog.csdn.net/wuspeng/article/details/108462529
第一步:sudo vi /lib/systemd/system/rc.local.service, 文字末端新增以下內容
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
第二步:ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/rc.local.service
第三步:sudo chmod 0755 /etc/rc.local
第四步:sudo vi /etc/rc.local,新增需要的開啟執行的命令/或指令碼
autossh -M 7291 -fCNR 7290:localhost:22 ubuntu@123.123.123.123
2>使內網伺服器A的root使用者能後無密碼訪問,copy user下面相關金鑰檔案到root下面
參考https://blog.csdn.net/xiao_huocai/article/details/103192258
cp /home/user/.ssh/id_rsa.pub /root/.ssh/id_rsa.pub
cp /home/user/.ssh/id_rsa /root/.ssh/id_rsa
step8:重啟內容內網伺服器A
ps aux |grep autossh ,看是否自動反向ssh到B
在個人電腦C上,連線A
ssh -p 1234 nameA@123.123.123.123,,輸入nameA的密碼,成功。
相關文章
- [ssh訪問內網伺服器]使用Natapp來進行內網埠轉發內網伺服器APP
- 如何外網訪問內網svn 網雲穿內網穿透教你簡單實現內網穿透
- 原生微信網頁授權登入(藉助natapp穿牆)網頁APP
- Holer實現外網ssh訪問內網Docker容器內網Docker
- Holer實現外網ssh訪問內網linux內網Linux
- 使用網雲穿「內網穿透」實現外網訪問內網瑞友天翼等軟體內網穿透
- 配置防火牆允許從外網訪問內網oracle防火牆內網Oracle
- linux 防火牆(firewall)轉發實現外網伺服器通過中間伺服器訪問內網資料庫Linux防火牆伺服器內網資料庫
- 使用frp進行內網穿透,實現ssh遠端訪問Linux伺服器FRP內網穿透Linux伺服器
- 【內網穿透伺服器】公網環境訪問內網伺服器(以使用samba(smb)檔案共享服務為例)內網穿透伺服器Samba
- 使用ssh隧道穿透NAT訪問內網主機穿透內網
- linux 利用防火牆(firewall)轉發實現外網伺服器透過中間伺服器訪問內網資料庫Linux防火牆伺服器內網資料庫
- 為什麼國內網站訪問慢【香港伺服器】?內網網站伺服器
- 使用Holer外網SSH訪問內網/區域網Linux系統內網Linux
- 外網訪問內網LINUX內網Linux
- 訪問 laradock 伺服器內部 http 伺服器伺服器HTTP
- 群暉 / 貓盤等私有 NAS 使用網穿雲進行內網穿透訪問教程內網穿透
- 網雲穿內網穿透乾貨教程內網穿透
- 如何從公網訪問內網Django內網Django
- 零信任內網安全訪問內網
- 怎麼伺服器組內網?伺服器內網
- 伺服器內網和外網的區別伺服器內網
- 免費內網穿透方案 實現外網訪問內網群暉/NAS內網穿透
- Holer實現外網訪問內網NodeJS內網NodeJS
- 內網模組放開外網訪問和 cdn內網
- 利用內網穿透 實現外網訪問內網 MySQL等資料庫教程內網穿透MySql資料庫
- 內網穿透(mac,window,linux通用)1分鐘實現外網訪問電腦本地伺服器內網穿透MacLinux伺服器
- nginx對訪問路徑進行限制【部分介面可以內外網訪問、剩餘介面只可以內網訪問】Nginx內網
- 用 IPTABLES 的埠轉發功能實現訪問位於內網的 MySQL 伺服器內網MySql伺服器
- 雲防火牆如何玩轉公有云引流防火牆
- Frp內網穿透搭建,家庭主機對外提供介面,支援ssh訪問FRP內網穿透
- 區域網內部的機器如何透過閘道器(或代理伺服器)訪問遠端外網的ejb伺服器伺服器
- 免費內網穿透工具;樹莓派利用網雲穿實現建站與維護,無需伺服器內網穿透樹莓派伺服器
- TCP實現公網伺服器和內網客戶端一對多訪問(C語言實現)TCP伺服器內網客戶端C語言
- 內網滲透-防火牆資訊內網防火牆
- 如何從外網訪問內網Linux系統?內網Linux
- 如何從公網訪問內網MongoDB資料庫內網MongoDB資料庫
- 伺服器組建內網有和作用伺服器內網