999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SSH隧道的RDP Session遠程桌面連接

2022-12-08 07:23:38
現代計算機 2022年18期
關鍵詞:計算機

符 明

(湖南食品藥品職業學院圖書館,長沙 410004)

0 引言

Windows家庭版以上系統自帶遠程桌面服務。MSTSC遠程桌面服務被廣泛用于小型局域網的維護工作中。但這個程序需要知道對方計算機的用戶名和密碼,并且只能在同一網段下使用。一般情況下,系統維護操作員會安裝第三方軟件TeamViewer等來翻過NAT路由來代替原有的Windows遠程桌面服務。

1 網絡拓撲環境描述

典型的局域網拓撲環境,計算機1位于NAT1后,計算機2位于NAT2后,計算機1、計算機2均可以直接和服務器通訊。但是服務器并不能直接訪問計算機1、計算機2,且計算機1和計算機2之間也無法通訊。

2 RDP Session介紹

RDP Session是基于RdpEncom.dll的Windows遠 程 桌 面COM控 件[1]。該DLL文 件 位 于System32和sysWOW64目錄下,此COM控件存在于從Windows7至Windows10的系統自帶COM控件庫中。此COM的優點是:控制端用RDP連接字符串包含的密鑰,無需輸入被控制端的用戶名及密碼即可接入被控制端計算機的遠程桌面。在同一網段的局域網下,該控件提供了一種優異的系統級遠程桌面連接方法,可以輕松實現對遠程計算機進行實時監控、控制、發送文本等功能。缺點是:只能用于同一網段之內的計算機遠程桌面服務,無法跨NAT網段連接。以下為一個標準的RDP連接字符串,里面包含了連接密鑰和連接地址與端口號。

<E><A KH="密鑰字符串(略)"KH2="密鑰字符串(略)"

CE="密鑰字符串(略)"ID="連接ID(略)"/><C><T ID="1"SID="0"><L

P="41000"N="fe80::2955:f79a:f465:3c75%2"/><L P="41000"

N="fe80::f997:d009:53b7:50f7%8"/><L P="41000"N="192.168.56.1"/><L

P="41000"N="192.168.0.103"/></T></C></E>

3 跨網段遠程桌面實現原理

3.1 在跨NAT段建立計算機之間可直接通訊的SSH隧道[2]

控制端計算機采用本地端口轉發,將本地端口映射到服務器,相當于執行命令:ssh-L port:localhost:port user@server,通過訪問本地端口交由服務器轉發;被控制端PC采用遠程轉發,相當于執行命令:ssh-R port:localhost:port user@server,將服務器端口映射到本地端口,訪問服務器端口轉發至本地端口。通過中間OPENSSH服務器,兩臺計算機之間建立繞過NAT限制,能直接通訊的加密SSH通道。

3.2 修改RDP連接字符串,在原字符串中添加127.0.0.1本地監聽地址及端口字符串

提供RDP遠程桌面服務的計算機創建RDP遠程連接字符串。原始RDP字符串中包含明文的基于本機生成的連接密鑰及本機IP地址、RDP訪問端口等信息??刂贫擞嬎銠C接收到該字符串后,根據SSH隧道要求,必須要使用修改后的RDP連接字符串,添加本地127.0.0.1及端口信息??刂贫擞嬎銠C就可以利用修改過的RDP連接字符串,通過已經建立好的SSH隧道連接到遠程計算機的桌面。

4 實現步驟

本方法采用NET Framework 4.5環境,Windows10下Visual Studio 2019 C#社區版開發,分為控制端、被控制端、服務器端三個應用程序。服務器安裝OPENSSH服務環境??刂贫伺c被控制端均添加引用SSH.NET。

4.1 建立SSH隧道

客戶機之間建立SSH隧道,SSH隧道監聽的端口就是RDP監聽的端口,這個端口可以自定義。

控制端代碼建立SSH本地端口轉發,將本地端口映射到服務器,訪問本地127.0.0.1:Port,即訪問Server:Port。

Renci.SshNet.SshClient sshClient=new Renci.SshNet.SshClient(serverIP,"username","password");

sshClient.Connect();

