当前位置: 首页 > news >正文

使用frp实现内网穿透

1、介绍

​ 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上,用这台公网服务器做转发即可实现在家中也能外网访问。这样的就不需要我们在公网上部署一套一模一样的服务了,费时费力,而且还要同步数据。

2、准备工作

​ 想要实现内网穿透功能首先我们需要准备:

  • 一台公网服务器(用作frp的服务端)
  • 一台需要做转发的内网服务器(用作frp的客户端)

3、frp服务端安装及配置

3.1 下载frp服务端

​ 注意frp服务端是安装在公网服务器上的!!!

​ 服务端下载地址:https://github.com/fatedier/frp/releases

在这里插入图片描述

​ 可以看到有很多版本,我的外网服务器是Linux的,可以输入命令查看服务器架构版本:

arch

在这里插入图片描述

​ x86_64 直接下载 frp_0.51.2_linux_amd64.tar.gz 后缀为 amd64 这个版本即可。可以手动下载到本地,然后通过scp命令传到服务器,也可以直接在外网服务器上下载。

​ 通过scp传送到外网服务器命令(如果开放了账号密码登录):

scp -P ssh开放的端口(如果为22,可以不用带此参数) 下载的frp_0.51.2_linux_amd64.tar.gz的位置 登录的账号@外网服务器ip:你要拷贝到的外网服务器的位置

​ 如:

scp -P 22 C:\Users\dxc\Downloads\frp_0.51.2_linux_amd64.tar.gz root@xxx.xxx.xxx.xxx:/home/frp

​ 按下回车,再输入密码即可(注意大小写)。

​ 通过scp传送到外网服务器命令(只开放了通过证书登录的方式):

scp -i 你证书的位置 -P ssh开放的端口(如果为22,可以不用带此参数) -r 下载的frp_0.51.2_linux_amd64.tar.gz的位置 登录的账号@外网服务器ip:你要拷贝到的外网服务器的位置

​ 如:

scp -i C:\Documents\server-pro\ecmarkets-universal.pem -P 22 C:\Users\dxc\Downloads\frp_0.51.2_linux_amd64.tar.gz root@81.xxx.xxx.xxx:/home/frp

​ 直接在外网服务器上下载命令:

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

​ 下载完成后解压,输入命令:

tar -zxvf frp_0.42.0_linux_amd64.tar.gz

​ 解压完成后cd进入目录:

cd frp_0.42.0_linux_amd64

​ 查看当前目录下的文件:

ll

​ 我们能看到有如下这些文件:

在这里插入图片描述

​ 其中作为服务端,我们只需要关注 frps 和 frps.ini 文件。

3.2 frps配置

​ 其中 frps.ini 文件就是我们服务端的配置文件,我们需要根据自己情况稍作修改。输入命令:

vim frps.ini

​ 默认配置如图:

在这里插入图片描述

​ 我们可以根据自己的场景稍作修改:

[common]
bind_port = 7001
dashboard_port = 7501
dashboard_user = root
dashboard_pwd = 123456
token = qwer1234

​ 其中:

  • bind_port:客户端和服务端连接的端口,在配置客户端的时候要用到。
  • dashboard_port:服务端可视化界面的端口,若使用7501端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7501。
  • dashboard_user:打开服务端可视化界面的用户名,可自行设置。
  • dashboard_pwd:打开服务端可视化界面的密码,可自行设置。
  • token:用于客户端和服务端连接的口令,可以自行设置,不用和我保持一样,但需要记住,配置客户端的时候会用到。

​ 注意:配置项并未介绍完,详情请参见官方文档。

在这里插入图片描述

3.3 frps启动

​ 输入启动命令,启动frp服务端:

./frps -c frps.ini

​ 如果看到控制台输出如图,代表启动成功:

在这里插入图片描述

​ 此时,我们打开浏览器输入:

xxx.xxx.xxx(你的外网服务器ip):你配置的dashboard_port端口

​ 即可看到如下弹框(如果你的打不开,请确认防火墙关闭,或者在你的云服务器上开放端口号):

​ 查看防火墙状态:

systemctl status firewalld

​ 关闭防火墙:

systemctl stop firewalld

在这里插入图片描述

​ 输入配置的账号密码,点击登录,进入仪表盘:

在这里插入图片描述

​ 此时frp的服务端我们就配置完毕了,接下来开始配置客户端。

4、frp客户端配置及启动

4.1 下载frp客户端及配置

