frp内网穿透部署,轻松实现内网服务对外访问

FRP(Fast Reverse Proxy)是一种轻量级、高性能的反向代理工具,利用反向代理技术将公网请求转发至内网服务器上,并将内网服务器的响应再次转发至公网请求者。在实现内网穿透时,FRP能够将公网与内网之间的隔离突破,使得公网用户可以直接访问内网服务器上的资源,从而实现远程访问和管理。同时,FRP可以实现在内网环境下使用自定义域名访问web服务器,并且支持TCP和UDP的端口转发。

简单讲就是可以实现将家里的应用与服务映射到公网IP上,前提是有云服务器,可以考虑下腾讯云或者阿里云,一年几十块可以玩下。

环境: 云服务器CentOS8(有公网IP) Frpv0.52.3(2023-12-07版本)

使用示意图: FRP

完整配置文档地址:Frp完整文档

下载安装

因为托管在github,可能需要科学上网,或者后台私信。 下载地址 服务器端一般用Linux,下载对应版本。客户端可以是Linux或者windows. 下载

在服务器上进行解压,其实里面东西不多,包含了服务器端和客户端启动文件和配置文件。 frps是服务器端,frpc是客户端,都有对应的配置文件.toml,如果是作为服务器端可以删除frpc的文件。

[root@centos8 ~]# cd /www/frp
[root@centos8 frp]# ls -la
total 30004
drwxr-xr-x  2 www  www      4096 Dec  7 12:32 .
drwxr-xr-x 28 root root     4096 Dec  7 10:25 ..
-rwxr-xr-x  1 root root 13905920 Oct 24 10:56 frpc
-rwxr-xr-x  1 root root      142 Oct 24 10:57 frpc.toml
-rwxr-xr-x  1 root root 16789504 Oct 24 10:56 frps
-rwxr-xr-x  1 root root      118 Dec  7 10:54 frps.toml
-rwxr-xr-x  1 root root    11358 Oct 24 10:57 LICENSE

服务器端配置

步骤:

1、开启云服务器安全组端口7000(客户端与服务器连接)、7500(服务器监控面板端口)、7001(自定义内网应用端口)

2、开启云服务器防火墙firewalld端口

firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=7500/tcp --permanent
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --reload

3、修改配置文件

# 修改frps.toml
vim frps.toml

#
 与客户端连接端口,默认7000
bind_port =  7000

#
 配置服务器监控面板
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
webServer.addr = "0.0.0.0"

4、配置修改完成之后可以直接执行,就是执行frps,然后指定配置文件为frps.toml

# 修改下执行权限,防止没有足够权限
chmod +x ./frps

# 运行服务
./frps -c ./frps.toml

使用systemctl管理服务进程

如果每次都手动运行服务应该会在前台运行,不能退出,如果ctrl + c退出,frp服务也就结束了,因此建议使用systemctl进程管理实现服务的启动停止和重启。

在/usr/lib/systemd/system/里面添加一个服务配置文件frps.service

vim /usr/lib/systemd/system/frps.service

#
 内容如下,记得修改对应的目录
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Restart=on-failure
RestartSec=5s
WorkingDirectory=/www/wwwroot/frp                            # 工作目录
ExecStart=/www/wwwroot/frp/frps -c /www/wwwroot/frp/frps.toml # 修改为对应目录
[Install]
WantedBy=multi-user.target

#
 保存退出
systemctl daemon-reload                                      # 刷新
systemctl start frps                                         # 启动服务

#
 查看对应的服务和端口有没有正常运行
systemctl status frps

#
 查看有没有7000,7500端口
netstat -nltp

客户端配置

客户端只需要能够上网即可,填写固定的Frps公网地址就行,然后配置内网服务以及端口,默认只能代理客户端本机的服务。

Linux frpc客户端配置

如果使用linux客户端的话也是使用上面下载的版本,删除掉frps开头的文件即可。然后修改frpc.toml。

vim frpc.toml

# frpc.toml内容,记得修改自己的IP
serverAddr = "14.56.xxx.xxx"
serverPort = 7000

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 7001

# 保存退出,启动客户端服务,和上面服务器原理一致,需要开通服务器对应端口7001
./frpc -c ./frpc.toml

也可以使用systemctl进行frpc服务管理,与上面frps的一致就不重复了。在/usr/lib/systemd/system/里面创建一个frpc.service文件,然后把启动文件和对应的配置文件写上,刷新systemctl。