Renci.SshNet.ForwardedPortLocal localForwardPort=new ForwardedPortLocal("127.0.0.1",(uint)RDP_TCP_Port,"127.0.0.1",(uint)RDP_TCP_Port);

sshClient.AddForwardedPort(localForwardPort);

localForwardPort.Start();

被控制端代碼建立遠程端口轉發,將服務器端口映射到本地,訪問Server:Port,即訪問

local:Port。

Renci.SshNet.SshClient sshClient=new Renci.SshNet.SshClient(serverIP,"username","password");

sshClient.Connect();

Renci.SshNet.ForwardedPortRemote remoteForward-Port=new

ForwardedPortRemote((uint)RDP_TCP_Port,localIP,(uint)RDP_TCP_Port);

sshClient.AddForwardedPort(remoteForwardPort);

remoteForwardPort.Start();

4.2 計算機之間RDP Session請求的接收和發送

控制端添加ActiveX視窗控件AxRDPCOMAPILib及RdpEncom.dll引用??刂贫藦姆掌魍ㄟ^Socket方式接收RDP連接字符串,并通過此連接字符串進行RDP連接:

//通過Socket形式接收RDP連接字符串過程略

Form frm=new Form();

frm.Text="遠程桌面";

frm.Size=new ystem.Drawing.Size(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);

frm.MaximizeBox=false;

frm.MinimizeBox=false;

frm.FormClosing+=new FormClosingEventHandler(frm_FormClosing);

axRDPViewer.Dock=System.Windows.Forms.Dock-Style.Fill;

axRDPViewer.Size=new System.Drawing.Size(frm.Width,frm.Height);

axRDPViewer.OnConnectionTerminated+=AxRDPViewer_OnConnectionTerminated;//定義遠程桌面被控制端斷線以后的事件

((System.ComponentModel.ISupportInitialize)axRDPViewer).BeginInit();

frm.Controls.Add(axRDPViewer);

((System.ComponentModel.ISupportInitialize)axRDPViewer).EndInit();

axRDPViewer.SmartSizing=true;//定義遠程桌面窗口信息,并初始化

axRDPViewer.Connect(rdpConnectString,System.Guid.NewGuid().ToString(),"");//用接收的RDP連接字符串進行連接

frm.ShowDialog();

被控制端添加RdpEncom.dll引用建立RDP連接請求,并將修改后的RDP連接字符串通過Socket方式發送給服務器,等待RDP的遠程連接。在RDP連接建立時,可以自定義RDP監聽端口:

RDPCOMAPILib.RDPSession rdp=new RDPCOMAPILib.RDPSession();

rdp.OnAttendeeConnected+=new

RDPCOMAPILib._IRDPSessionEvents_OnAttendee ConnectedEventHandler(rdp_OnAttendeeConnected);//定義連接等級

rdp.OnAttendeeDisconnected+=Rdp_OnAttendeeDisconnected;//定義斷開以后的事件

rdp.SetDesktopSharedRect(0,0,System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width,System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height);

rdp.Properties["PortId"]=RDP_TCP_Port;//自 定 義在41000端口上進行RDP監聽

rdp.Open();//打開RDP監聽

RDPCOMAPILib.IRDPSRAPIInvitation invitation=rdp.Invitations.CreateInvitation(null,System.Guid.NewGuid().ToString(),"",1);

string rdpConnStr=invitation.ConnectionString;//創建RDP連接字符串,同時連接數=1

using(System.Net.Sockets.Socket skt=objSocket as System.Net.Sockets.Socket)

//向服務器發送連接字符串,代碼略

被控制端定義連接等級:

static void rdp_OnAttendeeConnected(object pAttendee)

RDPCOMAPILib.RDPSRAPIAttendee att=pAttendee as RDPCOMAPILib.RDPSRAPIAttendee;

att.ControlLevel=RDPCOMAPILib.CTRL_LEVEL.CTRL_LEVEL_VIEW;//連接等級為僅瀏覽

修改RDP字符串,在原字符串上根據格式直接進行添加:

string insertStr="<L P=""+RDP_TCP_Port+""N="127.0.0.1"/>";

