Linux下配置frp实现Windows远程桌面连接

作者:Grey

原文地址:Linux下配置frp实现Windows远程桌面连接

需要准备一台公网IP的Linux服务器

安装

1
2
sudo apt-get update
sudo apt-get upgrade

依次执行以下四条命令

1
2
3
sudo wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh
sudo chmod 700 ./install-frps.sh
sudo ./install-frps.sh install

此时,会弹出配置的信息,全部用默认配置,最后我生成的配置信息如下
image.png
进入frps的安装目录,我的目录是:/usr/local/frps下,如果你不知道目录在哪里,可以执行以下命令:

1
whereis frps

在/usr/local/frps目录下,先备份frps.ini 脚本

1
2
cd /usr/local/frps
sudo cp frps.ini frps.ini.backup

编辑frps.ini文件
增加如下内容:

1
2
3
[rdp]
type = tcp
custom_domains = xxx.xxx.xxx.xxx

其中的xxx.xxx.xxx.xxx修改为你的Linux服务器的公网ip地址

然后重启frps服务

1
sudo frps restart

然后配置你需要远程的电脑,首先,你需要下载一个版本和服务器上安装的frps版本一致的frps客户端安装包:
首先查看一下服务器的frps版本

1
2
ubuntu@VM-0-16-ubuntu:/usr/local/frps$ frps -v
Frps version 0.33.0

在:https://github.com/fatedier/frp/releases 中选对应的包即可,因为我需要远程的是Windows系统,所以我选择了frp_0.33.0_windows_amd64.zip这个安装包

解压到Windows系统自定义一个目录即可,我的放在C:\frp目录下
在C:\frp目录下
复制一份frpc.ini为frpc.ini.backup
编辑C:\frp\frpc.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[common]
# xxx.xxx.xxx.xxx 替换成你的Linux服务器的公网IP
server_addr = xxx.xxx.xxx.xxx
server_port = 5443
# 这个和上面设置的服务端key要一样
token = xxxxxxxx
[rdp]
#远程连接TCP类型
type = tcp
#本机的IP地址
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3390
# xxx.xxx.xxx.xxx替换成你的Linux服务器的公网IP
custom_domains = xxx.xxx.xxx.xxx

以上配置信息可以参考之前在Linux上安装frps后的配置信息填写

因为我们remote_port设置的是3390,所以在Linux服务端需要打开3390的防火墙权限,具体命令如下

  1. 安装iptables
1
sudo apt-get install iptables
  1. 添加规则

在终端输入

1
sudo iptables -I INPUT -p tcp --dport 3390 -j ACCEPT

中间的3390为所需要开放的端口

  1. 保存规则 
1
sudo iptables-save

完成上述命令我们就完成了开放指定的端口,但是如果此时服务器重启,上述规则就没有了,所以我们需要对规则进行一下持续化操作

这里我们需要在安装一下工具来帮我们实现,这里我们使用 iptables-persistent

  1. 安装iptables-persistent
1
sudo apt-get install iptables-persistent
  1. 持久化规则
1
2
sudo netfilter-persistent save
sudo netfilter-persistent reload

完成上述操作就可以永久打开我们需要的端口了

Windows的远程桌面需要启用,Windows10的配置如下,其余版本的Windows可以自行百度配置
image.png

Windows下,在frp目录下(我的目录在C:\frp)打开命令行窗口,执行:frpc.exe
image.png
出现以上信息,即可
找到另外一台可以联网的Windows机器,
打开远程桌面:Win+R,输入:mstsc
输入:Linux的公网ip:3390
输入用户名、密码
即可远程连接到这个Windows机器上了。

Mac/iPhone/iPad上也有Window远程桌面这个App,也可以通过这个App进行远程操作。

更多地

我们可以在Windows上把frpc.exe注册成服务,并且开机启动,这样就不需要每次远程的时候,都要命令行启动frpc.exe
具体操作如下:
下载nssm
http://nssm.cc/download 并解压
解压后如下:
image.png
找到自己Windows对应的版本,我的是64位,所以选择win64下的nssm.exe,将这个exe复制到frp目录下,我的frp目录是:C:/frp下,

然后在frp目录下,(以管理员身份)打开控制台,执行:nssm install frpc
image.png
如上图操作后,打开windows的服务
image.png
frpc服务即可做到开机启动。