​ 此处我用的是本地电脑作为客户端,本地电脑为win10,64位操作系统,其他操作系统流程几乎一致。客户端下载地址和服务端一样,均为:https://github.com/fatedier/frp/releases

​ 此处我下载 frp_0.51.2_windows_amd64.zip 这个版本。

在这里插入图片描述

​ 解压文件,进入frp_0.51.2_windows_amd64目录,我们需要关心的文件为 frpc.exe 和 frpc.ini,用编辑器打开 frpc.ini 文件:

在这里插入图片描述

在这里插入图片描述

​ 这是默认的客户端的配置,接下来我们需要修改一下:

[common]
server_addr = xxx.xxx.xxx
server_port = 7001
token = qwer1234[rbac_study]
type = tcp
local_ip=127.0.0.1
local_port = 3781
remote_port=6001

​ 其中:

  • server_addr:你外网服务器的ip。
  • server_port:外网服务器配置的bind_port。
  • token:外网服务器配置的token。
  • [xxx]:表示一个规则的名称,可以自己定义,此处我定义为我项目的名称。
  • type:表示转发的协议类型,有tcp、udp等选项可以选择。此处我选择tcp。
  • local_ip:本地的ip。
  • local_port:本地服务的端口号。
  • remote_port:服务端开放的端口号,可以自己配置。到时候我们通过访问外网服务器(frps)的ip + 该端口号就能转发到本地服务器(frpc)的服务 local_ip + local_port 配置的端口上。

在这里插入图片描述

​ 配置好后点击保存。

4.2 frpc启动

​ 打开win10的 Windows PowerShell 工具(win10自带,不用下载,在左下角的搜索框中搜索打开即可)。切到我们frp客户端的配置文件 frpc.ini 所在目录:

cd E:\CommonSoftware\frp_0.51.2_windows_amd64

​ 输入启动命令,启动frp客户端(请不要直接双击frpc.exe文件打开!!!):

./frpc -c frpc.ini

​ 看到控制台输出如图,代表启动成功:

在这里插入图片描述

5、测试

​ 到此处,frps和frpc的所有配置和启动事项都完成了,接下来我们可以通过访问我们的外网服务器(frps)ip + 我们在本地服务器(frpc)中配置的 remote_port 端口,就能直接转发到我们的本地服务上了。

​ 我用本地的Java项目测试:

在这里插入图片描述

​ 我本地启动了一个端口为 3781 的 rbac_study 服务,接下来我访问外网服务器的ip + 本地服务器(frpc)中配置的 remote_port 端口,能看到穿透成功。如图:

在这里插入图片描述

相关文章:

使用frp实现内网穿透

1、介绍 ​ 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上&a…...

安装 opendr 踩坑记

复现早期的优化算法需要用到opendr,踩坑一天记录!!! 测试是否成功安装的命令 >>> import opendr >>> opendr.demo("texture")失败案例 python 3.8.15 numpy1.23.0 mayavi4.8.1 chumpy0.70 cpython…...

各地区-各行业法人单位、区划数63个指标(2010-2022年)

一、数据介绍 数据名称:各地区-各行业法人单位、区划数63个指标 数据年份:2010-2022年(法人单位至2021年) 数据样本:404条 数据来源:自我整理 二、指标说明 行政区划代码 地区 长江经济带 经度 纬…...

W5500-EVB-PICO作为TCP Client 进行数据回环测试(五)

前言 上一章我们用W5500-EVB-PICO开发板通过DNS解析www.baidu.com(百度域名)成功得到其IP地址,那么本章我们将用我们的开发板作为客户端去连接服务器,并做数据回环测试:收到服务器发送的数据,并回传给服务器…...

web前端面试--递归(斐波那契数列)

web面试题 本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 文章目录 web面试题定义源码测试示例 之前去笔试&…...

Vue3 Props组件简单应用(父组件获取子组件数据)

去官网学习→Props | Vue.js 运行示例&#xff1a; 代码&#xff1a;App.vue <template><img alt"Vue logo" src"./assets/logo.png"><h2>Vue Props数据传递</h2><h4>子组件中的数据&#xff1a;{{ content }}</h4>…...

Mybatis查询

返回实体类&#xff0c;必须指定返回类型&#xff0c; resultType不能省略&#xff0c;并且数据库字段名与实体类不一致会填充NULL&#xff0c;实体类我们一般都是驼峰&#xff0c;数据库字段一般都是下划线&#xff0c;所以在查询的时候可以起别名解决,属性填充本质上调用的是…...