rdpConnectString=rdpConnectString.Insert(rdpConnectString.LastIndexOf("</T>"),insertStr);

控制端計算機和被控制端計算機分別位于D-LINK DIR-629及TPLINK TL-WR886N家用普通路由器后,SSH服務器在路由器前面,此方案測試通過。

5 結語

(1)RdpEncom.dll為系統自帶服務,提供了多種連接等級,包括僅瀏覽到全局控制多個控制等級。可無視UAC控制窗口對系統進行設置,并提供系統級遠程桌面服務。

(2)RdpEncom.dll同時也可以提供Virtual Channel功能,這個功能可以在RDP通訊中提供簡單的文本傳輸服務,即不通過額外的Socket通道實現即時文本通訊。

(3)市場上常見的路由器、防火墻、通訊運營商一般不禁止SSH端口及服務。這個方案可以用在Internet廣域網中,具有一定的實用性,但需要在Internet上暴露OPENSSH服務器,因此對此服務器安全設置必須十分謹慎。

(4)如果要建立穩定的遠程桌面服務,那么必須要提高SSH加密隧道的穩定性,這是后續需要進一步研究的課題。

猜你喜歡
計算機
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于LabVIEW的計算機聯鎖仿真系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
計算機應用軟件開發技術的幾點探討
電子制作(2017年14期)2017-12-18 07:08:10
計算機網絡安全
iLOCK型計算機聯鎖開發中的需求開發管理
計算機聯鎖系統配置軟件設計與實現
主站蜘蛛池模板: 亚洲欧洲自拍拍偷午夜色无码| 国产天天射| 久久久久亚洲精品成人网 | 久久亚洲美女精品国产精品| 呦视频在线一区二区三区| 免费黄色国产视频| 国产精品福利尤物youwu| 色老二精品视频在线观看| 国产精品开放后亚洲| 91色在线视频| 91精品国产自产在线老师啪l| 亚洲无码免费黄色网址| 99无码中文字幕视频| 999国产精品| 亚洲中文字幕无码爆乳| 欧美精品伊人久久| 国产一区在线观看无码| 久久国产高清视频| 精品国产成人a在线观看| 亚洲欧洲自拍拍偷午夜色| 丰满人妻久久中文字幕| 国产精品自在线拍国产电影| 99久久国产精品无码| 日韩黄色精品| 亚洲精品无码AV电影在线播放| 波多野结衣中文字幕久久| 高清精品美女在线播放| 亚洲VA中文字幕| 99久久国产综合精品2020| 欧美成人午夜在线全部免费| 黄色网站在线观看无码| 亚洲精品色AV无码看| 国精品91人妻无码一区二区三区| 国产91视频免费| 亚洲天堂精品视频| 无码福利日韩神码福利片| 亚洲欧美一级一级a| 香蕉伊思人视频| 亚洲日韩精品无码专区| 亚洲第一成年网| 2020亚洲精品无码| 亚洲日产2021三区在线| 凹凸精品免费精品视频| 尤物特级无码毛片免费| 91在线播放国产| 国产午夜不卡| 国产欧美精品专区一区二区| 亚洲一区二区黄色| 欧美日韩国产在线人| 国产在线一区视频| 亚洲精品自拍区在线观看| 91视频日本| 国产成人精品亚洲77美色| 最新国产你懂的在线网址| 麻豆国产原创视频在线播放| 无码福利视频| 国产精品19p| 国产欧美日韩免费| 色综合日本| 国产免费看久久久| 国产一区二区免费播放| 免费一极毛片| 天堂在线www网亚洲| 亚洲日韩日本中文在线| 国产亚洲精品97在线观看| 国产成人福利在线| 国产在线98福利播放视频免费| 亚洲欧美不卡中文字幕| 国产成人麻豆精品| 97视频在线观看免费视频| 青草91视频免费观看| 91在线中文| www.youjizz.com久久| 日韩国产黄色网站| 欧美精品v| 免费高清毛片| 久久久久久久久久国产精品| 国产综合欧美| 波多野结衣的av一区二区三区| 亚洲欧美在线看片AI| 日韩中文精品亚洲第三区| 国产精品中文免费福利|