三條命令助你快速實現 SSH 內網穿透
導讀 | 最近小白在遠端操作一個私有化的專案時正好用到了這個,簡單總結了下便有了此文章。 |
ssh 反向隧道相信大多數同學都比較瞭解,就算不了解也一定在日常工作中聽說過,其實拋開那些專業的術語,通常我們藉助 ssh 的反向隧道來實現兩個網路隔離的主機間通訊。最近小白在遠端操作一個私有化的專案時正好用到了這個,簡單總結了下便有了此文章。
在操作之前,我先將需要的資源列出一個表格,大家在操作前可以先按照如下準備資源:
這裡為了操作方便機器全部用的 root 賬號,大家不要學我
我的需求很簡單,即客戶內網 B 中有一批剛裝完作業系統的伺服器,我需要在公司或者家中的電腦上透過 Ansible Playbook 批次對這些機器進行初始化。
在位於公網伺服器上開啟 sshd 的GatewayPorts開關,並重啟sshd
sed -i "s/#GatewayPorts no/GatewayPorts yes/g" /etc/ssh/sshd_config systemctl restart ssh
開啟代理功能意味著,當我們在建立 ssh 反向隧道後,監聽的地址會從預設的 127.0.0.1更換成 0.0.0.0,方便 ssh 客戶端遠端登入。
在客戶內網B中找一臺能訪問 121.41.218.68 地址的伺服器,登入上去,並在終端內執行下述 :
ssh -lroot -p22 -qngfNTR 8822:localhost:22 121.41.218.68 -o ServerAliveInterval=10
這一步的關鍵資訊其實就是在主機 B 和主機 A 之間建立一條 SSH 隧道,隧道埠的對映關係是主機B:22 <--> 主機A:8822
之所以加上 ServerAliveInterval=10,是讓客戶端每 10s 傳送一個心跳保持隧道的連結,否則這條連線很容易被重置。
目前有了 ssh 的隧道也只能滿足我本地主機 C 能透過 121.41.218.68 的 8822 埠 ssh登入到客戶內網的 B 主機,還不能滿足我進行批次執行任務的需求。
此時,我們就需要在自己電腦上配置 ssh 客戶端的 socket 代理來滿足需求,配置位於~/.ssh/config
host hosta HostName 121.41.218.68 Port 8822 User root host 10.155.0.* User root Port 22 ProxyCommand ssh hosta -W %h:%p
至此,我就可以在本地用 ansible-playbook 無縫的進行操作了。
上述 3 步是整個 ssh 內網穿透的核心流程,如果要做得更加的優雅的話,我們還需要考慮幾點最佳化:
- 為三臺機器上的 ssh 客戶端分別配置公私鑰
- 為主機 B 上的 ssh 方向隧道建立服務程式,避免重啟後隧道丟失
- 儘量保證公網主機 A 的網路安全,可單獨為隧道埠配置防火牆策略
當然,ssh 反向隧道除了能代理 ssh 服務外,它也能對內網的其他服務做 socket 轉發,這裡本文就不再展開。總之,建立 SSH 反向隧道這種事情大多數情況都是迫於無奈的臨時選擇,我們在用完後要及時釋放連線,避免長期閒置被不法分子盯上後帶來的損失。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2916281/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- "ssh 反向隧道 實現內網穿透內網穿透
- 5 分鐘,使用內網穿透快速實現遠端桌面內網穿透
- frp 實現內網穿透FRP內網穿透
- 內網穿透管家婆,免費快速實現外網訪問內網穿透
- 配置 frp 實現內網穿透FRP內網穿透
- 使用frp實現內網穿透FRP內網穿透
- 使用SSH反向隧道進行內網穿透內網穿透
- 內網穿透—使用 frp 實現內外網互通內網穿透FRP
- frp 實現內網穿透(Windows 版)FRP內網穿透Windows
- 如何使用 frp 實現內網穿透FRP內網穿透
- 使用ssh隧道穿透NAT訪問內網主機穿透內網
- 基於Yarp實現內網http穿透內網HTTP穿透
- 用natapp簡單實現內網穿透APP內網穿透
- 使用花生殼服務實現內網穿透內網穿透
- NATAPP實現內網穿透簡易教程APP內網穿透
- 「內網穿透伺服器」穿透80埠 實現對外釋出網站內網穿透伺服器網站
- 使用frp進行內網穿透,實現ssh遠端訪問Linux伺服器FRP內網穿透Linux伺服器
- 使用 PHP 實現的的內網穿透工具 “Spike”PHP內網穿透
- 通過NATAPP技術實現內網穿透APP內網穿透
- [ Docker ] 部署 nps 和 npc 實現內網穿透Docker內網穿透
- 內網穿透內網穿透
- 免費內網穿透方案 實現外網訪問內網群暉/NAS內網穿透
- 【遠端辦公】5分鐘實現內網穿透內網穿透
- 如何使用natapp來實現內網穿透及案例APP內網穿透
- frp實現內網穿透--支援80埠訪問FRP內網穿透
- frp實現基於反向代理的內網穿透FRP內網穿透
- 利用內網穿透 實現外網訪問內網 MySQL等資料庫教程內網穿透MySql資料庫
- 如何外網訪問內網svn 網雲穿內網穿透教你簡單實現內網穿透
- 公網Linux環境搭建frp實現內網穿透LinuxFRP內網穿透
- Holer實現外網ssh訪問內網Docker容器內網Docker
- Holer實現外網ssh訪問內網linux內網Linux
- 內網穿透的作用 免費內網穿透有哪些?內網穿透
- ngrok 內網穿透內網穿透
- 內網穿透指南內網穿透
- 內網穿透教程,簡單,便捷,極速穿透內網埠內網穿透
- 什麼是內網穿透?為什麼使用內網穿透?內網穿透
- 使用電信光貓加路由器實現內網穿透,外網訪問內網路由器內網穿透
- 用網雲穿在 N1 盒子上實現 Openwrt 的內網穿透內網穿透