相信大家做开发的时候都是使用的公司的电脑,但是BUG可不会挑着你上班的时候出现,有时候一个电话打来,节假日也得匆匆忙忙跑回公司改代码。本文将简单介绍如何使用FRP(全名Fast Reverse Proxy)进行内网穿透,通过阿里云服务器远程访问自己公司电脑。

一、实现思路

Windows是自带远程桌面功能的,只是该功能只有专业版才有。Windows远程桌面端口是3389,控制端Win键 + R打开run界面输入mstsc可以呼出远程桌面连接,输入目标电脑IP即可连接。公司电脑通常部署在内网中,不能直接通过IP访问到,因此需要将内网的电脑3389端口映射到公网IP服务器上,内网电脑与云服务器建立连接,控制端通过访公网服务器转发流量到内网电脑中,简单地说就是内网穿透。

二、准备工作

1、一台有公网IP的云服务器,开放7000,3389端口(没有的话的可以右上角了)
2、一台Windows旗舰版/专业版系统的电脑(被连接端,能够访问互联网)
3、FRP 项目地址

三、操作步骤

准备工作中的1、2不再详细赘述,这里主要讲FRP的搭建和使用,FRP的操作很简单,下面以被连接端Windows10专业版,阿里云服务器Ubuntu18.04LTS为例介绍操作步骤:

首先去这里下载FRP应用,根据自己要远程的电脑和云服务器选择对应的版本下载。

FRP文件结构

1、将下载好的FRP解压,进入到目录中,可以总共有8个文件,其中有用的是这六个:

可以看到文件名以frp + c/s命名,其中以c结尾的是客户端,以s结尾的是服务端,ini是配置文件,带full的是详细配置,这里我们只需要使用不带full的frpc/s.ini的简单配置文件就可以了。

服务端(Ubuntu18.04)

1、将文件frp_0.29.0_linux_amd64.tar.gz传输到服务器并解压,打开frps.ini,可以看到:

[common]
bind_port = 7000

如果有需要,可以更改服务器的启动端口
这里我们不做更改,直接输入命令
./frps -c ./frps.ini

截图我改成6999端口,出现蓝色字样即启动成功

被连接端(Windows10专业版)

1、首先允许远程桌面连接,具体操作可以自行搜索
(win10下进入到设置->系统->远程桌面开启即可,注意Windows10专业版才有的选项)

2、同样先解压,打开frpc.ini

[common]
server_addr = 127.0.0.1
server_port = 7000
auto_token=mstsc[mstsc]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

其中
server_addr,server_port为服务端的IP地址和端口
可以看到FRP默认配置了SSH端口,即不修改的话通过访问服务端6000端口可以SSH到内网电脑,下面我们修改为

[common]
server_addr = 你的服务器IP地址
server_port = 7000
auto_token=mstsc[mstsc]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

其中
type为连接方式
local_ip为本机ip
local_port为本地需要映射的端口
remote_port为映射到服务器上的端口
auto_token=mstsc对应 [mstsc],如果需要同时部署多台的话改个名就可以了

修改完成后保存,注意这里不能直接通过双击exe文件来运行
win + R打开运行,输入powershell,进入到目录下执行

至此,内网穿透就完成了,下面Win + R输入mstsc,输入服务器的IP,如果remote_port不是3389的话还需要加上端口号地址(server_addr :remote_port),即可远程内网电脑桌面了



手机端使用官方出品的RD Client也是可以连接的

四、使用点对点直连

显然,使用服务器中转,流畅性受到控制端,被控端,以及服务器三方面的影响,特别是受中间代理服务器的影响最大,那么,有没有直连方案呢?

FPR提供了一种xtcp的直连方式,可以允许我们控制端与被控端进行点对点连接。原理是通过服务端找到双方位置,之后双方使用UDP进行通讯

下面修改服务端配置文件frps.ini

[common]
bind_port = 7000
bind_udp_port = 7001

可以看多了一个UDP端口,重启服务器

因为是直连,所以连接双方都要有frp

其中控制端frpc.ini文件如下:

[common]
server_addr = 你的IP地址
server_port = 7000[p2p_mstsc_visitor]
#官方文档是使用xtcp,但是测试发现穿透率不高,所以改用stcp
type = stcp
# xtcp 的访问者
role = visitor
# 要访问的 xtcp 代理的名字
server_name = mstsc
# 只有 sk 一致的用户才能访问到此服务
sk = kangdi
# 绑定本地端口用于访问 ssh 服务
bind_addr = 127.0.0.1
bind_port = 6999

启动服务,出现类似字样

服务端会出现类似字样

被控制端frpc.ini文件如下:

[common]
server_addr = 你的IP地址
server_port = 7000
auto_token=mstsc[mstsc]
type = stcp
# 只有 sk 一致的用户才能访问到此服务
sk = kangdi
local_ip = 127.0.0.1
local_port = 3389

