Using FRP for Windows Remote Desktop

最近实验室出于“敏感原因”,禁掉了包括Teamviewer以及花生壳在内的大部分远程软件,直接导致无法在实验室外连接实验室内的电脑,大大缩短了科研人员的科研时间,基于以上原因,撰写本教程,帮助大家配置内网穿透以及远程桌面。

目录:

  1. 服务器、客户端准备
  2. 服务器及客户端FRP配置
  3. 如何进行远程桌面

 服务器、客户端准备

首先,需要准备一台服务器,这里推荐阿里云轻量应用服务器的学生优惠机,9.5元/月, 十分划算。预装环境选择系统镜像-CentOS 7.3/Ubuntu 16.04,购买成功后,进入服务 器控制台,机器分配好后,会提供一个固定IP,如下图所示:

之后,准备客户端,也就是你需要被远程的电脑,这里以Windows 10电脑为例,需要完成以下事情:

1. 打开本机远程控制

控制面板-系统-远程设置-勾选允许连接到此计算机,如下图所示:

  1. 添加端口3389到出站规则

控制面板-Windows Defender 防火墙-高级设置-新建规则-端口-TCP-特定远程端口。具 体过程如下图所示:

3. 关闭Windows Defender 防火墙

控制面板-Windows Defender 防火墙

服务器及客户端FRP配置

什么是FRP

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

服务器FRP配置

首先,在服务器端依次执行以下指令下载并解压FRP安装包:

# 下载安装包
wget https://github.com/fatedier/frp/releases/download/v0.34.1/frp_0.34.1_linux_amd64.tar.gz

# 解压安装包文件
tar -zxvf frp_0.34.1_linux_amd64.tar.gz

完成解压后,通过cd命令进入指定文件夹,并删除客户端相关的文件

# 进入文件夹
cd frp_0.34.1_linux_amd64.tar.gz
# 删除文件
rm -f frpc
rm -f frpc.ini

之后,使用vim编辑服务器配置文件frps.ini。这里直接贴出我的配置文件,其中bind_port为服务器入站端口,dashboard系列为配置服 务端面板登录,可以通过访问your_server_ip:7500 来检查各端口使用情况。token相当于 客户端连接服务端的通关密码,http_proxy那一段代码则为设置通过代理连接frps。

[common]
bind_port = 7000
dashboard_user = admin
dashboard_password = admin
dashboard_port = 7500 

token = hunt1ey2 

[http_proxy]

type = tcp remote_port = 8010 plugin = http_proxy

配置好后,可以通过./frps -c frps.ini 启动FRP服务,可配合nohup达到服务器后台静默运行的需求。需注意,如使用阿里云服务器,需要在服务器安全设置中,添加所有使用的端口,如下所示:

客户端FRP配置

类似的方法下载FRP并解压,修改客户端配置文件frpc.ini,这里依然贴出我的配置文件供 大家参考。

[common] 
server_addr = 39.96.XX.XX 
server_port = 7000 
token = hunt1ey2 

[hunt1ey2]

type = tcp local_ip = 127.0.0.1 # 必须使用3389端口,这是远程桌面使用的端口 local_port = 3389 # 这是外网访问的端口 remote_port = 6000 # 使用加密,避免被发现 use_encryption = true # 设置socks5链接

[socks5]

type = tcp remote_port = 8010 plugin = socks5

由于frpc.exe需要有命令行启动,使用命令行cd到当前文件夹,使用命令frpc.exe -c frpc.ini 启动客户端服务。至此,所有配置工作已经完成,可以开始使用外网电脑远程控制内网电脑了。

如何进行远程桌面

以Windows为例,选择远程桌面连接,计算机选择your_server_ip:6000 就可以连接了。