当前位置:首页/归档/2024

在Windows系统上部署FRPS和FRPC客户端

2024-07-16 17:14:02 / 超级管理员 / 36441 浏览

什么是FRP

FRP(Fast Reverse Proxy)是一个开源、高性能的内网穿透和反向代理软件,支持多种协议,如TCP、UDP、HTTP和HTTPS。

FRP通过服务端(frps)和客户端(frpc)的配合实现内网穿透,使得外部网络能够访问到内网中的服务。服务端通常部署在具有公网IP地址的机器上,而客户端部署在内网需要穿透的服务所在的机器上。这种架构使得内网中的设备能够对外提供服务,而不需要直接暴露在公网上,从而提升了安全性和可访问性。

材料准备

  • Windows服务器(或者本地电脑)

  • FRP已编译好的执行文件(我这以frp_0.58.1_windows_amd64为操作例子)

  • winsw软件(主要用于FRPS和FRPC自启)

FRP和winsw文件可以到:https://store.lebai.cc/下载,操作步骤都是站在新手小白立场上编写,过程中有点啰嗦,还请谅解。

【注意】这里是在本地电脑上配置,如果是阿里云、腾讯云、华为云等云服务器,需要放行以下端口:7000、7001(可选)、7500以及frpc配置文件中的remotePort远程端口号。不放行端口号,你会发现不可描述的问题。

Frps服务端配置

下载好的文件我们配置Frps.toml文件,里头我们可以配置以下:

[common]#监听IP,如果是本地或者服务器,则默认0.0.0.0bind_addr = 0.0.0.0#监听端口,默认7000,frpc客户端 serverPort处填写bind_port = 7000#UDP 用于辅助客户端进行打洞穿透 NATbind_udp_port = 7001#KCP 协议的 UDP 端口,可与 TCP 端口相同kcp_bind_port = 7000#监控面板端口,用于IP或者域名访问(例如:127.0.0.1:7500),默认7500#监控面板,如果不需要可以删除dashboard相关的端口以及账号和密码dashboard_port = 7500#监控面板用户名dashboard_user = admin#监控面板密码dashboard_pwd = admin#记录日志等级,参数有:trace、debug、info、warn、errorlog_level = info#设定时间进行日志切割,单位:天log_max_days = 3#Token验证秘钥,frpc客户端auth.token中使用,密码不正确将无法连接服务器(frps)token = "admin"#最大连接池max_pool_count = 5#限制每个客户端最多创建的端口数量,设置为 0 表示不限制max_ports_per_client = 0#TCP多路复用,启用则使用true,关闭使用false,该配置项在服务端和客户端必须一致tcp_mux = true#日志颜色,仅使用控制台运行 frps 有效,启用:true,关闭falsedisable_log_color = false#日志路径,Windows需要带双引号(英文的),如果是Linux那么路径则是:/www/frps/frps.loglog_file = "frps.log"

我们常用的:bind_add、bind_port、token,其他的我不过多的详解,我都写好了注释。

运行Frps服务端

配置好Frps服务端的配置文件后,我们可以通过Win+R键输入CMD或者在frps文件目录路径框中输入CMD回车,我们可以看到DOS界面,输入:

Frps -c frps.toml

00dcb10d31594996.png

aae47d3150991195.png

如果上面除了其他的提示,没有别的,我们可以试着通过IP加端口进行访问,如果不知道自己的端口的,可以看看【Frps服务端配置】中的dashboard_port端口号,在浏览器中打开我们可以看到以下:

4273ca0c240e8fa1.png

此时我们输入之前设置的dashboard_user和dashboard_pwd的账号和密码用于登录,登录之后,我们可以看到可视化界面(该界面不支持配置之类的操作,由于我们是本地访问,只能是127.0.0.1或者localhost加端口进行访问)

59e47c70d3dc8ea2.png

能看到界面,则说明我们的配置是正确的,那么,当我们关闭了DOS界面,就没法正常访问了,那么我们就需要进行让他自启且后台运行,这块我放到最后,和Frpc一起配置。

Frpc客户端配置和运行

Frpc配置和Frps服务器端配置类似,同时也可以直接复制下面的配置,只需要将一些信息替换成自己的即可,例如:IP、端口号等

serverAddr = "127.0.0.1"   #服务器的IP地址或域名serverPort = 7000   #填写bind_port服务器端口auth.method = "token"   #服务端连接身份认证,默认tokenauth.token = "admin"   #服务端token密码,密码不正确将无法连接服务器transport.tls.enable = true   #是否和服务端之间启用TLS连接transport.tls.disableCustomTLSFirstByte = false#默认为true,当配置为true时,无法和vhostHTTPSPort端口复用[[proxies]]name = "rdp1"   #隧道名称,可自定义,不能重复(可写中文)type = "tcp"   #隧道类型,可用tcp, udp, http, https, tcpmux, stcp, sudp, xtcplocalIP = "127.0.0.3"   #本地IP地址,如果是本机就127.0.0.1localPort = 3306   #本地端口,本地服务端口remotePort = 5004    #远程端口,连接隧道时用的端口,这块的端口号是需要再云服务器里头放行的。transport.useEncryption = true   #传输加密,加密算法采用 aes-128-cfbtransport.useCompression = true   #传输压缩,压缩算法采用 snappy

配置好Frpc客户端的配置文件之后,我们按照配置Frps的方式通过DOS来启用映射,这里我就不过多的讲解了。

启用之后,我们回到Frps访问端口看我们启用的客户端,出现online说明我们已经配置成功:

c159cc39d9f9f79c.png

后台自启Frps服务端和Frpc客户端

后台自启Frps服务端和Frpc客户端,我们就需要借助第三方工具“winsw”,这里我以frps服务端为操作案例,客户端举一反三。我们在winsw.xml配置文件中配置以下信息:

<service>  <!-- 服务ID。它应该在整个Windows系统中是唯一的-->  <id>FRPs服务端</id>  <!-- 显示服务的名称,显示在任务管理器上的描述,服务中的名称 -->  <name>FRPs服务端,可用于内网映射到公网,供大家访问1</name>  <!-- 服务描述,显示在服务上的描述 -->  <description>FRPs服务端,可用于内网映射到公网,供大家访问</description>    <!-- 应该启动的可执行文件的路径 -->  <executable>frps</executable>  <arguments>-c frps.toml</arguments>  <onfailure action="restart" delay="60 sec"/>  <onfailure action="restart" delay="120 sec"/>  <logmode>reset</logmode></service>

命令说明:


命令描述说明
install安装服务
uninstall卸载服务
start启动服务
stop停止服务
restart停止,然后启动服务
status检查服务状态
refresh在不重新安装的情况下刷新服务属性
customize自定义包装可执行文件


  • 通过CMD进入到Frps目录(便于执行和操作,我将winsw和配置文件都放在Frps同目录下),我们输入:winsw install来安装我们的服务,看到这里说明我们配置没问题。

b8657645bc4e0a91.png

  • 配置没问题,我们就通过winsw start来启动我们的服务,一切正常,这时候,我们可以关闭DOS或者通过其他的命令来查看状态。 01be2a9c9d8696f2.png

  • 怎么查看我们是否正在后台运行呢?我们可以通过Ctrl+alt+delete组合键到任务管理器中点击服务,我们可以看到我们运行的FRPs已经在运行了,至此,我们后台运行配置已经到此结束,Frpc客户端可以通过这个步骤修改,将Frps替换成frpc即可,注意ID不能重复。


    fbb479d3dfea7302.png