如何让ES低成本、高性能?滴滴落地ZSTD压缩算法的实践分享

前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于滴滴ES日志场景每天写入量在5PB-10PB量级&#xff0c;写入压力和业务成本压力大&#xff0c;为了提升ES的写入性能&#xff0c;我们让ES支持ZSTD压缩算法&#xff0c;本篇文章详细展开滴滴…...

[数据集][目标检测]PCB板缺陷目标检测数据集VOC格式693张6类别

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;693 标注数量(xml文件个数)&#xff1a;693 标注类别数&#xff1a;6 标注类别名称:["missing_hole",…...

Linux 安装中文输入法

在linux安装ibus输入法 在linux安装ibus输入法 加入开机自启动 运行以下命令以编辑IBus配置文件&#xff1a;如果没有该文件&#xff0c;则可以创建一个新文件。 nano ~/.xprofile将以下内容添加到文件中&#xff1a;这些命令将设置相应的环境变量并启动IBus守护进程。 ex…...

redisson

redisson 使用 1&#xff0c;导入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.5</version> </dependency>2&#xff0c;创建配置类 package com.woniu.config;impor…...

源码分析——HashMap(JDK1.8)源码+底层数据结构分析

文章目录 HashMap 简介底层数据结构分析JDK1.8之前JDK1.8之后 HashMap源码分析构造方法put方法get方法resize方法 HashMap常用方法测试 HashMap 简介 HashMap 主要用来存放键值对&#xff0c;它基于哈希表的Map接口实现&#xff0c;是常用的Java集合之一。 JDK1.8 之前 HashM…...

企业举办活动邀请媒体的意义和重要性

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业举办活动并邀请媒体的意义和重要性是多方面的&#xff0c;主要有以下一些&#xff1a; 1. 品牌曝光与宣传&#xff1a;邀请媒体参与企业活动可以提高企业的品牌曝光度。媒体报道能够…...

从零开始学python(十六)爬虫集群部署

前言 今天讲述Python框架源码专题最后一个部分&#xff0c;爬虫集群部署&#xff0c;前面更新了十五个从零开始学python的系列文章&#xff0c;分别是&#xff1a; 1.编程语法必修篇 2.网络编程篇 3.多线程/多进程/协程篇 4.MySQL数据库篇 5.Redis数据库篇 6.MongoDB数据库篇 …...

flutter

1.dart语言基础 数据类型 //fluttenum a 10;double b 10.0;int x 10;num c 10.0;//字符串拼接方式。和kotlin的是一样的。 也可以和java中一样做拼接。String testString "aaaaaaaaaaaaaaaaaaaaaaaaaaaa";String bbbbb "aaaaaaaaaaaaaaccccc";S…...

iOS 开发-编译第三方库 openssl及curl

1、前提 iOS编译库需要三个架构,arm64,arm64e,x86_64&#xff0c;其中x86_64为模拟器所需 iOS编译库需要下载xcode及对应的command line tool&#xff08;执行命令时可以自动下载&#xff09;&#xff0c;下载失败需要去官网搜索下载 2、openssl 参考iOS如何编译OpenSSL静态…...

运维监控学习笔记1

1、监控对象&#xff1a; 1、监控对象的理解&#xff1b;CPU是怎么工作的&#xff1b; 2、监控对象的指标&#xff1a;CPU使用率&#xff1b;上下文切换&#xff1b; 3、确定性能基准线&#xff1a;CPU负载多少才算高&#xff1b; 2、监控范围&#xff1a; 1、硬件监控&#x…...

由于找不到vcruntime140.dll,无法继续执行代码,三种修复方法

为什么我们很多人都遇到过打开电脑软件时候突然电脑就提示找不到vcruntime140.dll&#xff0c;或许vcruntime140.dll丢失&#xff0c;那么vcruntime140.dll到底是什么&#xff1f;为什么会丢失&#xff0c;丢失了要怎么解决修复呢&#xff1f;下面小编都会一一介绍给大家&#…...

【FPGA零基础学习之旅#10】按键消抖模块设计与验证(一段式状态机实现)

&#x1f389;欢迎来到FPGA专栏~按键消抖模块设计与验证 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大…...

【EI复现】基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

仅限三级医院DevOps团队内部流通:Docker医疗调试禁忌清单(含17个导致HIPAA审计失败的配置雷区)

