frp搭建流程总结(暴露内网服务器,NAT端口穿透)

news/2024/3/29 6:53:34/文章来源:https://blog.csdn.net/u012219045/article/details/130357306

简单介绍frp

frp 是一种快速反向代理,允许您将位于 NAT 或防火墙后面的本地服务器暴露给 Internet。
它目前支持TCP和UDP,以及HTTP和HTTPS协议,可以通过域名将请求转发到内部服务。

准备服务器

  • 1台有公网IP的服务器 A(公网IP: 120.1.2.3)作为frp服务端。
  • 1台内网服务器 B(内网IP: 10.2.2.166),该服务器需要暴露给外网。

公网服务器A

  • 登录服务器A,拷贝 frp_0.47.0_linux_arm64.tar.gz 到某个目录,比如 /home/data
  • 解压 tar -zxvf frp_0.47.0_linux_arm64.tar.gz
  • 进入 frp_0.47.0_linux_arm64,配置 frps.ini,指定bind_port,该端口为frp客户端用来连接frp服务端来注册。
# frps.ini
[common]
bind_port = 7000
  • 把frps服务加入supervisor管理,执行 /home/miniconda/bin/supervisorctl update
[program:frps]
command=/home/data/frp_0.47.0_linux_amd64/frps -c /home/data/frp_0.47.0_linux_amd64/frps.ini
autostart=true
autorestart=true
priority=10
user=root
redirect_stderr=true
stopasgroup=true
killasgroup=true
startretries=999999
stdout_logfile=/home/miniconda/log/%(program_name)s.std
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=50
  • 启动frps服务端 /home/miniconda/bin/supervisorctl start frps
2023/04/11 09:56:43 [I] [root.go:206] frps uses config file: frps.ini
2023/04/11 09:56:44 [I] [service.go:200] frps tcp listen on 0.0.0.0:7000
2023/04/11 09:56:44 [I] [root.go:215] frps started successfully

内网服务器B

  • 登录服务器B,拷贝 frp_0.47.0_linux_arm64.tar.gz 到某个目录,比如 /home/data
  • 解压 tar -zxvf frp_0.47.0_linux_arm64.tar.gz
  • 进入 frp_0.47.0_linux_arm64,配置 frpc.ini,指定server_addr为A的公网地址,指定server_port为frps.ini的bind_port,
    [ssh]改为[ssh6000],当存在多个客户端时,需要使用不同的ssh名字。指定服务器B的SSH端口local_port,remote_port为从公网ssh服务器B时需
    要的端口。
# frpc.ini
[common]
server_addr = 120.1.2.3
server_port = 7000[ssh6000]  # [ssh]改为[ssh6000],当存在多个客户端时,需要使用不同的ssh名字。
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
  • 把frpc客户端服务加入supervisor管理,执行 /home/miniconda/bin/supervisorctl update
[program:frpc]
command=/home/data/frp_0.47.0_linux_amd64/frpc -c /home/data/frp_0.47.0_linux_amd64/frpc.ini
autostart=true
autorestart=true
priority=10
user=root
redirect_stderr=true
stopasgroup=true
killasgroup=true
startretries=999999
stdout_logfile=/home/miniconda/log/%(program_name)s.std
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=50
  • 启动frpc客户端 /home/miniconda/bin/supervisorctl start frpc
2023/04/11 09:57:08 [I] [service.go:299] [52d830bcea80a311] login to server success, get run id [52d830bcea80a311], server udp port [0]
2023/04/11 09:57:08 [I] [proxy_manager.go:142] [52d830bcea80a311] proxy added: [ssh]
2023/04/11 09:57:08 [I] [control.go:172] [52d830bcea80a311] [ssh6000] start proxy success

frp客户端连接不上?

  • 若使用的是云服务器,需在安全组里放开 bind_port 和 remote_port。此例子中分别为 7000 和 6000。

测试SSH,通过公网访问内部服务器B

  • ssh -p remote_port 服务器B用户名@服务器A公网IP。比如服务器B有个用户为test,此处为 ssh -p 6000 test@120.1.2.3, 输入test对应
    的密码即可访问内网服务器B。

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

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

相关文章

如何保护数据安全?企业该从部署SSL证书开始

数字化时代,大数据开始蔓延到各行各业,影响着生活的方方面面。在犹如“皇帝穿新衣”般透明的大数据时代,数据泄露无孔不入,存在问题层出不穷,未知的漏洞隐患、安全边界的模糊、新的网络攻击手段、个人隐私的无处藏身等…

Zynq-7000、国产zynq-7000的GPIO控制(二)

本文详细说明一下使用SDK中使用MIO/EMIO作为输入中断 SDK中使用MIO/EMIO作为输入中断 这个使用场景可以扩展到PL的可以通过EMIO或者MIO,告知PS中断来了,需要PS处理一些特定事物,当然也可以连接最简单的按键。 这个可以参考SDK自带例程来实…

2022年NOC大赛创客智慧编程赛道图形化scratch复赛题,包含答案解析

目录 2022 年 NOC 大赛创客智慧编程图形化复赛用题 下载文档打印做题:

太阳辐射预报模式WRF-SOLAR在农业生态领域中的实践技术应用

