• frp实现内网穿透


    前言

    公司的一个项目部署在本地服务器,并且需要通过外网访问。于是我们将系统部署本地服务器后,借助阿里云服务器的公网IP和frp程序,实现内网穿透功能。
    将frp服务端部署在阿里云服务器,将frp客户端部署在本地服务器。
    
    • 1
    • 2

    下载frp

    github上下载frp
    在这里插入图片描述
    阿里云服务器是linux系统,本地服务器是windows系统,根据操作系统下载不同的压缩包。
    压缩包解压后,里面会有如下文件
    在这里插入图片描述
    其中名字里有“frps”为服务器端文件,名字里有“frpc”为客户端文件。根据需要保留删除文件。

    服务器端部署

    安装包解压

    云服务器部署了宝塔,所以直接将文件上传到指定目录并解压,不需要使用命令解压。

    在这里插入图片描述

    修改配置

    编辑frps.ini文件

    [common]
    bind_port = 7000
    token = hzx980910
    
    • 1
    • 2
    • 3

    bind_port 为服务端端口
    token为客户端连接时的token认证,随意设置,与后面frpc.ini中设置为相同值即可

    云服务器安全规则开放端口

    还需要在云服务器中配置安全组规则,开放7000端口
    在这里插入图片描述

    启动frp服务端
    cd /www/wwwroot/frpServer/frp_0.51.3_linux_amd64
    ./frps -c frps.ini
    
    • 1
    • 2

    如果是后台运行

    nohup ./frps -c frps.ini
    
    • 1

    客户端部署

    安装包解压

    在这里插入图片描述

    修改配置

    修改frpc.ini文件

    [common]
    tls_enable = true
    server_addr = 106.15.73.222
    server_port = 7000
    token = hzx980910
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 15053
    remote_port = 15053
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    tls_enable 必须设置,不然运行frpc的时候会报错login to server failed: EOF
    server_addr 服务器的公网服务器ip
    server_port 与服务端bind_port一致
    token 客户端连接时的token认证,随意设置,与前面frps.ini中设置为相同值即可
    
    • 1
    • 2
    • 3
    • 4
    ssh中配置后台系统信息
    local_port 本地的服务端口号
    remote_port 公网中对应此服务的端口号,可以随意设置,只要是前面阿里云服务器里开放的端口即可
    
    • 1
    • 2
    • 3

    remote_port 需要在云服务器的安全组规则中开放

    启动frp客户端

    在这里插入图片描述
    在这里插入图片描述
    启动成功后看一下服务端
    在这里插入图片描述
    windows防火墙可能会将frpc.exe判定为危险文件,需要在防火墙中设置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如果在这一步中,系统提示“文件包含病毒或潜在的垃圾软件”,则需要在设置中将该文件加入白名单。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    病毒和威胁保护设置
    在这里插入图片描述
    在这里插入图片描述

    多个客户端配置

    当本地服务器部署了多个项目,每个项目有不同的端口,都需要进行内网穿透,则需要修改frpc.ini文件

    [common]
    tls_enable = true
    server_addr = 106.15.73.222
    server_port = 7000
    token = hzx980910
    
    [ssh1]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 8187
    remote_port = 8187
    
    [ssh2]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 8189
    remote_port = 8189
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    web端配置

    同样需要在frpc.ini中配置

    [web]
    type = http
    local_port = 8080
    custom_domains = 106.15.73.222
    
    • 1
    • 2
    • 3
    • 4

    在[web]中配置本地需要穿透的web服务的端口号,这里是8080,即local_port = 8080;此外,还需配置外网访问的域名custom_domains,这里一般是解析到服务端服务器公网IP的域名,但由于没有域名,这里直接配置成服务端公网IP,访问时直接通过IP访问。

  • 相关阅读:
    【Python】一个矩阵根据某一列选择大于或小于范围的数据
    83.(cesium之家)cesium示例如何运行
    JavaWeb进阶案例-实现AJAX+Sevlet前后端分离开发
    Python写一个ERP系统和agent智能体协同仓库和订单的案例
    脚手架工程使用ElementUI
    如何入门 AI----如何确定学习目标
    『互联网架构』kafka集群搭建和使用
    伯俊ERP与金蝶云星空对接集成表头表体组合查询连通分布式调出单新增(调拨出库对接分布式调出(KD调拨)6月)
    【MATLAB图像处理实用案例详解(12)】——基于纹理特征的指纹识别方法
    【东华医为的实习与卫宁的入职工作】
  • 原文地址:https://blog.csdn.net/qq_41841482/article/details/132758132