• fatedier/frp内网穿透详细安装及使用教程


    《参考地址》
    fatedier/frp是一款开源的主要使用Go语言开发的内网穿透工具。主要分为服务端(frps)和客户端(frpc)。
    简单理解:服务端(frps)就是部署到公网ip服务器提供给客户端(frpc)调用的,服务端(frps)可以理解为我们微服务当中的注册与服务发现中心,即:Eureka、Nacos、ZooKeeper。客户端(frpc)就是我们需要注册到注册与服务发现中心的SpringBoot项目或者其它项目等。
    作用:通过公网IP:PORT调用我们内网的项目、远程桌面、代理服务器、通过代理服务器把数据存储到本地服务器等。
    条件:需要一台公网IP的云服务器。

    以下命令默认以root用户执行,如果不是root用户,请在前面加sudo再执行命令。

    官网地址

    《fatedier/frp GitHub官网地址》

    公网服务器安装服务端(frps)

    《下载对应操作系统的压缩包》
    如:centos76位操作系统,则下载:frp_0.51.3_linux_amd64.tar.gz
    不确定是多少位操作系统的,用以下命令查看

    uname -a
    
    • 1

    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服务器通过wget命令直接下载

    如果Linux服务器下载速度慢,也可以先下载到本地,通过文件上传到Linux服务器。
    命令

    wget [URL] -P [路径]
    
    • 1

    创建/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
    
    • 1
    • 2

    解压

    命令

    tar -xvf 文件名.tar -C 目标路径
    
    • 1

    解压到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
    
    • 1
    • 2
    • 3

    只保留以下几个文件,其它可以删掉。
    在这里插入图片描述

    修改frps配置文件

    vi /data/frp/frps.ini
    
    • 1
    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    启动frps

    因为frps没用后台启动命令,因此我们自己编写一个。

    vi /lib/systemd/system/frps.service
    
    • 1
    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    启动并设置开机启动

    systemctl start frps && systemctl enable frps
    
    • 1

    停止

    systemctl stop frps
    
    • 1

    重启

    systemctl restart frps
    
    • 1

    查看是否启动成功

    systemctl status frps
    
    • 1

    在这里插入图片描述

    如果无法连接到服务端,请检查防火墙是否开启。

    Window安装客户端(frpc)

    下载前面图片上的Windows压缩包即可。
    如:Windows10 64位操作系统,则下载:frp_0.51.3_windows_amd64.zip进行解压。如果下载速度慢,可以使用第三方下载工具,如:迅雷、IDM等。

    解压

    解压到D:/software/frp,也可以是其它位置。保留frpc相关文件,删除frps相关文件。
    在这里插入图片描述

    修改frpc配置文件

    [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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    启动frpc

    在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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    双击frpc.bat启动客户端frpc,然后打开任务管理器查看用户对应的应用列表,看看是否有frpc.exe
    在这里插入图片描述

    设置开机启动客户端frpc(如果有WIFI智能插座开机,则可能不会开机启动,建议改成服务)

    WIN + R输入

    shell:startup
    
    • 1

    把frpc.bat文件快捷方式文件复制到Start Menu\Programs\Startup目录下(注意:是复制快捷方式,不要复制源文件!否则可能会无法启动!)
    在这里插入图片描述

    通过公网IP:代理port访问一个本地启动的Port为8081的SpringBoot项目

    在这里插入图片描述
    在这里插入图片描述
    浏览器访问:公网IP:port/hi
    在这里插入图片描述

    使用WinSW第三方工具设置开机启动

    WinSW和上面的开机启动只需要一种即可。
    《GitHub WinSW地址》
    在这里插入图片描述
    把下载的WinSW放到frp目录下
    在这里插入图片描述
    新建winsw.xml

    <service>
    	
    	<id>frpcid>
    	
    	<name>frpcname>
    	
    	<description>frp客户端description>
    	
    	<executable>frpcexecutable>
    	
    	<arguments>-c frpc.iniarguments>
    	
    	<onfailure action="restart"  delay="10 sec"/>
    	
    	<onfailure action="restart"  delay="10 sec"/>
    	
    	<log mode="none"/>
    service>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    Win + S输入cmd,然后以管理员的身份运行命令提示符进入到frp目录下
    安装frpc服务

    winsw install
    
    • 1

    启动frpc服务

    winsw start
    
    • 1

    停止frpc服务

    winsw stop
    
    • 1

    卸载frpc服务

    winsw uninstall
    
    • 1

    xml当中有些操作可能无法实现,如:

    "reboot" />
    
    • 1

    我们要手动去服务设置
    Win + S输入“计算机管理”
    在这里插入图片描述
    右键自己创建的frpc服务=》属性
    第三次失败改成重新启动计算机,因为有的时候我们的计算机可能是因为其它问题导致frpc无法使用,所以可以重启计算机让所有服务重新启动。
    在这里插入图片描述

  • 相关阅读:
    android studio 、JDK环境变量配置
    布隆过滤器原理及实现
    考研总计划(基础篇)
    干翻Dubbo系列第十五篇:Rest协议基于SpringBoot的规范化开发
    行人重识别reid
    element el-date-picker报错Prop being mutated:“placement“快速解决方式
    【图像融合】基于RP、CVT、DTCWT、NSCT-SR+DWT-SR+拉普拉斯金字塔算法-SR等实现MRT图像融合附matlab源码
    [ Linux ] 文件描述符和重定向
    Android 8.1实战隐藏状态栏图标的实例代码
    有哪些比较流行的 C、C++和Java 的入门级项目?
  • 原文地址:https://blog.csdn.net/weixin_43933728/article/details/132783275