太阳能是一种清洁能源,合理有效开发太阳能资源对减少污染、保护环境以及应对气候变化和能源安全具有非常重要的实际意义,为了实现能源和环境的可持续发展,近年来世界各国都高度重视太阳能资源的开发利用;另外太阳辐射的光谱成分、…

这场SIG组开放工作会议为何吸引了那么多人的关注?

【中国,上海,2023年4月20日-21日】openEuler Developer Day 2023在线上和线下同步举办。本次大会由开放原子开源基金会指导,中国软件行业协会、openEuler社区、边缘计算产业联盟共同主办,以“万涓汇流,奔涌向前”为主题…

为什么软件测试外包公司更受软件企业欢迎?软件测试报告需要多少钱?

劳动派遣或劳务派遣的用工模式古已有之,是人力资源销售市场不可避免的态势。软件测试顺应时代开展检测业务外包这一行业细分领域,越来越多软件外包公司尤其是小微型企业慢慢意识到了软件测试业务外包通常能够持续减少企业的各种成本费,使企业…

关于Vue中使用全屏容器无法占满屏幕以及样式不生效问题解决方案

先来看示例问题 App.vue文件 global.css文件 网页效果 可以看到即使设置了宽度和高度为100%都无法占满屏幕,而且容器还超出了屏幕,上拉才可以看到下边框。查看网上解决方法: 1.height设置为100vh, 或者设置为calc(10…

crm day03 创建市场活动

页面切割 div切割,ifram显示 如何分割的呢,在主页面上打开iframe $(function(){ //页面加载时window.open("workbench/main/index.do","workareaFrame"); })注意所有在WEB-INF的页面都会收到保护,因此到达此目录下的页…

Leetcode38. 外观数列

一、题目描述: 给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列: countAndSay(1) “…

2023年4月份上新的视频领域分割模型设计系列论文(附下载链接)

来源:投稿 作者:王老师 编辑:学姐 论文1 论文标题: Boosting Video Object Segmentation via Space-time Correspondence Learning 论文链接: https://arxiv.org/pdf/2304.06211v1.pdf代码链接:暂未开源 …

PSO算法、MATLAB代码实现以及测试效果

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 PSO算法原理进化操作算法流程图matlab代码实现main函数部分适应度函数部分PSO算法主体测试结果 (F1~F6) PSO算法原理 粒子群优化( Particle Swarm Optimization&am…

Java+GeoTools实现WKT数据根据EPSG编码进行坐标系转换

场景 JavaGeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示: JavaGeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示_霸道流氓气质的博客-CSDN博客 在上面实现Java中集成Geotools之后,需求是将WKT数据转换成其他坐标系的W…

银河麒麟(桌面版和服务器版)之远程桌面安装

一、前言 在信创方案中经常介绍支持麒麟系统,实际上麒麟分为银河麒麟和中标麒麟,银河麒麟又分为服务器版和桌面版,服务器器版一般用于应用系统部署,桌面版一般用于日常办公。银河麒麟操作系统作为国产操作系统,是目前国…

力扣---LeetCode21. 合并两个有序链表(链表经典题)

文章目录 前言21. 合并两个有序链表链接:方法一:取小尾插1.1代码:1.2 流程图:1.3 注意: 方法二:带哨兵位2.1代码:2.2流程图: 总结 前言 焦虑不会消除明天的悲伤 只会让你今天的力量…

openEuler Developer Day 2023成功召开!发布嵌入式商业版本及多项成果

【中国,上海,2023年4月21日】openEuler Developer Day 2023于4月20-21日在线上和线下同步举办。本次大会由开放原子开源基金会指导,中国软件行业协会、openEuler社区、边缘计算产业联盟共同主办,以“万涓汇流,奔涌向前…

QGIS数据可视化学习笔记02——CSV数据和表连接

在其他的GIS软件中,表的连接操作是十分常用的操作,在QGIS中也是一样的,接下来我们介绍QGIS中属性表之间的连接以及如何添加CSV数据到属性表中。 1、表的连接 &emsp如关系型数据库一样,两表连接的前提是,两个表中都…

荔枝派Zero(全志V3S)开启alsa,测试codec

文章目录 前言一、ALSA 简介二、ALSA 框架三、buildroot 配置四、烧录到 SD 卡五、测试1、查看 CODEC 设备2、alsa-utils 使用①、查看设备②、调节音量③、查看控制器④、录音测试⑤、播放测试 前言 默认 dts 中使能了 codec 需要使用的话,在 buildroot 中勾选 a…

Linux离线状态下安装cuda、cudnn、cudatoolkit

目录 1. 下载与安装说明2. CUDA安装3. cuDNN安装4. cudatoolkit安装5. 测试安装成功 1. 下载与安装说明 工具包下载地址 CUDA历史版本下载地址:https://developer.nvidia.com/cuda-toolkit-archivecuDNN历史版本下载地址:https://developer.nvidia.com/r…

pdf怎么删除其中一页?

pdf怎么删除其中一页?大家都应该知道,PDF是一种实用性非常强且非常便携文件格式,许多用户对其非常熟悉。不管是工作还是学习中,都会下载或者使用到pdf文件。pdf文件具有非常好的兼容性,F可以将各种图片、文字内容整合在…

界面开发框架Qt新手入门 - 自定义排序/筛选模型示例(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 自定义排序/筛选模型…