突破网络屏障:掌握FRP内网穿透技术

作者 : admin 本文共1745个字,预计阅读时间需要5分钟 发布时间: 2024-06-10 共2人阅读

1.FRP介绍

1.frp是什么

frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

2.为什么选择frp

通过在具有公网 IP 的节点上部署 frp 服务端,您可以轻松地将内网服务穿透到公网,并享受以下专业特性:
多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。
TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。
代理组间的负载均衡。
端口复用:多个服务可以通过同一个服务端端口暴露。
P2P 通信:流量不必经过服务器中转,充分利用带宽资源。
客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。
服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。
用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便。

2.搭建步骤

搭建FRP(Fast Reverse Proxy)内网穿透服务器可以让你在外网访问处于内网中的设备或服务。
下面是详细的步骤:

1.准备工作

  1. 准备一台具有公网IP的服务器:这是用来部署FRP服务端的。
  2. 内网设备:这是你需要穿透的内网设备,安装FRP客户端。

2.安装和配置FRP服务端

  1. 下载FRP
    访问FRP的GitHub页面,下载最新版本的FRP。
    这里需要根据你云服务器的架构来确定选择下载哪一种FRP二进制文件,具体可以登录进入云服务器,输入命令:

    uname -m
    

    然后根据输出结果选择合适的FRP版本:
    x86_64 则选择amd64版本
    突破网络屏障:掌握FRP内网穿透技术插图
    armv7laarch64 则选择arm64版本

  2. 解压文件
    假设你下载的是amd64版本的,具体解压命令如下所示:

    tar -zxvf frp_0.58.1_linux_amd64.tar.gz
    cd frp_0.58.1_linux_amd64
    
  3. 配置FRP服务端(frps.ini)
    在解压目录下,创建或编辑frps.toml文件:

    bindPort = 7000
    
  4. 运行FRP服务端

    ./frps -c frps.toml
    

    如果想以后台的方式运行frp服务器,则可以输入命令:

    nohup ./frps -c frps.toml >frps.log 2>&1 &
    
  5. 查看运行效果
    突破网络屏障:掌握FRP内网穿透技术插图(1)

3.安装和配置FRP客户端

  1. 下载FRP
    访问FRP的GitHub页面,下载最新版本的FRP。

  2. 解压文件

    tar -zxvf frp_0.58.1_linux_amd64.tar.gz
    cd frp_0.58.1_linux_amd64
    
  3. 配置FRP客户端(frpc.ini)
    在解压目录下,创建或编辑frpc.toml文件,根据你的需求进行配置。以下是一个简单的示例,用于内网穿透:

    serverAddr = "x.x.x.x"
    serverPort = 7000
    
    [[proxies]]
    name = "ssh"
    type = "tcp"
    localIP = "127.0.0.1"
    localPort = 22
    remotePort = 6000
    

    localIP localPort配置为需要从公网访问的内网服务的地址和端口
    serverAddr就是你的公网服务器的IP地址。
    remotePort 表示在 frp 服务端监听的端口,访问此端口的流量将被转发到本地服务的相应端口。
    这里需要注意,客户端配置的remotePort端口需要在云服务器上开放相应的端口,否则启动客户端后是无法连接成功的。

  4. 运行FRP客户端

    ./frpc -c frpc.toml
    

    同样的,如果想以后台的方式运行,输入以下命令即可:

    nohup ./frpc -c frpc.toml >frpc.log 2>&1 &
    

4.访问内网机器

内网穿透成功后,使用以下命令即可以通过SSH访问内网机器,假设用户名为root:

ssh -o Port=6000 root@x.x.x.x

frp 将请求发送到 x.x.x.x:6000 的流量转发到内网机器的 22 端口

5.参考链接

  • FRP GitHub仓库
  • FRP文档
  • FRP中文文档

这样,你就成功搭建了一个FRP内网穿透服务器。
根据你的需求,你可以进一步配置和优化FRP的设置。

本站无任何商业行为
个人在线分享 » 突破网络屏障:掌握FRP内网穿透技术
E-->