一、实现思路
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,可以看到:
如果有需要,可以更改服务器的启动端口
这里我们不做更改,直接输入命令
./frps -c ./frps.ini
截图我改成6999端口,出现蓝色字样即启动成功
被连接端(Windows10专业版)
1、首先允许远程桌面连接,具体操作可以自行搜索
(win10下进入到设置->系统->远程桌面开启即可,注意Windows10专业版才有的选项)
2、同样先解压,打开frpc.ini,
其中
server_addr,server_port为服务端的IP地址和端口
可以看到FRP默认配置了SSH端口,即不修改的话通过访问服务端6000端口可以SSH到内网电脑,下面我们修改为
其中
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
可以看多了一个UDP端口,重启服务器
因为是直连,所以连接双方都要有frp
其中控制端frpc.ini文件如下:
启动服务,出现类似字样
服务端会出现类似字样
被控制端frpc.ini文件如下:
启动服务,出现类似字样
服务端出现类似字样
现在,在远程连接的时候输入localhost:6999就能点对点访问服务器了
FRP的功能不仅仅只有内网穿透,
以后有机会还会介绍FPR更多相关的功能