【windows10】基于SSH反向隧道公網ip端口實現遠程桌面

【windows10】基于SSH反向隧道公網ip端口實現遠程桌面

  • 1.背景
  • 2.SSH反向隧道
  • 3.遠程連接電腦

1.背景

?Windows 10遠程桌面協議的簡稱是RDP(Remote Desktop Protocol)?。
RDP是一種網絡協議,允許用戶遠程訪問和操作另一臺計算機。
遠程桌面功能僅適用于Windows 10專業版和企業版,家庭版無此功能!
目前遠程桌面是一款Windows10提供的內置遠程工具,未來windows11可能會移除!
遠程桌面旨在連接的兩臺可以ping連接的計算機(同一局域網內,或者通過公網ip端口映射)

博主的操作系統windows10 專業版
如果在同一局域網您是可以ping通對方的windows系統的ip地址,正好對方計算機有遠程桌面功能(家庭版沒有),并且啟用遠程桌面。那么您此時通過該IP地址就可以遠程對方電腦!
然后您可以通過遠程桌面進行文件傳輸或提供遠程技術支持。

特別要注意,需要關注防火墻是否允許遠程桌面通過!
在Win10的遠程桌面設置中,防火墻的配置是一個關鍵因素。忽略了防火墻設置,可能導致無法成功建立遠程桌面連接。請按照以下步驟進行操作。
步驟1. 在搜索框中輸入“允許應用通過Windows防火墻”,然后打開相關設置。
步驟2. 確保“遠程桌面”已經被允許通過Windows防火墻。如果沒有,請點擊右上角的“更改設置”選項,勾選“遠程桌面”,然后點擊“確定”。
在這里插入圖片描述
以上場景相信大家都用的很熟悉!
那么問題來了,兩臺windows10電腦在各自局域網,都可以上網,如何通過windows10遠程工具遠程?
這在工作中也是常見的,目前大家比較常見的解決辦法是使用第三方遠程控制軟件:
TeamViewer、AnyDesk、一鍵遠控、rustdesk等。

其實有很多方法,本博主介紹SSH反向隧道實現遠程桌面的訪問。
SSH反向隧道允許內網設備主動連接到公網服務器,從而繞過防火墻或NAT的限制,建立一條從外網訪問內網的通道。
通過ssh的實現如下:
通過SSH的-R參數,可以將內網機器的端口轉發到公網服務器的某個端口,這樣外部的請求可以通過公網服務器的端口訪問到內網服務。例如將內網服務器A的22端口轉發到公網服務器B的8888端口,然后通過B的端口訪問A。即反向隧道可以實現遠程訪問。
普通的SSH連接可能會因為超時斷開。autossh能夠自動重新連接,確保隧道持久。為了更好的效果您可以安裝autossh,并指定監控端口來檢測連接狀態,這有助于維持穩定性。

2.SSH反向隧道

SSH(Secure Shell)可以實現兩臺不同局域網中的Windows 10電腦進行遠程連接!
SSH反向隧道可以實現從公網訪問內網設備(如家庭或公司內網的計算機),尤其適用于設備位于防火墻或NAT后的場景。以下是具體實現原理、步驟及注意事項:

2.1 SSH反向隧道的核心原理
SSH反向隧道通過讓內網設備主動連接到公網服務器(如云主機),建立一條反向通道,將內網服務的端口映射到公網服務器的指定端口,從而實現外網用戶通過公網服務器訪問內網服務。其核心命令為 ssh -R,具體流程如下:
第1,內網設備A主動連接公網服務器B,建立反向隧道。
第2,公網服務器B監聽指定端口,并將流量轉發到內網設備A的本地服務端口(如SSH的22端口、遠程桌面的3389端口)。
第3,外網用戶通過訪問公網服務器B的映射端口,間接訪問內網設備A的服務。

2.2 實現遠程訪問的步驟

第1. 公網服務器B的配置
A. 修改SSH配置:

在B的/etc/ssh/sshd_config中啟用GatewayPorts yes
即允許外部訪問轉發端口如果修改了配置,重啟SSH服務:
sudo systemctl restart ssh檢查SSH服務狀態:
sudo systemctl status ssh
.如果返回類似“active (running)”,說明SSH服務已經運行。
.如果返回“inactive”或“not found”,則需要安裝或啟用。

B.開放防火墻端口:確保公網服務器的防火墻或安全組開放映射端口(如10010或者53700)。

第2. 內網設備A的操作
在A上執行命令,建立反向隧道:

