1. 程式人生 > >從外網 SSH 進區域網,反向代理+正向代理解決方案

從外網 SSH 進區域網,反向代理+正向代理解決方案

ssh -f -N -D 127.0.0.1:1080 [email protected] -p 22

ssh -CNfg -L 1081:localhost:1080 [email protected]

轉:https://segmentfault.com/a/1190000002718360

相信很多同學都會碰到這樣一個問題。在實驗室有一臺機器用於日常工作,當我回家了或者回宿舍之後因為沒法進入內網,所以訪問不到了。如果這個時候我需要 SSH 進去做一下工作,那麼怎麼解決這個問題呢?本文將給出一種使用 SSH 的代理功能的解決方案。

問題描述:

機器狀況

機器號 IP 使用者名稱 備註
A 192.168.0.A usr_a 目標伺服器,在區域網中,可以訪問 A
B B.B.B.B usr_b 代理伺服器,在外網中,無法訪問 A
C - - 可以直接訪問 B,無法直接訪問 A

目標

從 C 機器使用 SSH 訪問 A

解決方案

在 A 機器上做到 B 機器的反向代理;在 B 機器上做正向代理本地埠轉發

環境需求

  • 每臺機器上都需要 SSH 客戶端
  • A、B 兩臺機器上需要 SSH 伺服器端。通常是 openssh-server。

    在 Ubuntu 上安裝過程為

    sudo apt-get install openssl-server
    

實施步驟

  1. 建立 A 機器到 B 機器的反向代理【A 機器上操作】

    ssh -fCNR <port_b1>:localhost:22 [email protected]
    

    <port_b1> 為 B 機器上埠,用來與 A 機器上的22埠繫結。

  2. 建立 B 機器上的正向代理,用作本地轉發。做這一步是因為繫結後的 埠只支援本地訪問【B 機器上操作】

    ssh -fCNL "*:<port_b2>:localhost:<port_b1>' localhost
    

    <port_b2> 為本地轉發埠,用以和外網通訊,並將資料轉發到 <port_b1>,實現可以從其他機器訪問。

    其中的*表示接受來自任意機器的訪問。

  3. 現在在 C 機器上可以通過 B 機器 ssh 到 A 機器

    ssh -p <portb2> [email protected]
    

至此方案完成。

附:

SSH 引數解釋

-f 後臺執行
-C 允許壓縮資料
-N 不執行任何命令
-R 將埠繫結到遠端伺服器,反向代理
-L 將埠繫結到本地客戶端,正向代理

相關推薦

SSH 區域網反向代理+正向代理解決方案

ssh -f -N -D 127.0.0.1:1080 [email protected] -p 22 ssh -CNfg -L 1081:localhost:1080 [email protected] 轉:https://segmentfault.

利用ssh反向代理以及autossh實現連接內服務器

作用 鏈接 沒有 AI tail oca 麻煩 版本 正向代理   1. 描述一下目前的機器狀況,梳理梳理:    機器 IP 用戶名 備註    A 10.21.32.106 gdut728 目標服務器,處於內網    B 123.123.123.123 root 外網服

利用反向SSH訪問內伺服器

學院的伺服器在學院的內網,出了學院就不能訪問,在宿舍、家裡學習很不方便沒有伺服器的話。之前一直用TeamViewer,但是用著不舒服。最近新找到一個辦法,就是利用外網伺服器以及反向SSH搭一條通道,使

利用ssh反向代理以及autossh實現連線內伺服器

前言 最近遇到這樣一個問題,我在實驗室架設了一臺伺服器,給師弟或者小夥伴練習Linux用,然後平時在實驗室這邊直接連線是沒有問題的,都是內網嘛。但是回到宿舍問題出來了,使用校園網的童鞋還是能連線上,使用外網的小土豪就沒有辦法進入內網。這時能不能有一個辦法可以使得通過外

如何訪問區域網內Linux系統?

內網主機上安裝了Linux系統,只能在區域網內訪問到,怎樣從外網也能訪問到內網的Linux系統呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 啟動Linux系統 預設Linux系統ssh埠是22。 2. 實現步驟 2.1 下載並解壓holer軟體包 Holer

怎樣訪問區域網網站

外網訪問內網網站 本地搭建了網站,只能在區域網內訪問,怎樣從外網也能訪問本地網站? 本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝並啟動網站服務端 預設搭建的網站服務端埠是80。 2. 實現步驟 2.1 下載並解壓holer軟體包 Holer軟體包:holer-xxx.tar.gz

通過內穿透實現訪問Tomcat區域網伺服器