第一章&#xff1a;Docker医疗调试的合规性前提与审计红线在医疗信息系统中使用 Docker 进行调试前&#xff0c;必须满足《中华人民共和国数据安全法》《个人信息保护法》及《医疗卫生机构网络安全管理办法》对健康医疗数据的全生命周期管控要求。容器环境不得绕过医院已部署的…...

OFA VQA镜像部署教程:Miniconda虚拟环境torch27完整复现

OFA VQA镜像部署教程&#xff1a;Miniconda虚拟环境torch27完整复现 你是不是对视觉问答&#xff08;VQA&#xff09;技术感兴趣&#xff0c;想亲手试试让AI看懂图片并回答问题&#xff1f;但一看到复杂的模型部署、环境配置、依赖安装就头疼&#xff1f;别担心&#xff0c;今…...

从CVE-2024-3094到2026规范第4.2.8条:一次供应链后门事件如何倒逼全球C标准重构?揭秘被删减的3版草案中的“幽灵条款”

第一章&#xff1a;现代 C 语言内存安全编码规范 2026 对比评测报告概述本报告系统性评估了五项主流 C 语言内存安全编码规范在 2026 年度的演进状态&#xff0c;涵盖 ISO/IEC TS 17961:2023&#xff08;C Secure&#xff09;、CERT C Coding Standard&#xff08;2026 Edition…...

BitNet b1.58-2B-4T-GGUF开源大模型教程:原生训练量化 vs 后量化性能对比

BitNet b1.58-2B-4T-GGUF开源大模型教程&#xff1a;原生训练量化 vs 后量化性能对比 1. 项目概述 BitNet b1.58-2B-4T-GGUF 是一款革命性的开源大语言模型&#xff0c;采用创新的1.58-bit量化技术。与传统的后训练量化不同&#xff0c;该模型在训练过程中就实现了量化&#…...

OBS Spout2插件实战指南:从零构建高效视频流共享方案

OBS Spout2插件实战指南&#xff1a;从零构建高效视频流共享方案 【免费下载链接】obs-spout2-plugin A Plugin for OBS Studio to enable Spout2 (https://github.com/leadedge/Spout2) input / output 项目地址: https://gitcode.com/gh_mirrors/ob/obs-spout2-plugin …...

EasyAnimateV5-7b-zh-InP企业落地案例:某MCN机构日均生成200+条短视频提效实录

EasyAnimateV5-7b-zh-InP企业落地案例&#xff1a;某MCN机构日均生成200条短视频提效实录 1. 引言&#xff1a;当短视频制作遇上AI生产力革命 “每天要出200条短视频&#xff0c;每条都要有创意、有画面、有节奏&#xff0c;团队已经连续加班三个月了。” 这是去年年底&…...

全志D1s/F133 RISC-V处理器架构与应用解析

1. Allwinner D1s/F133 RISC-V处理器深度解析全志科技最新推出的D1s&#xff08;又称F133&#xff09;处理器&#xff0c;作为D1 RISC-V处理器的精简版本&#xff0c;在保持核心功能的同时通过集成64MB DDR2内存显著降低了成本。这款处理器主要面向智能摄像头和显示屏市场&…...

别再只用水平IoU了!手把手教你用OpenCV计算旋转目标检测框的重叠度(附Python代码)

突破水平检测局限&#xff1a;OpenCV旋转框IoU计算实战指南 在遥感图像分析、自动驾驶感知和文档识别等场景中&#xff0c;目标物体往往呈现任意角度的旋转状态。传统水平检测框的IoU计算方法在这些场景下会严重高估检测质量——比如两个完全错位的长条形物体&#xff0c;仅因外…...

Axelera Metis PCIe Arm AI加速套件评测与应用

1. Axelera Metis PCIe Arm AI评估套件深度解析 当我在2023年初首次听说Axelera推出Metis M.2 AI加速模块时&#xff0c;作为一个长期跟踪边缘AI技术的从业者&#xff0c;我对他们宣称的214 TOPS算力既感到兴奋又充满疑虑。如今他们正式发布了基于PCIe接口的完整评估套件&#…...

Vue Antd Admin深度解析:如何用Vue2+Ant Design构建企业级后台管理系统的终极方案

Vue Antd Admin深度解析&#xff1a;如何用Vue2Ant Design构建企业级后台管理系统的终极方案 【免费下载链接】vue-antd-admin &#x1f41c; Ant Design Pros implementation with Vue 项目地址: https://gitcode.com/gh_mirrors/vu/vue-antd-admin 你是否曾为构建企业…...