Windows Frpc客户端配置

如果使用window客户端下载window版本的版本frp_0.52.3_windows_amd64.zip windows客户端

frpc.toml配置如下

serverAddr = "14.29.xxx.xxx"
serverPort = 7000

[[proxies]]
name = "web-test"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 7001

然后客户端需要到cmd命令行运行 frpc.exe -c frpc.toml 进入到frp目录,启动frpc.exe 使用 frpc.toml配置文件 完成之后提示已经启动

frpc启动
frpc启动

内网访问: 内网网站

外网访问: 外网访问

window如果把cmd黑色窗口关闭则服务停止,因此需要设置后台运行,或者设置开机自启,通过计划任务运行,在此不做说明,可以私信。

frps服务器管理界面

通过在frps上配置服务面板监控代理状态。 http://ip:7500 可以查看连接状态。 FRPS

注意如果代理ssh、http等可以使用tcp类型,如果想要使用域名需要有自己的域名解析。

每个proxies代表一个应用,如果需要新增内网应用都需要开启对应的端口。

不建议代理大文件传输,因为是基于云服务器带宽的,取决于公网带宽限制。

好处是没有代理数量限制,数据掌握在自己手中,不需要第三方。

本文由 mdnice 多平台发布

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

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

相关文章

企业ERP软件定制开发的重点在哪里?|手机app小程序搭建

企业ERP软件定制开发的重点在哪里?|手机app小程序搭建 随着企业规模的扩大和业务的复杂化,越来越多的企业开始意识到使用一款适合自己的企业资源计划(Enterprise Resource Planning,简称ERP)软件的重要性。然而&#x…

Axure动态面板控制

首先创建一个项目,拖拽几个矩形喝一个动态面板 然后双击动态面板添加状态state1,state2,state3 然后分别在state1,state2,state3编辑导航对应的内容。 接下来就是添加交互事件,将不同导航对应不同的state. 点击“交互”->鼠标点击->进入交互编辑…

SpringSecurity(五)

深入理解HttpSecurity的设计 一、HttpSecurity的应用 在前章节的介绍中我们讲解了基于配置文件的使用方式,也就是如下的使用。 也就是在配置文件中通过 security:http 等标签来定义了认证需要的相关信息,但是在SpringBoot项目中,我们慢慢脱离…

世微 大功率降压恒流IC LED车灯过EMC电源驱动 AP3266

产品描述 AP3266 是高效率、外围简单、内置功率管的同步降压恒流芯片,适用于4-40V输入的降压LED恒流驱动芯片。输出最大功率可达 40W,最大电流3.6A。AP3266 可通过调节 OVP 端口的分压电阻,设定输出空载电压 保护,避免高压 空载上…

word中如何插入公式,如何高效使用mathtype,遇到他人论文的复杂公式如何直接粘贴复制,为你一一答疑解惑!!

文章目录 一、论文中插入公式---最原始,最好用,最稳定的方法1.1 主页--插入---对象1.2 找到公式编辑器,对应你的版本1.3 直接输入公式,关闭界面 二、如何做好一个懒人——如何直接粘贴别人PDF等格式论文中的公式?2.1 使…

JVM 运行时参数

面试题 JVM的参数,你知道的说一下 (百度) 说说你知道的几种主要的JVM参数(京东) JVM调优调的哪些参数?在哪里写这些参数? (亚信) 内存调优参数都有什么?&am…

基于若依的ruoyi-nbcio流程管理系统支持支持定时边界事件和定时捕获事件

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 1、定时边界事件 <template><div class"panel-tab__content"><!--目前只处理定…

shell命令学习(1)——(待完善)

explainshell.com shell统计当前文件夹下的文件个数、目录个数Linux之shell常用命令&#xff08;三&#xff09; sort&#xff08;排序&#xff09;、uniq&#xff08;处理重复字符&#xff09; linux中shell将换行输入到文件中 shell脚本&#xff0c;将多行内容写入文件中 f…

【8】PyQt单选框和复选框

目录 1. 单选框 2. 复选框 1. 单选框 QRadioButton是单选按钮,它提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项 单选框选中的信号是:toggled 代码示例&#xff1a; from PyQt5.QtWidgets import * from PyQt5.QtCore import * import sysdef func(checked…

Java项目学生管理系统一前后端环境搭建

