赞
踩
《参考地址》
fatedier/frp是一款开源的主要使用Go语言开发的内网穿透工具。主要分为服务端(frps)和客户端(frpc)。
简单理解:服务端(frps)就是部署到公网ip服务器提供给客户端(frpc)调用的,服务端(frps)可以理解为我们微服务当中的注册与服务发现中心,即:Eureka、Nacos、ZooKeeper。客户端(frpc)就是我们需要注册到注册与服务发现中心的SpringBoot项目或者其它项目等。
作用:通过公网IP:PORT调用我们内网的项目、远程桌面、代理服务器、通过代理服务器把数据存储到本地服务器等。
条件:需要一台公网IP的云服务器。
以下命令默认以root用户执行,如果不是root用户,请在前面加sudo再执行命令。
《下载对应操作系统的压缩包》
如:centos76位操作系统,则下载:frp_0.51.3_linux_amd64.tar.gz
不确定是多少位操作系统的,用以下命令查看
uname -a
Linux VM-8-4-centos 3.10.0.1.el7.x64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x64 GNU/Linux
如果Linux服务器下载速度慢,也可以先下载到本地,通过文件上传到Linux服务器。
命令
wget [URL] -P [路径]
创建/data/download并把文件下载到目录下
mkdir -p /data/download
wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz -P /data/download
命令
tar -xvf 文件名.tar -C 目标路径
解压到data目录下并改名位frp
tar -zxvf /data/download/frp_0.51.3_linux_amd64.tar.gz -C /data/
mv /data/download/frp_0.51.3_linux_amd64 /data/frp
cd /data/frp/ && ll
只保留以下几个文件,其它可以删掉。
vi /data/frp/frps.ini
[common] # frp监听的端口,默认是7000(无特殊要求可以不改,这个必须开放对应端口。云服务器一般在对应的云控制台开放端口,默认的Linux服务器的防火墙是关闭的,如果有防火墙,那么防火墙也要开放相应的端口。) bind_port = 7000 # 临时凭证,越复杂越好。推荐使用2个去除-的UUID。 token = UUID # frp管理后台端口,默认7500(无特殊要求可以不改,这个可以不用开放端口。) dashboard_port = 7500 # frp管理后台用户名和密码 dashboard_user = admin dashboard_pwd = admin enable_prometheus = true # frp日志配置 log_file = /var/log/frps.log # 日志级别 log_level = error # 日志保存天数 log_max_days = 2
因为frps没用后台启动命令,因此我们自己编写一个。
vi /lib/systemd/system/frps.service
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#ExecStartf分别对应frps的安装路径和配置文件路径
ExecStart=/data/frp/frps -c /data/frp/frps.ini
[Install]
WantedBy=multi-user.target
启动并设置开机启动
systemctl start frps && systemctl enable frps
停止
systemctl stop frps
重启
systemctl restart frps
查看是否启动成功
systemctl status frps
如果无法连接到服务端,请检查防火墙是否开启。
下载前面图片上的Windows压缩包即可。
如:Windows10 64位操作系统,则下载:frp_0.51.3_windows_amd64.zip进行解压。如果下载速度慢,可以使用第三方下载工具,如:迅雷、IDM等。
解压到D:/software/frp,也可以是其它位置。保留frpc相关文件,删除frps相关文件。
[common] # 公网IP地址 server_addr = x.x.x.x # 默认是7000 server_port = 7000 # 临时凭证(必须跟上面frps服务端token一致) token = UUID #登录失败退出 login_fail_exit = false #自定义客户端服务别名 [springboot] # 请求类型 type = tcp #本地ip地址 local_ip = 127.0.0.1 #本地映射端口号 local_port = 8081 #服务端映射端口号(这里只是演示,所以用80,而且80也是默认是开放的。) remote_port = 80
在frp目录下新建frpc.bat启动脚本
@echo off
REM 延迟10秒启动,防止网络驱动没有启动好导致启动失败。
ping 127.1 -n 10 > nul
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM 进入到frp目录下,启动frpc并指定配置文件
cd D:/software/frp
frpc -c frpc.ini
exit
双击frpc.bat启动客户端frpc,然后打开任务管理器查看用户对应的应用列表,看看是否有frpc.exe
WIN + R输入
shell:startup
把frpc.bat文件快捷方式文件复制到Start Menu\Programs\Startup目录下(注意:是复制快捷方式,不要复制源文件!否则可能会无法启动!)
浏览器访问:公网IP:port/hi
WinSW和上面的开机启动只需要一种即可。
《GitHub WinSW地址》
把下载的WinSW放到frp目录下
新建winsw.xml
<service> <!-- 应用ID唯一 --> <id>frpc</id> <!-- 应用名称 --> <name>frpc</name> <!-- 应用描述 --> <description>frp客户端</description> <!-- 执行命令 --> <executable>frpc</executable> <!-- 执行命令后面追加的参数 --> <arguments>-c frpc.ini</arguments> <!-- 第1次启动失败的操作,delay启动失败重试间隔时间 --> <onfailure action="restart" delay="10 sec"/> <!-- 第2次启动失败的操作,delay启动失败重试间隔时间 --> <onfailure action="restart" delay="10 sec"/> <!-- 记录日志 --> <log mode="none"/> </service>
Win + S输入cmd,然后以管理员的身份运行命令提示符进入到frp目录下
安装frpc服务
winsw install
启动frpc服务
winsw start
停止frpc服务
winsw stop
卸载frpc服务
winsw uninstall
xml当中有些操作可能无法实现,如:
<onfailure action="reboot" />
我们要手动去服务设置
Win + S输入“计算机管理”
右键自己创建的frpc服务=》属性
第三次失败改成重新启动计算机,因为有的时候我们的计算机可能是因为其它问题导致frpc无法使用,所以可以重启计算机让所有服务重新启动。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。