以轉發SSH服務為例:
ssh -fCNR *:遠程端口:localhost:本地端口 用戶名@公網服務器IP  
# 示例:將A的22端口映射到B的12345端口
ssh -fCNR 12345:localhost:22 root@B_IP
ssh -R 9999:localhost:3389 用戶名@203.0.113.10  # cmd終端關閉就停止建立反向隧道參數說明:
-R:反向隧道;
-C:壓縮數據,減少傳輸流量
-f:后臺運行;
-N:不執行遠程命令以autossh為例,使用autossh保持隧道穩定:
autossh -M 監控端口 -fCNR 遠程端口:localhost:本地端口 用戶名@B_IP  
# 示例:監控端口5678,映射SSH服務
autossh -M 5678 -fCNR 12345:localhost:22 root@B_IP

第3. 外網用戶訪問內網服務
通過SSH或瀏覽器訪問公網服務器B的映射端口:
對于linux用戶連接到內網設備A的SSH服務:ssh -p 12345 內網用戶名@B_IP
對于適用于Web服務,通過瀏覽器訪問如http://B_IP:映射端口
本博客是遠程桌面,可以通過遠程桌面直接輸入B_IP:映射端口 登錄內網,然后輸入用戶名和密碼進行遠程訪問。

3.遠程連接電腦

遠程電腦啟用遠程桌面并允許防火墻通過遠程桌面后,您便可以進行遠程連接操作了。
步驟1. 按下“Win + R”組合鍵,在彈出的運行窗口中輸入“mstsc”命令,以啟動遠程桌面連接工具。
步驟2. 在彈出的遠程桌面連接窗口中,輸入目標計算機的 IP 地址,然后點擊“連接”按鈕。
處于隱私,123.181.16.232:53700為示例ip:port
在這里插入圖片描述
步驟3. 輸入目標計算機的用戶名和密碼,即可進行遠程控制。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900914.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900914.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900914.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟考系統架構設計師之大數據與人工智能筆記

一、大數據架構設計 1. 核心概念與挑戰 大數據特征:體量大(Volume)、多樣性(Variety)、高速性(Velocity)、價值密度低(Value)。傳統數據庫問題:數據過載、性…

【數據結構 · 初階】- 單鏈表