在现代的软件开发中&#xff0c;学生管理系统是一个常见的应用场景。通过学生管理系统&#xff0c;学校能够方便地管理学生的信息、课程安排和成绩等数据。本文将介绍如何使用Java语言搭建一个学生管理系统的前后端环境&#xff0c;并提供一个简单的示例。 1.环境搭建 学生管…

扩展卡尔曼滤波技术(Extended Kalman Filter,EKF)

一、概念介绍 卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全包含噪声的测量中&#xff0c;估计动态系统的状态&#xff0c;然而简单的卡尔曼滤波必须应用在符合高斯分布的系统中。 扩展卡尔曼滤波就是为了解决非线性问题&#xff0c;普通卡尔曼…

Socks VS HTTP 谁才是最快的代理协议

目录 前言 一、Socks代理协议 二、HTTP代理协议 三、Socks代理协议和HTTP代理协议的比较 1. 性能 2. 安全性 3. 灵活性 4. 应用场景 四、哪一个更快&#xff1f; 五、总结 前言 在网络传输中&#xff0c;代理协议扮演着非常重要的角色。Socks协议和HTTP协议是两种常…

探索正则可视化工具:让编程更直观、高效

导语&#xff1a;在当今的编程世界中&#xff0c;正则表达式已成为不可或缺的技能。然而&#xff0c;理解和编写正则表达式往往是一项具有挑战性的任务。为了降低门槛&#xff0c;提高编程效率&#xff0c;正则可视化工具应运而生。 一、正则表达式的简介与历史 正则表达式&a…

Failed to resolve org.junit.platform:junit-platform-launcher:1.9.3

springboot 跑 unit test 的时候&#xff0c;如果报错如题的话&#xff0c;可以更改idea 里的 Settings ——> HTTP Proxy 配置为&#xff1a;Auto-detect proxy settings

2023 CCF中国软件大会(CCF ChinaSoft)“软件定义汽车”论坛成功召开

2023年12月1日下午&#xff0c;2023年度CCF中国软件大会“软件定义汽车”论坛成功召开。 本次论坛由华东师范大学蒲戈光教授、武汉光庭信息技术股份有限公司朱敦尧董事长以及华东师范大学张越龄副教授联合组织举办。论坛主要关注汽车的智能网联化与电动化的融合&#xff0c;包括…

【Android Studio】【入门】helloworld和工程的各个文件的作用

这里写目录标题 可以开发的app类型注意点 搞一个helloworld玩玩各个文件的作用 可以开发的app类型 Phone and Tablet&#xff1a;开发手机和平板的app&#xff1b;Wear OS&#xff1a;穿戴系统&#xff1b;TV&#xff1a;电视app&#xff1b;Android Auto&#xff1a;汽车上的…

Java API接口强势对接:构建高效稳定的系统集成方案

文章目录 1. Java API接口简介2. Java API接口的优势2.1 高度可移植性2.2 强大的网络通信能力2.3 多样化的数据处理能力 3. 实战&#xff1a;Java API接口强势对接示例3.1 场景描述3.2 用户管理系统3.3 订单处理系统3.4 系统集成 4. 拓展&#xff1a;Java API接口在微服务架构中…

ROS 动态坐标变换

在ROS 中&#xff0c;坐标变换是一个重要的概念&#xff0c;因为它允许系统中的不同节点和模块以统一的方式描述物体的位置和方向。 动态坐标变换指的是当机器人或其环境中物体的位姿&#xff08;位置和姿态&#xff09;发生变化时&#xff0c;能够实时更新这些信息的过程。 …

Linux---进程管理

本章主要介绍RHEL8中如何管理并查看进程。 了解进程并查看系统中存放的进程了解进程的信号进程优先级设置 进程介绍 在 Windows中打开任务管理器就可以查看到系统中的所有进程&#xff0c;如图下图所示。 这里列出了系统中所有的进程&#xff0c;不过也可以使用命令行工具来…

学生成绩的增删改查

接上一篇MySQL数据库与其管理工具Navicat link 1.下载JDBC 可以登录MySQL的官方网站&#xff1a;www.mysql.com&#xff0c;下载JDBC-MySQL数据库驱动&#xff08;JDBC Driver for MySQL&#xff09;下载mysql-connector-java-5.1.40.zip后&#xff0c;将该zip文件解压至硬盘&a…