【简单易懂】开源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” 的服务了,选择自动就会开机自启。