目錄 一.相關指針知識點 二.鏈表 1.為什么學了順序表還要學鏈表 2.優點 三.實現 1.鏈表的打印 —— 理解鏈表結構 (2) 物理結構圖 2.鏈表的尾插 —— 入門 錯誤寫法:tail ! NULL 總結: 正確代碼物理圖解: (2) 尾插整體代碼 (思考…

按鍵消抖(用狀態機實現)

基于狀態機的設計代碼 module key_filter(clk,rst,key,key_p_flag,key_r_flag,key_state);input clk,rst;input key;output reg key_p_flag;output reg key_r_flag;output reg key_state;reg [1:0]r_key; //后面用來判斷什么時候pedge,什么時候nedgealways…

大數據(7.2)Kafka萬億級數據洪流下的架構優化實戰:從參數調優到集群治理

目錄 一、海量數據場景下的性能之殤1.1 互聯網企業的數據增長曲線1.2 典型性能瓶頸分析 二、生產者端極致優化2.1 批量發送黃金法則2.1.1 分區選擇算法對比 2.2 序列化性能突破 三、消費者端并發藝術3.1 多線程消費模式演進3.1.1 消費組Rebalance優化 3.2 位移管理高階技巧 四、…

MyBatis深度解析與實戰指南:細節完整,從入門到精通

MyBatis深度解析與實戰指南:細節完整,從入門到精通 整理這份筆記,是因為學習 MyBatis 時發現很多教程要么只講基礎 CRUD,要么直接跳到 Spring 整合,對 MyBatis 核心特性講解不全面,基礎部分也不夠完整。實…

【科學技術部政務服務平臺-用戶注冊/登錄安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊,存在如下安全問題: 暴力破解密碼,造成用戶信息泄露短信盜刷的安全問題,影響業務及導致用戶投訴帶來經濟損失,尤其是后付費客戶,風險巨大,造成虧損無底洞…

【Audio開發三】音頻audio中幀frameSize ,周期大小periodsize,緩沖區buffer原理詳解以及代碼流程分析

一、基礎概述 在分析獲取最小幀數前,我們先來了解幾個相關的概念。 1,幀 幀(frame):表示一個完整的聲音單元,所謂的聲音單元是指一個采樣樣本。如果是雙聲道,那么一個完整的聲音單元就是 2 個樣…

K8S學習之基礎七十五:istio實現灰度發布

istio實現灰度發布 上傳鏡像到harbor 創建兩個版本的pod vi deployment-v1.yaml apiVersion: apps/v1 kind: Deployment metadata:name: appv1labels:app: v1 spec:replicas: 1selector:matchLabels:app: v1apply: canarytemplate:metadata:labels:app: v1apply: canaryspec…

C++藍橋杯填空題(攻克版)

片頭 嗨~小伙伴們,咱們繼續攻克填空題,先把5分拿到手~ 第1題 數位遞增的數 這道題,需要我們計算在整數 1 至 n 中有多少個數位遞增的數。 什么是數位遞增的數呢?一個正整數如果任何一個數位不大于右邊相鄰的數位。比如&#xf…

【Python】數據結構

【Python】數據結構: Series:1、通過列表創建Series類對象2、顯示地給數據指定標簽索引3、通過字典創建Series類對象4、獲取索引5、獲取數據 DataFrame:1、通過數組創建一個DataFrame類對象2、指定列索引3、指定行索引4、獲取列的數據5、查看…

Android XML布局與Compose組件對照手冊

下面我將詳細列出傳統 XML 布局中的組件與 Compose 組件的對應關系,幫助您更好地進行遷移或混合開發。 基礎布局對應 XML 布局Compose 組件說明LinearLayout (vertical)Column垂直排列子項LinearLayout (horizontal)Row水平排列子項FrameLayoutBox層疊子項Relativ…

云原生運維在 2025 年的發展藍圖

隨著云計算技術的不斷發展和普及,云原生已經成為了現代應用開發和運維的主流趨勢。云原生運維是指在云原生環境下,對應用進行部署、監控、管理和優化的過程。在 2025 年,云原生運維將迎來更加廣闊的發展前景,同時也將面臨著一系列…

js day5

復習模板字符串: 在輸出語句里面 document.write(我今年${a}歲了)中間是反引號;里面是${變量}; 復習基本類型 number String null undefined boolean 檢測數據類型輸出typedf 變量則可; 添加鏈接描述 復習樣式變量table什么的邊…

SmolVLM2: The Smollest Video Model Ever(三)

這是對《SmolLM2: When Smol Goes Big — Data-Centric Training of a Small Language Model》的翻譯閱讀 摘要 雖然大語言模型在人工智能的許多應用中取得了突破,但其固有的大規模特性使得它們在計算上成本高昂,并且在資源受限的環境中部署具有挑戰性。…

汽車軟件開發常用的需求管理工具匯總

目錄 往期推薦 DOORS(IBM ) 行業應用企業: 應用背景: 主要特點: Polarion ALM(Siemens) 行業應用企業: 應用背景: 主要特點: Codebeamer ALM&#x…

爬蟲工程師雜活工具人

30歲的年齡;這個年齡大家都是成年人;都是做父母的年齡了;你再工位上的心態會發生很大變化的; 爬蟲工程師基本都是如此;社會最low的一幫連銷售都做不了的;單子都開不出來的然后轉行做爬蟲工程師的;這樣的人基本不太和社會接觸; 你作為爬蟲初級工程師就敲著鍵盤然后解析著html;…

如何使用Tomcat

1 簡介 Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。因為Tomcat 技術先進、性能穩定,而且免費,成為目前比較流行的Web 應…

【AI工具】FastGPT:開啟高效智能問答新征程

前言 在人工智能飛速發展的當下,各類 AI 工具如雨后春筍般涌現。FastGPT 作為一款基于大語言模型(LLM)的知識圖譜問答系統,憑借其強大的數據處理和模型調校能力,為用戶帶來了便捷的使用體驗。今天,就讓我們…

14. git remote

基本概述 git remote 的作用是:查看、添加、修改和刪除與本地倉庫關聯的遠程倉庫。 基本用法 1.查看遠程倉庫 git remote # 顯示所有關聯的遠程倉庫(名稱) git remote -v # 顯示所有關聯的遠程倉庫&a…

【spark-submit】--提交任務

Spark-submit spark-submit 是 Apache Spark 提供的用于提交 Spark 應用程序到集群的命令行工具。 基本語法 spark-submit [options] <app-jar> [app-arguments]常用參數說明 應用程序配置 --class <class-name>: 指定應用程序的主類&#xff08;對于 Java/Sc…