這幾天正在做一個小專案,專案需要搭建本地伺服器並且外網可以訪問到伺服器指定的檔案,這只是專案的開端,想發篇部落格記分享一下。由於我的網路是校園網所以必須要進行內網穿透,這樣外網才能訪問區域網主機。好的,那麼讓我來說一下具體的實現流程哈。主要軟體Tomcat7,Sun-Ngro

ubuntu下搭建vsftpd實現訪問到內ftp伺服器

sudo apt install openssh-server可以先安裝一下ssh服務,以後可以用winscp傳送資料。 情景 @1 先安裝vsftpd。網上有教程可找。可以參考如下: http://www.linuxidc.com/Linux/2016-12/138563

服務器能遠程連接絡連接正常但是域名Ping不通瀏覽器中打不開網站

CP BE 網站 打不開 屬性 地址 dns設置 本地 否則   服務器能遠程連接成功,但在瀏覽器中打不開任何網站,出現這個問題一般是安裝什麽軟件引起IE的相關設置做了變動或者是服務器中了病毒引起的,或是服務器的DNS設置是錯誤的。    一、先檢查服務器DNS是否正確  

訪問使用Padavan固件的路由器(花生殼DDNS配置教程)

.html htm 標簽頁 保留 pad 外網 配置教程 blank 由器 家裏有個使用老毛子固件(Padavan)的路由器。為了能在公司也能訪問到路由器,或者家裏的電腦,就需要給路由器配置個動態域名解析 (DDNS)。具體操作步驟如下。 1,申請動態域名 這裏我使用的

阿里雲無法訪問某埠-埠被禁止訪問

一、新購買的阿里雲伺服器,配置好後,localhost是可以正常訪問專案的,但是無法從外網訪問,這就說明埠被禁止訪問了。解決此問題的方法如下: 1、登入阿里雲的管理控制檯,找到例項: 2、在例項右邊的操作選項裡,選擇“更多”,選擇“安全組配置”: 3、進入“安全組配置”後,點

怎樣訪問內Nginx?

本地安裝了一個Nginx,只能在區域網內訪問,怎樣從外網也能訪問到本地的Nginx呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝並啟動Nginx 預設安裝的Nginx埠是80。 實現步驟 下載並解壓holer軟體包 Holer軟體包:holer-xxx.tar.gz Holer支援各

如何訪問本地的php-fpm?

本地安裝了一個php-fpm,只能在區域網內訪問,怎樣從外網也能訪問到本地的php-fpm呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝Java 1.7及以上版本 執行命令java -version檢查Java安裝和配置是否正確。 1.2 安裝並啟動php-fp

如何訪問本地的Zeus?

本地安裝了一個Zeus,只能在區域網內訪問,怎樣從外網也能訪問到本地的Zeus呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝Java 1.7及以上版本 執行命令java -version檢查Java安裝和配置是否正確。 1.2 安裝並啟動Zeus 預設安裝的

如何訪問本地的Node.js?

本地安裝了一個Node.js,只能在區域網內訪問,怎樣從外網也能訪問到本地的Node.js呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝Java 1.7及以上版本 執行命令java -version檢查Java安裝和配置是否正確。 1.2 安裝並啟動Node.j

如何訪問本地的Oracle資料庫

本地安裝了一個Oracle資料庫,只能在區域網內訪問到,怎樣從外網也能訪問到本地的Oracle資料庫呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝Java 1.7及以上版本 執行命令java -version檢查Java安裝和配置是否正確。 1.2 安裝並啟動O

如何訪問本地的Nginx

本地安裝了一個Nginx,只能在區域網內訪問,怎樣從外網也能訪問到本地的Nginx呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝Java 1.7及以上版本 執行命令java -version檢查Java安裝和配置是否正確。 1.2 安裝並啟動Nginx 2.

如何訪問本地的WebSphere

本地安裝了一個WebSphere,只能在區域網內訪問,怎樣從外網也能訪問到本地的WebSphere呢?本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝Java 1.7及以上版本 執行命令java -version檢查Java安裝和配置是否正確。 1.2 安裝並啟動WebSph

如何訪問本地的資料庫

本地安裝了一個數據庫,只能在區域網內訪問到,怎樣從外網也能訪問到本地的資料庫呢?本文以MySQL資料庫為例,將介紹具體的實現步驟,其方法適用於任何資料庫系統。 1. 準備工作 1.1 安裝Java 1.7及以上版本 執行命令java -version檢查Java安裝和配置是否正確。

怎樣訪問內php-fpm?

acc cal 選擇 dem org inter 127.0.0.1 code address 本地安裝了一個php-fpm,只能在局域網內訪問,怎樣從外網也能訪問到本地的php-fpm呢?本文將介紹具體的實現步驟。 準備工作 安裝並啟動php-fpm 默認安裝的php-f