在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
如果上面除了其他的提示,没有别的,我们可以试着通过IP加端口进行访问,如果不知道自己的端口的,可以看看【Frps服务端配置】中的dashboard_port端口号,在浏览器中打开我们可以看到以下:
此时我们输入之前设置的dashboard_user和dashboard_pwd的账号和密码用于登录,登录之后,我们可以看到可视化界面(该界面不支持配置之类的操作,由于我们是本地访问,只能是127.0.0.1或者localhost加端口进行访问)
能看到界面,则说明我们的配置是正确的,那么,当我们关闭了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说明我们已经配置成功:
后台自启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来安装我们的服务,看到这里说明我们配置没问题。
配置没问题,我们就通过winsw start来启动我们的服务,一切正常,这时候,我们可以关闭DOS或者通过其他的命令来查看状态。
怎么查看我们是否正在后台运行呢?我们可以通过Ctrl+alt+delete组合键到任务管理器中点击服务,我们可以看到我们运行的FRPs已经在运行了,至此,我们后台运行配置已经到此结束,Frpc客户端可以通过这个步骤修改,将Frps替换成frpc即可,注意ID不能重复。