启动服务,出现类似字样

服务端出现类似字样

现在,在远程连接的时候输入localhost:6999就能点对点访问服务器了


FRP的功能不仅仅只有内网穿透,
以后有机会还会介绍FPR更多相关的功能

本教程到此结束,谢谢浏览

FRP | 利用frp搭建自己的mstsc远程桌面服务器相关推荐

  1. FRP|利用FRP完成内网穿透进行windows远程连接的步骤汇总

    文章目录 FRP|利用FRP完成内网穿透进行windows远程连接的步骤汇总 本次配置过程的前提: 服务端配置详情 客户端(windows电脑配置) FRP|利用FRP完成内网穿透进行windows远 ...

  2. 清理mstsc远程桌面连接的记录

    场景 Windows自带mstsc远程桌面连接,用的时间长了后,记录会越来越多,有些服务器已经不在使用,或者IP已经变化,但是仍然还保留着记录,以至于添加新的服务器都无法记录IP 解决方案 1.先关闭 ...

  3. keepass2android 远程,关于KeePass实现mstsc远程桌面(rdp协议)的自动登录

    本文的Keepass版本:KeePass Password Safe Version 2.45 首先介绍一下Keepass,引用官网的解释如下: KeePass is a free open sour ...

  4. Windows - mstsc远程桌面连接访问本地文件夹

    mstsc远程桌面连接 cmd命令行输入: mstsc 或搜索:远程桌面连接 步骤 最后 勾选需要共享的文件夹即可. 在远程桌面我的电脑就可以看到额外的硬盘了.

  5. win10 无用户名密码 实现mstsc远程桌面连接

    参考:https://blog.csdn.net/HaHa_Sir/article/details/106377805 使用mstsc远程的时候,一般需要ip地址(如:192.16.1.2).输入用户 ...

  6. Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播)

    文章目录 Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播) 一.基础环境搭建 二.构建Nginx 下载nginx-rtmp-module 安装Nginx 编译nginx,代理 ...

  7. 未开启window无线服务器,win10未开启远程桌面服务器

    win10未开启远程桌面服务器 内容精选 换一换 使用外部镜像文件创建私有镜像时,以上相关步骤操作需要在虚拟机内部完成,强烈建议您在原平台的虚拟机实施修改后,再导出镜像.使用Windows外部镜像文件 ...

  8. 注册表禁用远程桌面服务器,注册表配置远程桌面终端服务修改远程桌面端口号...

    如何通过注册表来配置终端服务,一键修改远程桌面端口号,避免使用组策略配置远程桌面终端服务带来的繁琐操作? Terminal Server mstsc 注册表配置文件,附有注释,一看就懂的. 将以下全部 ...

  9. 连接远程应用服务器appserver出错,Windows Server 2008 RemoteApp(一)---部署远程桌面服务器...

    RemoteApp中的RD会话主机又称远程桌面服务器,前身是终端服务器,比起终端服务器来说,远程桌面服务器的功能更为强大,在终端服务器时代,我们在服务器端编辑的Office文档要传送回本地客户端,往往 ...

最新文章

  1. 关于SQL Server
  2. 编程之美-子数组的最大乘机方法整理
  3. HDU - 6641 TDL(数学)
  4. vspythonqt混合_PYQT5 vscode联合操作qtdesigner的方法
  5. 第二十三期:大规模网站架构?你是否熟悉?
  6. 蓝牙连接不上车要hfp_鹅厂又要霸屏,连接四部剧将袭,冲着主创颜值不追不行啦...
  7. go语言-csp模型-并发通道
  8. Windows远程桌面单/多用户同时登录
  9. 【英语语法入门】 第23讲 动词的用法
  10. LIO-SAM论文与代码阅读笔记(二)代码阅读:imuPreintergration.cpp和imageProjection.cpp
  11. 实用系列1 —— 视频中的语音转换成文字
  12. C/C++中CRT表示什么意思?
  13. 有关学术界的治理-来自学术道德通论课程作业
  14. Excel 条件格式查重问题
  15. 2020中国网络安全年会论文发布 知道创宇ZoomEye引领全球网空测绘
  16. 阿里云短信服务——短信发送验证码
  17. mysql 中间表 性能_mysql性能优化
  18. D. Flood Fill
  19. 这些大学奖学金覆盖率100%!
  20. 使用Matlab定制伯德图坐标纸

热门文章

  1. 值传递和引用传递实例讲解
  2. C语言 conio.h的使用
  3. ECSHOP+wamp
  4. 最全面的SpringMVC教程(五)——文件上传与下载
  5. 期货开户的需要什么资料?
  6. Python中Pyinstaller使用方法
  7. 攻防世界 Crypto 幂数加密
  8. acunetix wvs网站漏洞扫描
  9. 莞银通微信支付代码(PHP实现)
  10. Java构造函数(构造方法)的简介说明