Frp 使用

frp 使用

简介

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。内网穿透工具有很多,其中 Frp (Fast Reverse Proxy) 是比较流行的一款。FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 http 和 https 协议提供了额外的支持。你可以粗略理解它是一个中转站,帮你实现 公网 ←→ FRP(服务器) ←→ 家庭内网 的连接,让内网里的设备也可以被公网访问到。
frp Github 地址

服务器端配置

Linux 安装脚本

export FRP_VERSION=0.32.1
sudo mkdir -p /etc/frp
cd /etc/frp
sudo wget "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz"
sudo tar xzvf frp_${FRP_VERSION}_linux_amd64.tar.gz
sudo mv frp_${FRP_VERSION}_linux_amd64/* /etc/frp
  • 其中,第一行等号后面的 0.32.1 是 frp 的版本号 (截稿为止最新版本)。你安装的时候可以到官网查看下有没更新的版本,只需将新版本的号码替换掉 0.32.1 即可。
  • FRP 默认提供了 2 个服务端配置文件,一个是简化版的 frps.ini,另一个是完整版的
    frps_full.ini。初学者只需用简版配置即可,在简版 frps.ini 配置文件里,默认设置了监听端口为 7000,你可以按需修改它。

防火墙和安全组开放指定的端口:

请一定要记住,你需要将服务器的系统防火墙,以及阿里云、腾讯云后台里找到“安全组策略”的相关配置,设置 7000 或你修改过的对应端口的「允许入站和出站」,否则会一直连接不上的哦!!!这个切记!!

启动 FRP 服务端

./frps -c ./frps.ini

如服务器使用 Win 系统,假设解压到 c:\frp 文件夹,那么只需这样启动:

c:\frp\frps.exe -c c:\frp\frps.exe

配置 Frp 客户端 (安装在内网的机器上)

设置好服务器上 Frp 服务端后,我们就需要在内网的机器上安装 Frp 的客户端了。 Frp 的客户端程序 frpc (frpc.exe) 与服务器端都在同一个压缩包里, 我们同样下载对应系统版本的软件包。

你可以将 Frp 客户端安装在内网的 Windows 电脑、Linux 设备 (比如树莓派) 或者 NAS,甚至部分路由器等设备上。Linux 客户端的安装和启动与服务器端没有太多区别,只是对应运行程序是 frpc 而不是 frps。

为了简单起见,我们这里以 Windows 电脑来安装 Frp 客户端,因为 Frp 是绿色程序,下载软件包回来解压后,启动 frpc.exe 即可。

但在启动前,我们需要先修改配置文件,我们以配置“Windows 远程桌面控制”以及“群晖 NAS 管理界面”为例。假设你的 FRP 服务端所在的 VPS 公网 IP 为 1.2.3.4, 而客户端是 Win 电脑,我们来修改 frpc.ini 配置文件:

[common]
# server_addr 为 FRP 服务端 (VPS 服务器) 的公网 IP
server_addr = 1.2.3.4
server_port = 7000

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

[DSM]
type = tcp
local_ip = 192.168.1.40 #群晖 NAS 在局域网中的内网 IP
local_port = 5000
remote_port = 7001

[RDP]
type = tcp
local_ip = 192.168.1.30 #电脑在局域网中的内网 IP (如是本机,也可使用 127.0.0.1)
local_port = 3389
remote_port = 7002

这样就在本地上新增了“DSM”和“RDP”两个可供公网访问的服务了 (它们名称可以自己取),这里分别对应内网的群晖 NAS 的后台管理界面和 PC 远程桌面。如果你需要添加更多的设备和服务供外网访问,那么只需照样画葫芦,指定正确的 IP 地址和端口号即可。

注意放行端口

每个服务的 remote_port 是远程访问时要用到的端口号,注意这些端口号也要在服务器的防火墙和安全组里放行才能顺利访问的,如上面的 7001、7002。

启动 FRP 客户端:

假设你已将 Frp 的客户端解压缩到 c:\frp 目录中,那么启动 Frp 客户端的命令就是:

c:\frp\frpc.exe -c c:\frp\frpc.ini

Linux 启动 Frp 客户端命令:

./frpc -c ./frpc.ini

启动之后看到 “start proxy success”字样就表示启动成功了。

进行远程访问

前面搞了这么多,我们终于可以正式使用 Frp 内网穿透来进行远程访问内网里的设备了!按照上面的配置,我们想要访问群晖 NAS 的界面,只需打开浏览器,在地址栏输入 服务器公网IP:7001 即可访问到群晖后台管理界面。

而如果需要远程桌面连接到家里的 Windows 电脑,那么打开“微软远程桌面客户端”后,在地址栏里填入 服务器公网IP:7002 即可连接。

由此,借助 Frp,你就能轻松地为本地局域网内网的设备提供公网直接访问的能力了,你可以用 Frp 来转发包括但不限于 ssh、http、https、转发 Unix 域套接字等服务。

上面只是最基础的教程,Frp 还有很多很多高级功能,比如给 Web 增加密码保护、点对点内网穿透、设置端口白名单等等,Frp 官网上也提供了很详细的文档,感兴趣的朋友可以去研究一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
fre内网穿透只能穿透http协议,且页面大小限制在1496B以内(MTU,包含header头部) 包含函数如下: begin(char*,char*,char*,uint16,String,String);//设定参数信息,第一个参数是wifi名称,第二个参数是wifi密码,第三个参数是服务器地址,第四个参数是服务器端口,都五个参数是自定义域名密码,第六个参数是域名(多个域名以英文逗号分割) on(String,void);//页面以及回调函数,第一个参数是页面路径,第二个参数是回调函数 header(String,String);//设定header头部信息 sendfile();//发送默认的SPIFFS文件 sendfile(String);//发送指定的SPIFFS文件 send(int,string,string);//发送string,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的文本 send(int,string,uint8_t*,size_t);//发送uint8_t数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的uint8_t数组文件,第四个参数是uint8_t数组文件的大小 send(int,string,char*,size_t);//发送char数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的char数组文件,第四个参数是char数组文件的大小 Authenticate(String, String);//判断Auth鉴权信息,第一个参数是用户名,第二个参数是密码 requestAuthentication();//向页面返回鉴权需求,使页面弹出Auth鉴权登录信息 getheader(String);//返回header指定头部信息参数值 arg(String);//返回GET请求参数值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值