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

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版本
    在这里插入图片描述
    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. 查看运行效果
    在这里插入图片描述

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的设置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/692819.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++ STL】模拟实现 string

标题:【C :: STL】手撕 STL _string 水墨不写bug (图片来源于网络) C标准模板库(STL)中的string是一个可变长的字符序列,它提供了一系列操作字符串的方法和功能。 本篇文章,我们将模拟实现STL的…

【机器学习】消息传递神经网络(MPNN)在分子预测领域的医学应用

1. 引言 1.1. 分子性质预测概述 分子性质预测是计算机辅助药物发现流程中至关重要的任务之一,它在许多下游应用如药物筛选和药物设计中发挥着核心作用: 1.1.1. 目的与重要性: 分子性质预测旨在通过分子内部信息(如原子坐标、原…

汇总 |国内外医疗器械网络安全法规与标准

国内外关于医疗器械网络安全的法规和标准日益完善,旨在确保医疗器械在全生命周期内的网络安全,保障患者信息的安全和隐私,以及医疗器械的正常运行。不同国家和地区的法规和标准各有侧重,但都强调了医疗器械制造商、开发者、经营者…

contos7使用docker安装vulhub

contos7下使用docker安装vulhub 1. 安装docker 1. 更新yum (1)切换root用户 su root (2)更新yum yum update 2. 卸载旧版本的docker sudo yum remove docker sudo yum remove docker-client sudo yum remove docker-clien…

反AI浪潮中的新机遇:Cara艺术社区异军突起

近日,一个名为Cara的艺术社区在网络上迅速走红,其独特的反AI定位吸引了大量创意人士。在AI技术日益普及的今天,Cara社区反其道而行之,致力于打造一个无AI侵害的创作和交流环境。这一创新模式不仅赢得了艺术家的青睐,也为国内创业者提供了新的思考角度。 一、精准定位,守…

Linux shell编程基础

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 Linux 内核的服务。 Shell 脚本&#x…

Elasticsearch中各种query的适用场景

Elasticsearch 提供了丰富的 Query 类型,以满足各种搜索需求。以下列举一些常见的 Query 类型,并分析其区别和应用场景: 一、 几个常用的基本Query 1. Term Query 应用场景: 查找包含特定词语的文档,适合精确匹配单个词语的场景…

【C++第九课 - vector】vector介绍、vector使用,vector的底层实现、杨辉三角、全排列、只出现一次的数字

目录 一、vector的介绍二、vector的使用1、vector的构造函数2、vector的插入和三种遍历方式3、开空间4、insert5、find6、erase补充 三、vector的底层实现1、成员变量2、构造函数3、push_back4、访问方式5、pop_back6、insert - pos位置插入x7、resize8、拷贝构造9、赋值10、er…

【第13章】SpringBoot实战篇之项目部署

文章目录 前言一、准备1. 引入插件2. 打包3. 启动4. 后台启动 二、跳过测试模块三、外置配置文件1.引入插件2.忽略配置文件3. 外置配置文件 总结 前言 项目部署需要把项目部署到Linux服务器上,SpringBoot项目通过Maven打包即可快速生成可运行Jar包程序。 一、准备 …

每日一题——Python实现PAT乙级1042 字符统计(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 优点 缺点和改进建议 时间复杂度分析 空间复杂度分析 改进后的代码 我…

【Androi】安卓发展历程详解

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

轻NAS玩客云使用Docker部署小雅并挂载到AList详细流程分享

文章目录 前言1. 本地部署AList2. AList挂载网盘3. 部署小雅alist3.1 Token获取3.2 部署小雅3.3 挂载小雅alist到AList中 4. Cpolar内网穿透安装5. 创建公网地址6. 配置固定公网地址 前言 本文主要介绍如何在安装了CasaOS的玩客云主机中部署小雅AList,并在AList中挂…

YOLOv8_obb的训练、验证、预测及导出[旋转目标检测实践篇]

1.旋转目标检测数据集划分和配置 从上面得到的images和labels数据还不能够直接训练,需要按照一定的比例划分训练集和验证集,并按照下面的结构来存放数据,划分代码如下所示,该部分内容和YOLOv8的训练、验证、预测及导出[目标检测实践篇]_yolov8训练测试验证-CSDN博客是重复的…

LNMP与动静态网站介绍

Nginx发展 Nginx nginx http server Nginx是俄罗斯人 Igor Sysoev(伊戈尔.塞索耶夫)开发的一款高性能的HTTP和反向代理服务器。 Nginx以高效的epoll.kqueue,eventport作为网络IO模型,在高并发场景下,Nginx能够轻松支持5w并发连接数的响应,并…

Redis单线程运行与CPU多核心的关系

Redis单线程运行与CPU多核心的关系 Redis作为一种高性能的内存数据库,以其单线程的运行模式而闻名。在高并发的场景下,单线程模型有助于简化开发和避免竞争条件。然而,随着多核CPU的普及,人们不禁要问,Redis的单线程模…

FJSP:烟花算法(FWA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、烟花算法介绍 参考文献: Tan, Y. and Y. Zhu. Fireworks Algorithm for Optimization. in Advances in Swarm Intelligence. 2010. Berlin, Heidelberg: Springer Berlin Heidelberg. 二、烟花算法求解FJSP 2.1FJSP模型介绍 柔性作业车间调度问题(Flexible …

医疗器械网络安全风险管理的基本步骤

医疗器械网络安全风险管理是一个复杂的过程,涉及到多个环节和步骤。以下是一些基本的步骤和关键点: 风险识别:首先需要对医疗器械的软件、网络连接和通信协议等进行漏洞分析,识别潜在的安全漏洞和弱点。这可能涉及对设备的渗透测…

LLVM Cpu0 新后端7 第一部分 DAG调试 dot文件 Machine Pass

想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1V_tZkt9uvxo5bnUufhMQ_Q?…

Nagios的安装和使用

*实验* *nagios安装和使用* Nagios 是一个监视系统运行状态和网络信息的监视系统。Nagios 能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等. Nagios 可运行在 Linux/Unix 平台之上,同时提供一个可选的基于浏览器的 WEB 界面以方便系统管…

【Linux系统编程】进程地址空间

目录 前言 进程虚拟地址空间的引入 进程地址空间的概念 进一步理解进程地址空间 为什么需要进程地址空间? 系统层面理解malloc/new内存申请 前言 首先,在我们学习C语言的时候一定会见过如下这张图。(没见过也没关系,接下来…