如何实现外网 RDP 远控(frp)
使用 frp 在任意网络下实现远程桌面控制。
为什么使用 RDP
RDP 是 Windows 自带的协议。相比市面上的远程桌面软件,如 Todesk、Anydesk、向日葵等,有以下优势:
- 兼容性更佳,根据设备自适应分辨率,可连接键鼠使用
- 自由度高,不限制设备数量,也没有会员体系
- 连接速度取决于电脑网速和服务器配置
为什么使用 frp
RDP 仅支持同 IP 段使用,为了在外网下实现远控,我们需要用 frp 方法给内网做穿透。
frp 是一个反向代理软件,体积轻量但功能强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持 HTTP、TCP、UDP 等众多协议。
用 frp 实现外网 RDP 远控的原理,就是让被控端与服务器相连,我们通过服务器来间接连接被控端,从而实现远控。
准备
- 服务端(可以是云服务器,也可以是有公网 IP 的实体机)
- 被控端(Windows 必须是专业版以上)
- 远控端(全平台都适用)
服务端配置
首先,查看服务器架构:
arch
参考 frp 的 Releases 页面,选择符合自己架构的版本下载(比如我是 X86_64
架构,即选择 amd64
):
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
下载后,解压并改名:
tar -zxvf frp_0.36.2_linux_amd64.tar.gz && mv frp_0.36.2_linux_amd64 frp
我们看一下 frp 文件夹内的文件:
cd frp && ls
- frps
- frps.ini
- frpc
- frpc.ini
其中,frps
与 frps.ini
是服务端的程序与配置文件(s 结尾代表 server),而 frpc
与 frpc.ini
是客户端相关的(c 结尾代表 client),我们现在暂时不用,可以删除:
rm -f frpc frpc.ini
接下来,我们修改 frps.ini
文件:
vim frps.ini
[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
- bind_port:客户端和服务端连接的端口,在之后配置客户端时会用上,一般默认即可。
- dashboard_port:服务端仪表板的端口,一般默认即可。如果按默认设置为
7500
,则可通过7500
端口访问仪表盘(例如服务器 IP:7500
),查看 frp 状态。 - token:客户端和服务端连接的口令,请自行设置。
- dashboard_user / dashboard_pwd:仪表盘用户名和密码,请自行设置。
编辑完成后,按 Esc
后输入 :wq
保存退出。
为了在后台运行 frp 服务,我们可以使用 nohup 命令:
nohup ./frps -c frps.ini &
如果看到以下输出:
nohup: ignoring input and appending output to 'nohup.out'
即表示服务正常运行。我们也可以用 jobs
命令,查看正在运行的服务。
为了测试服务端是否配置成功,我们可以访问 x.x.x.x:7500
,使用上面配置的用户名和密码,看看能否顺利进入仪表盘。如果访问不了仪表盘,也有可能在服务器的防火墙处放开相关端口。
被控端配置
还是参考 frp 的 Releases 页面,选择符合自己架构的版本下载。下载后解压重命名,可删除 frps
和 frps.ini
文件。打开 frpc.ini
文件:
[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002
- server_addr:服务器 IP 地址,请自行修改。
- server_port:保持与服务端
bind_port
的值相同即可,默认是7000
。 - token:连接口令,保持与服务端配置的
token
相同。
接下来,我们配置自定义的规则:
- [rdp]:[xxx] 表示规则名称,可自定义。
- type:转发的协议类型,可选 TCP/UDP
- local_port:本地端口号,这里填写的是 RDP 协议的端口(3389)
- remote_port:在服务端开放的端口号,可自定义。
RDP(Remote Desktop 协议)在 Windows 上默认的端口号为 3389,协议 TCP。
SMB(Windows 文件共享协议)默认端口号为 445,协议 TCP。
为了在后台运行 frpc,我们创建脚本 frpc.vbs
,将以下内容粘贴进去:
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "c:\frp\frpc.exe -c c:\frp\frpc.ini",0
注意可能需要修改路径。
将 frpc.vbs
放入 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
目录内,即可实现开机自启动。
如果想测试使用,可以直接运行脚本,或重启自动运行。
远控端配置
控制端是移动设备
如果需要在手机、iPad 上远控电脑,则需要先安装 Microsoft 远程桌面
App,然后执行以下步骤:
- 在 App 内右上角点击
+
-添加电脑
电脑名称
填入IP:remote_port
,例如x.x.x.x:7001
,点击返回账户名称
填入被控端电脑的账户密码,点击返回
如果一切配置正常,这时候应该可以成功远程控制了。
控制端是 Windows
直接在开始菜单搜索打开 远程桌面连接
,填入 IP:remote_port
例如 x.x.x.x:7001
,按提示输入用户名密码,即可实现远程控制。
参考与致谢
- 使用 frp 进行内网穿透
- Linux 的 nohup 命令的用法
- 【教程】通过 frp 实现自建远程桌面
文章作者:Power Lin
原文地址:https://wiki-power.com/如何实现外网RDP远控(frp)
版权声明:文章采用 CC BY-NC-SA 4.0 协议,转载请注明出处。
如何实现外网 RDP 远控(frp)相关推荐
- 三层内网 外网打点到内网域 sec123 复现
文章目录 三层内网 外网打点到内网域 sec123 复现 项目介绍 网络配置图 环境搭建 账号和密码 外网打点 端口扫描 网上银行系统漏洞 网上银行系统Hsql注入漏洞 tomexam SQL注入漏洞 ...
- 【内网穿透开机】外网环境下基于路由器广播,一键唤醒内网计算机实现远程开机
外网环境下基于路由器广播,一键唤醒内网计算机实现远程开机(详细) 之前文章向大家介绍了 外网环境下基于FRP.VNC技术远程访问计算机,实现内网穿透 以及利用 WOL远程唤醒功能 基于FRP.VNC技 ...
- 阿里云轻量应用服务器配置frp内网穿透通过Mac远控Win10主机配置指南
tags: Linux Server Tips Config 写在前面 之前一直是用向日葵或者todesk进行远程访问主机的, 虽然很方便, 却也存在有广告, 需要登录, 延时高等问题. 在此之前也有 ...
- 从外网打点到渗透内网域控 NASA
文章目录 从外网打点到渗透内网域控 NASA 前言 任务说明 靶场拓扑 环境搭建 外网打点 端口扫描 使用 masscan 扫描全部端口 使用 nmap 扫描全部端口 目录扫描 后台测试 社工生成字典 ...
- 向日葵企业版无网远控解决方案
一.行业背景 时下越来越多企业的管理者对企业内部的信息安全非常重视,如将单位的财务机.服务器等采用物理隔离手段将外网完全隔绝,还有在网关上架设防火墙设备等技术手段,防止来自互联网的攻击,保证内网财务机 ...
- 工控攻防演示——从外网到内网控制系统设备的入侵
给实验室写的文章,在安全客上发表,在这里再发下 一.概述 实验目的通过工控靶场学习web渗透.内网渗透.工控安全相关知识技能. 靶场信息本实验通过vmware 搭建了靶场的外网和内网环境,在内网环境中 ...
- 【内网穿透服务器】使用Frp外网访问内网FTP服务器(以访问内网samba服务为例)
使用Frp外网访问内网FTP服务器(以访问内网samba服务为例) FTP是基于TCP的服务,使用两个端口,命令端口和数据端口,命令端口是21,数据端口在主动模式下为20,在被动模式随机分配. FTP ...
- 【Nas/群晖/服务器】FRP内网穿透实现外网访问
一般来说,在同一局域网下的终端设备可以相对自由地互相访问.但是,如果想要通过外网远程访问家中或者公司局域网中的服务器或者Nas,这种情况该怎么办呢? 解决的方法大致分为3种: 1. QuickConn ...
- 腾讯云搭载frp服务端-映射本地客户端到外网(小米路由pro内网穿透)
最近因为一些事情,需要映射内网的网络到外网,我的小米路由器pro是可以ssh到它内部的linux系统的,我想把我服务器的某些大文件拉到我的路由器硬盘里,所以我就需要远程用scp链接我的路由进行远程传输 ...
最新文章
- 满洲里市智慧教育建设跨入云时代
- PHP 多参数方法的重构
- 《成为一名机器学习工程师》_如何在2020年成为机器学习工程师
- linux解压覆盖命令
- gRPC入门教程汇总
- NFinal 控制器—URL
- rac备份及恢复的重要概念之一——Redo Threads和Streams
- intellij idea 导出可执行jar
- android无线投屏到win,无线投影仪怎么连接,看过教程,原来操作这么简单!
- ERP原理与应用期末复习
- Python在图片上添加文字
- 一张图解释什么是遗传算法_如何通俗易懂地解释遗传算法?有什么例子?
- [ vant ] vue移动端下拉刷新组件
- Nginx常用知识梳理(三)——windows环境下端口耗尽问题
- web前端:img标签alt属性什么情况留空?
- 抽象数据类型三元组Triplet基本操作与实现 严蔚敏版
- Ps-制作二级页面总结
- 【OpenGL】(step1)开个窗口
- php 快递单号生成规则,Thinkphp 生成订单号小案例
- labelme标注结果可视化(持续补充)