【简单易懂】开源FRP(内网穿透)工具配置教程 以转发3389实现外网远程桌面为例

不说闲话。如果不明白什么是内网穿透就百度百科:内网穿透_百度百科 (baidu.com)

总之就是帮你把局域网的电脑转发出来,转发的可以是数据库端口,也可以是远程桌面端口。

 

第一步:

准备一个公网云服务器,阿里腾讯百度都可以,我对阿里没什么好感所以用的腾讯云。

可以是Linux也可以是Windows,一般情况下是用Ubuntu。(我一直不喜欢CentOS)

登入用户并下载可执行文件包:

wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz

以上命令仅为示例,实际Get的可执行文件包可能根据更新迭代、硬件环境有所变动。如果你的服务器是ARM则就需要Get ARM的包。

建议先访问:Releases · fatedier/frp · GitHub 查看FRP更新情况。

解压并重命名:

tar -xzf frp_0.37.0_linux_amd64.tar.gz
mv frp_0.37.0_linux_amd64 frp37

 

第二步:

修改服务端 FRP 配置文件:

cd frp37
vim frps.ini

vim 打开后可以看到以下内容:

[common]
bind_port = 7000

默认端口为 7000,不过几乎没有人会用默认的。同时为了安全,务必修改端口号并增加Token

[common]
bind_port = 7370


dashboard_user = admin
dashboard_pwd = demopwd123
dashboard_port = 7470


authentication_method = token
token = demotoken123456789

配置项详解:

bind_port 绑定端口号,给客户端访问的端口号
dashboard_user 管理员用户名
dashboard_pwd 管理员用户密码
dashboard_port 管理员端口 在web浏览器中登录,例如 http://123.124.125.126:7470
authentication_method 验证方式 一般使用 token
token 客户端登陆服务端所需要的token码,两边要一致。(废话)

第三步:

在服务器防火墙中放行服务端端口。例如你定义的端口号是7370,管理端口是7470,就要在云控制台当中的防火墙设置将这两个端口允许访问。

协议TCP,策略允许。稍后也要放行客户端映射过来的端口,否则外网只能访问FRP服务,不能访问FRP映射的客户端端口。

(小白不要觉得这里没有代码就可以跳过,少哪一步都不行!)

 

第四步:

在服务器上开启FRP服务并挂起。

登录服务器打开终端,找到你配置FRP的目录:

ls
cd frp37
screen -S frp
./frps -c ./frps.ini

命令行解析:

screen -S 新建终端 该终端在关闭后仍然执行

 到此服务端工作完成,但如果业务化使用务必将FRP注册为服务且添加守护。

 

第五步:客户端工作开始

首先假设你的云服务器地址为 123.124.125.126

我们以转发Windows远程桌面3389端口为例 

到 Releases · fatedier/frp · GitHub 下载 frp_0.37.0_windows_amd64.zip (具体哪个版本看自己需求,不要说啥就是啥)

解压进入目录,打开目录当中的 'frpc.ini' 这个配置文件,可以看到默认是这样的:

[common]
server_addr = 127.0.0.1
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

这时我们就要进行修改: 

[common]
server_addr = 123.124.125.126
server_port = 7370
token = demotoken123456789

[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 9550

命令行详解:

[common] 总配置
server_addr 提供FRP服务的外网服务器地址 就是你申请的云服务器公网地址
server_port 提供FRP服务的外网服务器端口 就是你刚刚配置的 bind_port
token 对应的token,服务端和客户端要一致
[RDP] 子配置名称根据自己实际情况随意,例如数据库就是[SQL],桌面就是[RDP]
type 协议类型
local_ip 本机IP,可以在网卡配置或路由器当中查看
local_port 要转发的本机端口,我们是远程桌面所以就是3389,SQLServer就是1433
remote_port 远程端口,供外网设备连接的端口,根据自己想法设置

第六步:

云服务器防火墙当中放行刚刚在客户机上设置的 remote_port 。

刚才设置的是9550,就允许连接9550。

放行后可以在客户机进入FRP客户端目录上打开Powershell运行看一下效果了:

 

./frpc.exe -c ./frpc.ini

 

在你的 iPad 上安装 Microsoft远程桌面,输入你的云服务器地址+转发端口号,也就是:

123.124.125.126:9550 (仅为演示)

连接输入凭据看下是否可以登录。

注意:Windows 需要是专业版以上SKU才会有远程桌面功能(也就是家庭版不行,除非有手段)。需要在计算机属性高级系统设置当中开启远程桌面访问。

同时为了安全,本机用户账户务必使用Microsoft在线账户登录并且开启“仅允许运行使用网络级别身份验证的远程桌面”。

【【【【RDP勒索病毒非常泛滥!】】】

开启以上设置,登录名就是你的Microsoft账户邮箱,密码就是Microsoft账户密码。

 

第七步:

包装客户机的FRPC客户端为Windows服务

下载工具:WinSW Releases · winsw/winsw · GitHub

将 winsw.exe 复制到 FRPC 客户端目录重命名为:FRP.Clinet.SW.exe。

同时新建文件 "FRP.Clinet.SW.xml" ,文件名必须和exe名字一样。

内容:

<service>
  <id>CloudServer.FRP.Client</id>
  <name>CloudServer FRP Client Service</name>
  <description>CloudServer FRP Client Service</description>
  <executable>frpc</executable>
  <arguments>-c frpc.ini</arguments>
  <logmode>reset</logmode>
  <startmode>Automatic</startmode>
</service>

然后在当前FRP客户端目录以管理员权限打开 Powersehll 执行安装:

.\FRP.Client.SW.exe install

然后就可以在 Windows 服务中看到一个叫 “CloudServer FRP Client Service” 的服务了,选择自动就会开机自启。

 

 

 

 

 

 

 

posted @ 2021-07-23 02:55  芯片烤电池  阅读(2587)  评论(0编辑  收藏  举报