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

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

2022-12-08 07:23:38
現(xiàn)代計算機 2022年18期
關(guān)鍵詞:計算機

符 明

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

0 引言

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

1 網(wǎng)絡(luò)拓撲環(huán)境描述

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

2 RDP Session介紹

RDP Session是基于RdpEncom.dll的Windows遠 程 桌 面COM控 件[1]。該DLL文 件 位 于System32和sysWOW64目錄下,此COM控件存在于從Windows7至Windows10的系統(tǒng)自帶COM控件庫中。此COM的優(yōu)點是:控制端用RDP連接字符串包含的密鑰,無需輸入被控制端的用戶名及密碼即可接入被控制端計算機的遠程桌面。在同一網(wǎng)段的局域網(wǎng)下,該控件提供了一種優(yōu)異的系統(tǒng)級遠程桌面連接方法,可以輕松實現(xiàn)對遠程計算機進行實時監(jiān)控、控制、發(fā)送文本等功能。缺點是:只能用于同一網(wǎng)段之內(nèi)的計算機遠程桌面服務(wù),無法跨NAT網(wǎng)段連接。以下為一個標準的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 跨網(wǎng)段遠程桌面實現(xiàn)原理

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

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

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

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

4 實現(xiàn)步驟

本方法采用NET Framework 4.5環(huán)境,Windows10下Visual Studio 2019 C#社區(qū)版開發(fā),分為控制端、被控制端、服務(wù)器端三個應(yīng)用程序。服務(wù)器安裝OPENSSH服務(wù)環(huán)境。控制端與被控制端均添加引用SSH.NET。

4.1 建立SSH隧道

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

控制端代碼建立SSH本地端口轉(zhuǎn)發(fā),將本地端口映射到服務(wù)器,訪問本地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();

被控制端代碼建立遠程端口轉(zhuǎn)發(fā),將服務(wù)器端口映射到本地,訪問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請求的接收和發(fā)送

控制端添加ActiveX視窗控件AxRDPCOMAPILib及RdpEncom.dll引用。控制端從服務(wù)器通過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方式發(fā)送給服務(wù)器,等待RDP的遠程連接。在RDP連接建立時,可以自定義RDP監(jiān)聽端口:

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監(jiān)聽

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

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

string rdpConnStr=invitation.ConnectionString;//創(chuàng)建RDP連接字符串,同時連接數(shù)=1

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

//向服務(wù)器發(fā)送連接字符串,代碼略

被控制端定義連接等級:

static void rdp_OnAttendeeConnected(object pAttendee)

RDPCOMAPILib.RDPSRAPIAttendee att=pAttendee as RDPCOMAPILib.RDPSRAPIAttendee;

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

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

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服務(wù)器在路由器前面,此方案測試通過。

5 結(jié)語

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

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

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

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

猜你喜歡
計算機
計算機操作系統(tǒng)
穿裙子的“計算機”
基于LabVIEW的計算機聯(lián)鎖仿真系統(tǒng)
基于計算機自然語言處理的機器翻譯技術(shù)應(yīng)用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術(shù)應(yīng)用初探
科技傳播(2019年22期)2020-01-14 03:06:30
信息系統(tǒng)審計中計算機審計的應(yīng)用
計算機應(yīng)用軟件開發(fā)技術(shù)的幾點探討
電子制作(2017年14期)2017-12-18 07:08:10
計算機網(wǎng)絡(luò)安全
iLOCK型計算機聯(lián)鎖開發(fā)中的需求開發(fā)管理
計算機聯(lián)鎖系統(tǒng)配置軟件設(shè)計與實現(xiàn)
主站蜘蛛池模板: 中文字幕av无码不卡免费| 欧美区国产区| 丰满的少妇人妻无码区| 天天做天天爱夜夜爽毛片毛片| 国产成人精品日本亚洲77美色| 欧美成人综合视频| 亚洲综合欧美在线一区在线播放| 激情六月丁香婷婷| 亚洲va视频| 久久夜色精品| 亚洲精品日产AⅤ| 又粗又大又爽又紧免费视频| 欧美国产在线看| 欧美国产中文| 国产视频久久久久| 最新精品久久精品| 一本色道久久88| 9999在线视频| 996免费视频国产在线播放| 国产欧美综合在线观看第七页| 亚洲成a人在线观看| 尤物成AV人片在线观看| 国产av一码二码三码无码 | 爱做久久久久久| 亚洲精品动漫在线观看| 亚洲性网站| 老司机久久精品视频| 亚洲欧美日韩中文字幕在线一区| 毛片基地视频| 国产尤物jk自慰制服喷水| 在线看AV天堂| 五月综合色婷婷| 一区二区三区高清视频国产女人| 中文字幕在线一区二区在线| 亚洲欧美在线精品一区二区| 亚洲黄色片免费看| 国产激爽爽爽大片在线观看| 亚洲中文在线视频| 国产手机在线小视频免费观看| 久久9966精品国产免费| 亚洲精选无码久久久| 国产精品视频999| 免费人成网站在线高清| 亚洲精品动漫| 久久99国产乱子伦精品免| av在线5g无码天天| 91在线中文| 精品人妻系列无码专区久久| 国产在线啪| 国产流白浆视频| 97se亚洲综合在线韩国专区福利| 又粗又硬又大又爽免费视频播放| 亚洲成人网在线播放| 在线观看无码av免费不卡网站| 国产成人调教在线视频| 国产精品国产三级国产专业不 | 久久综合九色综合97婷婷| 国产成人AV综合久久| 女高中生自慰污污网站| 亚洲天堂2014| 任我操在线视频| 免费精品一区二区h| 亚洲综合精品香蕉久久网| 一区二区三区国产| 欧美日韩中文字幕在线| 欧美色视频在线| 亚洲天堂精品在线观看| 亚洲性视频网站| 热99精品视频| 国产素人在线| 欧美人人干| 国产丝袜啪啪| 国产精品所毛片视频| 亚洲日产2021三区在线| 97青草最新免费精品视频| 免费在线国产一区二区三区精品 | 国产产在线精品亚洲aavv| 午夜福利视频一区| 理论片一区| 国产男人的天堂| 国产成人无码播放| 天天躁夜夜躁狠狠躁躁88|