使用 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

其中,frpsfrps.ini 是服务端的程序与配置文件(s 结尾代表 server),而 frpcfrpc.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 页面,选择符合自己架构的版本下载。下载后解压重命名,可删除 frpsfrps.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,然后执行以下步骤:

  1. 在 App 内右上角点击 + - 添加电脑
  2. 电脑名称 填入 IP:remote_port,例如 x.x.x.x:7001,点击返回
  3. 账户名称 填入被控端电脑的账户密码,点击返回

如果一切配置正常,这时候应该可以成功远程控制了。

控制端是 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)相关推荐

  1. 三层内网 外网打点到内网域 sec123 复现

    文章目录 三层内网 外网打点到内网域 sec123 复现 项目介绍 网络配置图 环境搭建 账号和密码 外网打点 端口扫描 网上银行系统漏洞 网上银行系统Hsql注入漏洞 tomexam SQL注入漏洞 ...

  2. 【内网穿透开机】外网环境下基于路由器广播,一键唤醒内网计算机实现远程开机

    外网环境下基于路由器广播,一键唤醒内网计算机实现远程开机(详细) 之前文章向大家介绍了 外网环境下基于FRP.VNC技术远程访问计算机,实现内网穿透 以及利用 WOL远程唤醒功能 基于FRP.VNC技 ...

  3. 阿里云轻量应用服务器配置frp内网穿透通过Mac远控Win10主机配置指南

    tags: Linux Server Tips Config 写在前面 之前一直是用向日葵或者todesk进行远程访问主机的, 虽然很方便, 却也存在有广告, 需要登录, 延时高等问题. 在此之前也有 ...

  4. 从外网打点到渗透内网域控 NASA

    文章目录 从外网打点到渗透内网域控 NASA 前言 任务说明 靶场拓扑 环境搭建 外网打点 端口扫描 使用 masscan 扫描全部端口 使用 nmap 扫描全部端口 目录扫描 后台测试 社工生成字典 ...

  5. 向日葵企业版无网远控解决方案

    一.行业背景 时下越来越多企业的管理者对企业内部的信息安全非常重视,如将单位的财务机.服务器等采用物理隔离手段将外网完全隔绝,还有在网关上架设防火墙设备等技术手段,防止来自互联网的攻击,保证内网财务机 ...

  6. 工控攻防演示——从外网到内网控制系统设备的入侵

    给实验室写的文章,在安全客上发表,在这里再发下 一.概述 实验目的通过工控靶场学习web渗透.内网渗透.工控安全相关知识技能. 靶场信息本实验通过vmware 搭建了靶场的外网和内网环境,在内网环境中 ...

  7. 【内网穿透服务器】使用Frp外网访问内网FTP服务器(以访问内网samba服务为例)

    使用Frp外网访问内网FTP服务器(以访问内网samba服务为例) FTP是基于TCP的服务,使用两个端口,命令端口和数据端口,命令端口是21,数据端口在主动模式下为20,在被动模式随机分配. FTP ...

  8. 【Nas/群晖/服务器】FRP内网穿透实现外网访问

    一般来说,在同一局域网下的终端设备可以相对自由地互相访问.但是,如果想要通过外网远程访问家中或者公司局域网中的服务器或者Nas,这种情况该怎么办呢? 解决的方法大致分为3种: 1. QuickConn ...

  9. 腾讯云搭载frp服务端-映射本地客户端到外网(小米路由pro内网穿透)

    最近因为一些事情,需要映射内网的网络到外网,我的小米路由器pro是可以ssh到它内部的linux系统的,我想把我服务器的某些大文件拉到我的路由器硬盘里,所以我就需要远程用scp链接我的路由进行远程传输 ...

最新文章

  1. 满洲里市智慧教育建设跨入云时代
  2. PHP 多参数方法的重构
  3. 《成为一名机器学习工程师》_如何在2020年成为机器学习工程师
  4. linux解压覆盖命令
  5. gRPC入门教程汇总
  6. NFinal 控制器—URL
  7. rac备份及恢复的重要概念之一——Redo Threads和Streams
  8. intellij idea 导出可执行jar
  9. android无线投屏到win,无线投影仪怎么连接,看过教程,原来操作这么简单!
  10. ERP原理与应用期末复习
  11. Python在图片上添加文字
  12. 一张图解释什么是遗传算法_如何通俗易懂地解释遗传算法?有什么例子?
  13. [ vant ] vue移动端下拉刷新组件
  14. Nginx常用知识梳理(三)——windows环境下端口耗尽问题
  15. web前端:img标签alt属性什么情况留空?
  16. 抽象数据类型三元组Triplet基本操作与实现 严蔚敏版
  17. Ps-制作二级页面总结
  18. 【OpenGL】(step1)开个窗口
  19. php 快递单号生成规则,Thinkphp 生成订单号小案例
  20. labelme标注结果可视化(持续补充)

热门文章

  1. linux下安装vsftpd vsftpd.conf配置 访问ftp时候输入正确的用户名密码还是一直弹出提示让你输入的原因
  2. 早产的2016年终总结
  3. 全面解读如何利用百度知道来做产品推广
  4. 兆骑科创创新创业服务平台,双创活动承办,企业落地孵化
  5. linux怎么切换当前用户名,Linux的用户切换、修改用户的用户名和密码
  6. 键盘的win键和Alt反了
  7. Linux系统CentOS 7修改httpd服务Apache网站根目录
  8. java打印一些数字_java – 如何打印数字模式
  9. 面试最后一个问题如何答 十大禁忌不要碰
  10. 高仿QQ源码-界面(1)