• frps内网穿透


    1 原理讲解

    请添加图片描述

    frp工作原理

    1. 服务端运行,监听一个主端口,等待客户端的连接; 客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
    2. 服务端fork新的进程监听客户端指定的端口; 外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
    3. 客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。

    2 frps软件准备

    云端服务器和本地下载frps

    wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
    
    • 1

    3 云服务器(公网IP)准备

    1)配置文件

    修改 frps.ini 配置文件
    示例:

    [common]
    # frp服务端口
    bind_port = 7000
    # 用户连接时的url端口
    vhost_http_port = 10000
    # 主域名 通过此域名连接(也可用公网IP)
    subdomain_host = test.com
    # 管理台
    dashboard_port = 7500
    dashboard_user = admin   # 账户
    dashboard_pwd = admin123 # 密码
    max_pool_count = 10
    # 日志文件位置及名字
    log_file = ./frps.log
    # 日志级别
    log_level = info
    # 日志最多记录天数
    log_max_days = 3
    # token 客户端token需要与此一致
    token = testtoken
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2)端口放行

    步骤3自定义配置好了后

    放行frp服务端口(步骤三的 bind_port = 7000)

    放行自定义访问端口(步骤三的 vhost_http_port = 10000)

    3)启动frp服务

    先切换到frp的根目录

    再用命令 ./frps -c ./frps.ini 启动服务

    (上面是相对路径,也可不切换路径,直接在启动命令中用绝对路径)

    此种方式启动服务后不能关闭命令窗口,命令窗口关闭后服务也会关闭

    挂后台方式参考 步骤13

    在这里插入图片描述

    4. 服务器(动态IP)准备

    2.2、客户端配置

    1、下载frp库
    https://github.com/fatedier/frp/releases/download
    
    • 1

    选择对应版本下载

    2、解压frp压缩包

    tar -zxvf frp_0.33.0_linux_amd64.tar.gz

    3、进入该解压目录:
    cd frp_0.33.0_linux_amd64/
    
    • 1

    并打开配置文件:

    vi frpc.ini  (注意哦,不是frps.ini)
    
    • 1

    将文件内容修改为如下:

    # 客户端配置
    # 心跳维持
    [common]   
    # 与subdomain_host保持一致
    server_addr = test.com
    # 与bind_port 保持一致
    server_port = 7000 
    token = testtoken
    
    # 配置ssh服务
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
     # 这个自定义,之后再ssh连接的时候要用
    remote_port = 6000 
    
     # 端口映射
    [frp] 
    type = http
    local_ip = localhost
    local_port = 8080
    # 自定义的远程服务器端口,例如8080   即本地8080→云服务器8080
    remote_port = 8080 
    # subdomain = frp  # 与custom_domains 保持一致
    custom_domains =  test.com
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    修改后如下图:

    在这里插入图片描述
    注意:[ssh]、[frp]这样的名称必须全局唯一,即就算有多个客户端,也只能使用一次,其他的可以用[ssh2]、[ssh3]等;意思就是说,如果你要配置多个客户端,必须将另外的客户端的[ssh]改为[ssh2]、[ssh3]等,并且remote_port也要变,比如6002,6003等

  • 相关阅读:
    [前端框架]-VUE(上篇)
    Centos7安装Redis7.x最新稳定版|配置开机启动(骨灰级|保姆级)
    TikTok视频播放量低,是被限流了吗?
    深度学习数据集—文本、数字、文字识别大合集
    【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 17 日论文合集)
    Java---数据库---MyBatisPlus
    什么时候用Goroutine?什么时候用Channel?
    【MATLAB】(高数)
    手机投屏到笔记本电脑小方法
    JavaScript 的常量和变量
  • 原文地址:https://blog.csdn.net/weixin_43794095/article/details/128073060