通过frp穿透实现rdp远程电脑桌面

    今天发现我的免费TeamView不能连接,被定义为商业用途,信任设备超限,一句话就是没有免费的套餐了,其他免费远程软件延迟太高,找了些资料,写个利用阿里云服务器进行内网穿透远程公司电脑桌面。

主要工具:

1、有一台公网ip的服务器,我用的阿里云服务器;

2、frp软件,下载地址:https://github.com/fatedier/frp/releases

3、需要被远程的window电脑;

一、服务端配置

1、Linux 下载frp 软件,注意区别是linux还是windows,放置位置,随意

 wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

2、解压

tar -zxvf frp_0.33.0_linux_amd64.tar.gz 

3、解压后配置  frps.ini

[common]
# 所有的客户端端口都通过此端口进行穿透
bind_port = 7000                           
bind_addr = 0.0.0.0

# 网页版仪表盘可以清楚的出当前frps开发的端口
dashboard_port = 7500
dashboard_user = admin	
dashboard_pwd = admin

4、在解压文件夹下,启动服务端frps

前台启动服务,窗口关闭,服务即关闭

./frps -c frps.ini

后台启动服务,可关闭当前窗口

nohup ./frps -c frps.ini &

 并且可使用 ps -aux|grep frp 查询frp当前进程,并关闭 kill 

可在网页上访问:服务器外网IP:7500   得到如下:

 

注意:云服务器需要开启对应外网端口,如果有防火墙,也需要开启对应端口

 

二、客户端配置

1、下载客户端软件

https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_windows_amd64.zip

2、下载解压后编辑frpc.ini 

[common]
# frps公网ip
server_addr = 106.15.38.77
# 远程frps 开放端口
server_port = 7000

[rdp]
type = tcp
local_ip = 127.0.0.1
#远程桌面的默认端口
local_port = 3389
# 服务端开启的端口,外网访问
remote_port = 7001

 3、在frpc.ini所在文件夹打开shell执行命令

./frpc -c frpc.ini

 

每次都打开CMD然后输入命令太麻烦,我们可以建一个BAT脚本文件,保存命令,然后直接双击即可运行,注意自己的文件路径:

"D:\frp\frp_0.33.0_windows_amd64\frpc.exe" -c "D:\frp\frp_0.33.0_windows_amd64\frpc.ini"

 

三、远程连接桌面

1、内网开启远程桌面设置

右击  此电脑——属性——远程设置——允许远程连接此计算机

 2、运行远程桌面

win+R 输入 mstsc

 

3、如果访问出现  提示您的凭据不工作,确保其它都是对的情况下,可如下设置:

win + R  输入:  gpedit.msc

计算机配置-管理模板-windows组件-远程桌面服务-远程桌面会话主机-安全-远程(rdp)连接要求使用指定的安全层,更改为启用 -rdp ,保存退出,如图:

到此,通过frp穿透实现rdp远程电脑桌面便配置完成。

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 使用C语言实现远程桌面协议(RDP)需要具备一定的编程技能,步骤如下:1)实现RDP协议的传输层,使用TCP/IP协议实现数据传输;2)实现RDP协议的会话层,使用TLS/SSL实现安全会话;3)实现RDP协议的表示层,使用RDP视图、RDP控制、RDP输入和RDP图形来显示远程桌面的内容;4)实现RDP协议的应用层,使用RDP视频、RDP音频、RDP文件转换和RDP打印等功能。 ### 回答2: 要用C语言实现RDP远程桌面,需要以下步骤和功能: 1. 首先,需要创建一个RDP客户端程序来连接远程计算机。这个客户端程序需要能够与RDP服务器建立连接,并进行身份验证。 2. 在客户端和服务器之间建立TCP/IP连接,以便在网络上进行通信。 3. 在客户端和服务器之间建立可靠的数据传输协议,以确保数据的准确性和完整性。在RDP中,使用的是RDP协议,它可以保证可靠的数据传输。 4. 实现键盘和鼠标输入的传输。将客户端接收到的键盘和鼠标输入传输到服务器上,以便远程控制服务器。 5. 在服务器端实现图形绘制和显示功能。这包括将服务器上的图像绘制到客户端的屏幕上,以实现远程桌面的显示。 6. 实现音频传输。如果需要在远程计算机上播放音频或录制音频输入,需要将音频数据从客户端传输到服务器。 7. 要实现远程剪贴板功能,使得客户端和服务器之间可以互相复制和粘贴文本或文件。 8. 实现远程文件传输功能,使得客户端可以上传和下载文件到服务器上。 9. 要对连接进行加密,以保护数据的安全性和隐私。 10. 最后,需要实现断开连接和退出等功能,以便安全地关闭RDP连接。 总之,通过这些步骤和功能,可以用C语言实现RDP远程桌面,实现远程控制、文件传输和音频等功能,方便用户在远程计算机上进行操作。 ### 回答3: 使用C语言实现RDP远程桌面协议)可以通过使用RDP库来实现。下面是一个大致的步骤: 1. 首先,需要使用C语言连接到RDP服务器。可以使用RDP库来建立与服务器的连接,并进行身份验证。 2. 连接成功后,可以通过发送RDP协议中的命令和数据来控制远程桌面。这些命令和数据可以使用C语言的网络编程功能(如套接字)发送到RDP服务器。 3. 要实现远程桌面的显示,需要接收和解析RDP服务器发送的屏幕数据。可以使用C语言的图形处理库(如SDL)来创建一个与远程桌面相同分辨率的窗口,并在窗口中显示接收到的图像数据。 4. 接收到的图像数据可以进行解压缩和解码,以便将其转换为屏幕上的像素。可以使用C语言中的相关库和算法来实现图像解压缩和解码的功能。 5. 在显示远程桌面的同时,还可以在本地模拟用户的输入操作。可以使用C语言的系统api来模拟鼠标和键盘的输入,将用户的操作发送给RDP服务器。 6. 最后,关闭连接时,需要通过发送RDP协议中的断开连接命令来关闭与服务器的连接。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值