SSH的本地、遠程、動態埠轉發實驗筆記

来源:https://www.cnblogs.com/fengdejiyixx/archive/2019/06/25/11086645.html
-Advertisement-
Play Games

SSH埠轉發 SSH 會自動加密和解密所有 SSH 客戶端與服務端之間的網路數據。但是,SSH 還能夠將其他 TCP 埠的網路數據通過 SSH 鏈接來轉發,並且自動提供了相應的加密及解密服務。這一過程也被叫做“隧道”(tunneling),這是因為SSH 為其他 TCP 鏈接提供了一個安全的通道 ...


SSH埠轉發
  SSH 會自動加密和解密所有 SSH 客戶端與服務端之間的網路數據。但是,SSH 還能夠將其他 TCP 埠的網路數據通過 SSH 鏈接來轉發,並且自動提供了相應的加密及解密服務。這一過程也被叫做“隧道”(tunneling),這是因為SSH 為其他 TCP 鏈接提供了一個安全的通道來進行傳輸而得名。例如,Telnet,SMTP,LDAP 這些 TCP 應用均能夠從中得益,避免了用戶名,密碼以及隱私信息的明文傳輸。而與此同時,如果工作環境中的防火牆限制了一些網路埠的使用,但是允許 SSH 的連接,也能夠通過將 TCP 埠轉發來使用 SSH 進行通訊
SSH 埠轉發能夠提供兩大功能:
    加密 SSH Client 端至 SSH Server 端之間的通訊數據
    突破防火牆的限制完成一些之前無法建立的 TCP 連接
本地轉發:
    -L localport:remotehost:remotehostport sshserver
選項:
    -f 後臺啟用
    -N 不打開遠程shell,處於等待狀態
    -g 啟用網關功能

實驗1:本地埠轉發

ssh埠轉發:遠程到99.120上的23埠

用ssh加密的協議封裝其他的不加密協議telnet,從而實現安全傳輸

實驗圖:

 hostA:  IP:292.168.199.190

 hostB:  192.168.99.20

 hostC:  192.168.99.120 (telnet服務端)

 實現過程:先再A和B之間利用ssh協議連接,創建一個隧道,裡面走的是telnet,因為ssh協議是加密的,把telnet封裝在其內部,在到達內網B主機時會自動的解封裝在由B主機轉發到主機C上

從而實現了加密連接通訊

實驗步驟:①開啟本地一個埠9527,先和主機里建立一個隧道連接

 ②在B主機上查看連接情況,此時通道已經建立好了

 

③在服務端查看一下23埠是否被連接,此時沒有被任何人連接

 

④這時就可以使用telnet 連接本地的9527埠通過隧道的連接間接的訪問服務端了

 

在服務端查看一下埠連接情況:此時是被B主機連接,實際上是A主機正在訪問,下麵看一下B主機狀態

此時在主機B上查看一下埠連接情況,如圖:此時B主機有兩個角色:1、對於A主機來說它是A主機ssh的服務端   2、對於C主機telnet服務端來說它是telnet的客戶端

 

 

實驗2:ssh遠程埠轉發

 

遠程轉發:
  主要命令:   -R   sshserverport:remotehost:remotehostport   sshserver
  因在公司里都有防火牆,規則一般都是不允許從外面主動發起請求,所以現在ssh client和server端角色互換以實現
  實驗過程: 讓sshsrv偵聽9527埠的訪問,如有訪問,就加密後通過ssh服務轉發請求到本機ssh客戶端,再由本機解密後轉發到telnetsrv:23

實驗圖:

 實驗步驟:①在主機B時主動發起ssh請求到A主機建立隧道的連接,連接狀態如下圖:

 

 ②此時隧道連接已經建立了,回到主機A上查看一下連接情況:

 ③在主機A上發起telnet請求,如圖,此時已經telnet到遠程服務端了

 

④在主機C服務端和主機B上查看鏈接情況

主機C:服務端,此時23埠也是被主機B連接,實際上是A主機在連接

主機B:此時也是兩種角色,一個是ssh的客戶端,另一個是telnet的客戶端

 

 

 實驗3:動態埠轉發

實驗圖:

主機A(客戶端) IP:192.168.99.190

主機B(跳板機、代理機) IP:192.168.99.20

主機C(web服務端) IP:192.168.99.120

 

 實驗過程:因防火牆的原因國內的主機不能直接訪問國外的一些網站,所以我們只能通過一些代理的伺服器,如亞馬遜雲主機等(這裡指主機B)間接的去訪問這些網站,

實驗步驟:

  ①為了模擬真實一些,這裡在主機C服務端配置一條防火牆策略,禁止主機A直接訪問

  ②  A主機加策略之前是可以訪問的,再次訪問就被拒絕了

 

但是主機B不受影響,可以正常服務C的網頁

 ③在A主機開一個埠通過ssh協議連接到B主機,

 

在B主機查看埠連接

④ 訪問服務端: 通過建立的連接,在本機訪問9527埠即可以通過隧道連接通過代理主機B去訪問服務端(命令行使用代理訪問如下),圖形界面需要在web瀏覽器配置里設置代理伺服器的ip後再進行訪問,如圖

 

瀏覽器的配置:

 

 這樣我們就可以訪問國外的一些網站了,是不是so easy呢!

以上實驗為本人實驗筆記記錄,如果有錯誤歡迎指出

 

 

如果對你有幫助的話就給小編點個贊吧 ,非常感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上面的是父類,然後子類實現父類的構造函數,另外建一個類起名為SocketServer,繼承上一個類SocketHelper(此時SocketHelper為父類): OK,這樣就是子類繼承父類的構造函數 子類繼承父類的時候,其基類的構造函數,子類也要必須實現,不然會報錯 ...
  • 本文介紹“ 為ASP.NET Web API生成TypeScript客戶端API ”,重點介紹Angular 2+代碼示例和各自的SDLC。如果您正在開發.NET Core Web API後端,則可能需要閱讀為ASP.NET Core Web API生成C#Client API。 背景 自WebAp ...
  • 自從C#5.0增加非同步編程之後,非同步編程越來越簡單,async和await用的地方越來越多,越來越好用,只要用非同步的地方都是一連串的非同步,如果想要非同步編程的時候,需要從底層開始編寫,這樣後邊使用的時候就是非同步,那麼底層是如何實現??我們如何編寫高效率的非同步方法?? #瞭解基於任務的非同步模式(TAP) ...
  • Web Api之Cors跨域 要想跨域需要準備一下幾步驟 1.創建WebAPI(請按照圖片先後順序來) 2.進入NuGet包管理搜 Microsoft.AspNet.WebApi.Cors 進行下載 3.修改APP_Start中的 WebApiConfig文件 這裡時配置路由的地方,我們需要進行修改 ...
  • 線程的基本操作線程的基本操作包括:創建線程、暫停線程、線程等待、終止線程。 工作原理在Main方法外定義了方法FristPrintNumbers、SecondPrintNumbers,該方法會被主程式和向創建的兩個線程Thread1、Thread2使用。創建完成線程後,使用Start方法啟動線程,使 ...
  • 由於各種各樣的問題,依照官方文檔運行eShopOnContainers項目遇到了好多莫名其妙的錯誤。 好在最後都解決了,在此記錄,以防自己以後再遇到,也為遇到同樣問題的同學提供參考。 參考的官方文檔 問題1:在命令行中運行時,運行命令“Docker-compose build”時,由於網速問題,鏡像 ...
  • 問題: vs2017添加引用出錯:對COM組件的調用返回了錯誤HRESULT E_FAIL 解決方案:按圖一步步操作即可 1.輸入CMD 找到2017的開發人員命令提示符 2.以管理員身份運行(此步驟不選會導致許可權不夠等問題) 3.進入到管理員許可權下的 2017開發人員命令提示符 4.輸入你2017 ...
  • Windows 服務允許用戶創建可在其自身的 Windows 會話中長時間運行的可執行應用程式。 這些服務可在電腦啟動時自動啟動,可以暫停和重啟,並且不顯示任何用戶界面。 這些功能使服務非常適合在伺服器上使用,或者需要長時間運行的功能(不會影響在同一臺電腦上工作的其他用戶)。 服務的生存期 首先 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...