Centos和Window系统下Frp内网穿透
frp 是一个高性能的内网穿透的反向代理软件,支持 TCP、UDP、HTTP、HTTPS 等常见协议(TCP最常用),可以将处于局域网或者家用电脑主机、办公电脑主机通过中转服务器的方式暴露在公网里,使用户可以通过访问公网的IP(域名)的方式获取内网里的信息,对于开发者来说,frp帮助我们调试接口(微信公众号或其他拥有IP白名单的接口),frp帮助我们取流内网的摄像头,访问内网数据库资源等

下载frp地址
https://github.com/fatedier/frphttps://github.com/fatedier/frp/releases
在centos下安装frp内网穿透代理
frp服务端和客户端都是使用的同一套,因此我们可以将之解压并改名
服务端:frp_server
客户端:frp_client
在这里我服务端和客户端都是使用的一台服务器安装的(可以分2台服务器主机,或者一台centos服务器主机和一台本地的linux(centos)电脑主机)
[root@myw ~]# cd /home
[root@myw home]# tar -zxvf frp_0.33.0_linux_amd64.tar.gz
frp_0.33.0_linux_amd64/
frp_0.33.0_linux_amd64/frps_full.ini
frp_0.33.0_linux_amd64/frps.ini
frp_0.33.0_linux_amd64/frpc
frp_0.33.0_linux_amd64/frpc_full.ini
frp_0.33.0_linux_amd64/frps
frp_0.33.0_linux_amd64/LICENSE
frp_0.33.0_linux_amd64/frpc.ini
frp_0.33.0_linux_amd64/systemd/
frp_0.33.0_linux_amd64/systemd/frpc@.service
frp_0.33.0_linux_amd64/systemd/frpc.service
frp_0.33.0_linux_amd64/systemd/frps.service
frp_0.33.0_linux_amd64/systemd/frps@.service
[root@myw home]# ls
frp_0.33.0_linux_amd64 frp_0.33.0_linux_amd64.tar.gz tomcat7
[root@myw home]# mv frp_0.33.0_linux_amd64 frp_server
[root@myw home]# tar -zxvf frp_0.33.0_linux_amd64.tar.gz
frp_0.33.0_linux_amd64/
frp_0.33.0_linux_amd64/frps_full.ini
frp_0.33.0_linux_amd64/frps.ini
frp_0.33.0_linux_amd64/frpc
frp_0.33.0_linux_amd64/frpc_full.ini
frp_0.33.0_linux_amd64/frps
frp_0.33.0_linux_amd64/LICENSE
frp_0.33.0_linux_amd64/frpc.ini
frp_0.33.0_linux_amd64/systemd/
frp_0.33.0_linux_amd64/systemd/frpc@.service
frp_0.33.0_linux_amd64/systemd/frpc.service
frp_0.33.0_linux_amd64/systemd/frps.service
frp_0.33.0_linux_amd64/systemd/frps@.service
[root@myw home]# mv frp_0.33.0_linux_amd64 frp_client
[root@myw home]# ls
frp_0.33.0_linux_amd64.tar.gz frp_client frp_server tomcat7
[root@myw home]#

frps.ini 这个s指的是server 服务端
frpc.ini这个c指的是client 客户端
centos下启动服务端
进入/home/frp_server里面找到frps.ini文件,修改原有文件内容,我的配置如下
bind_port = 36542 #绑定的端口,需要与客户端中 server_port 参数保持一致
vhost_http_port = 36543 #虚拟主机运行在本机的端口
dashboard_port = 36544 #后台web服务页面的端口
dashboard_user = mywadmin #后台服务页面的管理员用户名
dashboard_pwd = mywadmin #后台服务页面的管理员密码
privilege_token = myyhtw147258 #自定义token 必须与客户端中的 privilege_token 保持一致
[common]
bind_port = 36542
vhost_http_port = 36543
dashboard_port = 36544
dashboard_user = mywadmin
dashboard_pwd = mywadmin
privilege_token = myyhtw147258
配置文件里不能有注释,不然可能无法启动(很奇怪遇到的)
启动的指令
./frps -c ./frps.ini
[root@myw home]# cd /home/frp_server
[root@myw frp_server]# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
[root@myw frp_server]# chmod u+x frps
[root@myw frp_server]# ./frps -c ./frps.ini
2023/02/05 12:12:29 [I] [service.go:178] frps tcp listen on 0.0.0.0:36542
2023/02/05 12:12:29 [I] [service.go:220] http service listen on 0.0.0.0:36543
2023/02/05 12:12:29 [I] [service.go:277] Dashboard listen on 0.0.0.0:36544
2023/02/05 12:12:29 [I] [root.go:209] start frps success
这样的启动关闭窗口可能就关闭了,如此需要写一个脚本frp_server.sh 放在frp_server目录下
#!/bin/sh
nohup ./frps -c ./frps.ini &
[root@myw frp_server]# ls
frpc frpc_full.ini frpc.ini frps frp_server.sh frps_full.ini frps.ini LICENSE systemd
[root@myw frp_server]# chmod u+x frp_server.sh
[root@myw frp_server]# ./frp_server.sh
[root@myw frp_server]# nohup: appending output to ?.ohup.out?
^C
[root@myw frp_server]# netstat -lnp|grep frp
tcp6 0 0 :::36542 :::* LISTEN 1820/./frps
tcp6 0 0 :::36543 :::* LISTEN 1820/./frps
tcp6 0 0 :::36544 :::* LISTEN 1820/./frps
[root@myw frp_server]# ps aux | grep frp
root 1820 0.0 0.5 716052 22120 pts/0 Sl 12:18 0:00 ./frps -c ./frps.ini
root 1914 0.0 0.0 112808 964 pts/0 S+ 12:31 0:00 grep --color=auto frp
在frp_server/systemd里有service,找到frps.service打开并修改当前的路径配置
将配置好的frps.service文件放入/etc/systemd/system/里面后刷新加载
[Unit]
Description=Frp Server Service
After=network.target[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/frp_server/frps -c /home/frp_server/frps.ini[Install]
WantedBy=multi-user.target
[root@myw frp_server]# systemctl daemon-reload
[root@myw frp_server]# systemctl start frps.service
[root@myw frp_server]# netstat -lnp|grep frp
tcp6 0 0 :::36542 :::* LISTEN 2025/frps
tcp6 0 0 :::36543 :::* LISTEN 2025/frps
tcp6 0 0 :::36544 :::* LISTEN 2025/frps
[root@myw frp_server]# systemctl restart frps.service
[root@myw frp_server]# netstat -lnp|grep frp
tcp6 0 0 :::36542 :::* LISTEN 2045/frps
tcp6 0 0 :::36543 :::* LISTEN 2045/frps
tcp6 0 0 :::36544 :::* LISTEN 2045/frps
[root@myw frp_server]# systemctl stop frps.service
[root@myw frp_server]# netstat -lnp|grep frp
[root@myw frp_server]#
[root@myw frp_server]# systemctl enable frps.service
Created symlink from /etc/systemd/system/multi-user.target.wants/frps.service to /usr/lib/systemd/system/frps.service.
[root@myw frp_server]#
刷新:systemctl daemon-reload
启动:systemctl start frps.service
重启:systemctl restart frps.service
停止:systemctl stop frps.service
开机启动:systemctl enable frps.service
取消开机启动:systemctl disable frps.service
centos下启动客户端
进入/home/frp_client里面找到frpc.ini文件,修改原有文件内容,我的配置如下
server_addr = 127.0.0.1 服务端的IP地址
server_port = 36542 # 客户端的连接服务端的端口
privilege_token = myyhtw147258 # 服务端token 保持一致
type = tcp # 使用协议类型tcp
local_ip = 127.0.0.1 # 客户端的本地ip
local_port = 8081 # 客户端的本地端口
remote_port = 8082 # 内网穿透代理端 也就是用户访问frp服务端的端口
[common]
server_addr = 127.0.0.1
server_port = 36542
privilege_token = myyhtw147258[tomcat7]
type = tcp
local_ip = 127.0.0.1
local_port = 8081
remote_port = 8082
我这里8081端口是tomcat服务器,按理来说后续只需要访问8082端口就能访问到tomcat7
启动的指令
./frpc -c ./frpc.ini
如果权限不够
chmod u+x frpc
写一个脚本frp_client.sh 放在frp_client目录下
#!/bin/sh
nohup ./frpc -c ./frpc.ini &
[root@myw /]# cd /home/frp_client
[root@myw frp_client]# ls
frpc frpc_full.ini frpc.ini frp_client.sh frps frps_full.ini frps.ini LICENSE systemd
[root@myw frp_client]# chmod u+x frp_client.sh
[root@myw frp_client]# ./frp_client.sh
[root@myw frp_client]# nohup: appending output to ?.ohup.out?
^C
[root@myw frp_client]# ps aux | grep frp
nobody 2180 0.0 0.5 716052 22452 ? Ssl 12:58 0:00 /home/frp_server/frps -c /home/frp_server/frps.ini
root 2251 0.0 0.2 712224 9644 pts/1 Sl 13:06 0:00 ./frpc -c ./frpc.ini
root 2257 0.0 0.0 112808 964 pts/1 S+ 13:06 0:00 grep --color=auto frp
[root@myw frp_client]#
在frp_client/systemd里有service,找到frpc.service打开并修改当前的路径配置
将配置好的frpc.service文件放入/etc/systemd/system/里面后刷新加载
[Unit]
Description=Frp Client Service
After=network.target[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/frp_client/frpc -c /home/frp_client/frpc.ini
ExecReload=/home/frp_client/frpc reload -c /home/frp_client/frpc.ini[Install]
WantedBy=multi-user.target
[root@myw ~]# cd /home/frp_client
[root@myw frp_client]# systemctl daemon-reload
[root@myw frp_client]# systemctl start frpc.service
[root@myw frp_client]# systemctl enable frpc.service
Created symlink from /etc/systemd/system/multi-user.target.wants/frpc.service to /usr/lib/systemd/system/frpc.service.
[root@myw frp_client]# ps aux | grep frp
nobody 743 0.0 0.5 716052 22380 ? Ssl 13:14 0:00 /home/frp_server/frps -c /home/frp_server/frps.ini
nobody 1604 0.0 0.2 713376 9896 ? Ssl 13:16 0:00 /home/frp_client/frpc -c /home/frp_client/frpc.ini
root 1640 0.0 0.0 112812 964 pts/0 S+ 13:17 0:00 grep --color=auto frp
[root@myw frp_client]#
可以看到服务端和客户端都已启动的
刷新:systemctl daemon-reload
启动:systemctl start frpc.service
重启:systemctl restart frpc.service
停止:systemctl stop frpc.service
开机启动:systemctl enable frpc.service
取消开机启动:systemctl disable frpc.service
2.在windows下安装frp内网穿透代理
同样的在windows下使用frp部署frp_server和frp_client 配置文件信息除了IP根据具体外,其他的完全一致

启动2个服务(win系统的杀毒软件很烦人的,会把他认为是木马病毒)
mywadmin mywadmin



可以看到客户端内网穿透已经部署成功
访问(客户端主机)
http://127.0.0.1:8081
访问(服务端主机)
http://127.0.0.1:8082
在此处,都是一样的(因为在同一台电脑上部署的)
相关文章:

Centos和Window系统下Frp内网穿透
frp 是一个高性能的内网穿透的反向代理软件,支持 TCP、UDP、HTTP、HTTPS 等常见协议(TCP最常用),可以将处于局域网或者家用电脑主机、办公电脑主机通过中转服务器的方式暴露在公网里,使用户可以通过访问公网的IP(域名)…...
春招冲刺(四):flex布局面试题总结
flex布局面试题总结 Q1:什么是弹性盒布局? 特点:让元素对不同屏幕尺寸和不同显示设备做好适应。在响应式网站表现较好。 一、容器属性 Q2:display:flex和display:inline-flex的作用 使容器变成弹性布局,为其子元素…...

我的 System Verilog 学习记录(7)
引言 本文简单介绍 SystemVerilog 语言的 testbench 组件间通信和数据交互。 前文链接: 我的 System Verilog 学习记录(1) 我的 System Verilog 学习记录(2) 我的 System Verilog 学习记录(3ÿ…...

canvas复习笔记(绘制直线、矩形、圆形、圆弧)
canvas 画一条直线 <body><canvasid"c"width"300"height"200"style"border: 1px solid #ccc;"></canvas> </body><script>// 2、获取 canvas 对象const cnv document.getElementById("c");…...

LeetCode 653. 两数之和 IV - 输入二叉搜索树
653. 两数之和 IV - 输入二叉搜索树 难度:easy\color{Green}{easy}easy 题目描述 给定一个二叉搜索树 rootrootroot 和一个目标结果 kkk,如果二叉搜索树中存在两个元素且它们的和等于给定的目标结果,则返回 truetruetrue。 示例 1…...

【Datawhale图机器学习】图神经网络
图神经网络 GNN是一种连接模型,通过网络中节点之间的信息传递的方式来获取图中的依存关系,GNN通过从节点任意深度的邻居来更新该节点状态,这个状态能够表示状态信息。第一次在论文 The graph neural network model 中提出 与传统NN的区别&a…...

【项目精选】 javaEE采购管理系统(论文+视频+源码)
点击下载源码 本系统是一个独立的系统,用来解决企业采购信息的管理问题。采用JSP技术构建了一个 有效而且实用的企业采购信息管理平台,目的是为高效地完成对企业采购信息的管理。经过 对课题的深入分析,采购系统需实现以下功能模块࿱…...

【Servlet篇2】创建一个web项目
在上一篇文章当中,已经提到了什么是Maven,以及如何使用maven从中央仓库下载jar包。【Tomcat与Servlet篇1】认识Tomcat与Maven_革凡成圣211的博客-CSDN博客Tomcat,mavenhttps://blog.csdn.net/weixin_56738054/article/details/129228140?spm…...

Allegro如何手动让静态铜皮避让过孔操作指导
Allegro如何手动让静态铜皮避让过孔操作指导 在用Allegro做PCB设计的时候,如果铺的是静态铜皮,铜皮铺在过孔上会造成短路,需要手动避让下,如下图 下面介绍如何手动避让,具体操作如下 点击Shape点击Manual Void/Cavity...
Java使用SpringBoot的Filter来扩展管道请求
Java Spring Boot 是一个流行的 Java Web 开发框架,它提供了一些基本的 Web 管道功能。在 Spring Boot 中,Web 管道是通过一组过滤器、拦截器、控制器和视图解析器等组件组成的。 如果你需要扩展 Spring Boot Web 管道,可以考虑以下几种方式…...

「JVM 高效并发」锁优化
为了线程间更高效的共享数据及解决竞争问题,提高程序执行效率,JDK 6 做了大量锁优化,如适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁膨胀(Lock Coarsening…...

当园区物流遇上云计算,会发生什么事情?
顺丰供应链与亚马逊云科技的强强联手,可以给物流供应链企业带来怎样的启示?物流行业的数智化趋势在国内物流行业说起顺丰,相信是无人不知无人不晓。作为数字化供应链服务解决方案提供商,顺丰供应链可以提供端到端供应链的规划、管…...

作为测试开发岗的面试官,我都是怎么选人的?
最近一段时间面试了不少人,主要是一些测试开发岗,中高级的初级的也都有;也有一些偏业务测试岗的候选人。总结出了一些方法论,或者说更多的是个人作为面试官所遵守的一套面试准则。 1.什么是面试? 面试不仅仅是你问我…...

android事件分发机制源码分析
没什么用的前言责任链设计模式流程图源码分析 没什么用的前言 事件分发机制是面试中一道必问的题目,而我的应对方式则是,在网络上找一些博客看看,然后做一些笔记,最后在面试时将我自己记住的内容说出来。这种方式本身没有太大的…...

今天,小灰37岁了!
人们常常说,35岁是互联网人的中年危机。现在,小灰已经跨过了中年危机,倒不是因为小灰财务自由了,而是因为今天是小灰37岁的生日。年轻时候,小灰总觉得30岁是一个很遥远的年龄,而现在,小灰距离40…...

基于.NET 7 + iView 的前后端分离的通用后台管理系统开源框架
更多开源项目请查看:一个专注推荐.Net开源项目的榜单 今天给大家推荐一套前后端分离通用后台管理系统开源框架。 项目简介 这是基于.Net 7 Vue.js开发的、前后端分离框架,前端UI框架采用iView,该项目只有基础功能模块,不包含具…...
新一代通信协议—— RSocket
一、简介 RSocket 是一种二进制字节流传输协议,位于 OSI 模型中的5~6层,底层可以依赖 TCP、WebSocket、Aeron 协议。最初由 Netflix 开发,支持 Reactive Streams。其开发背后的动机是用开销更少的协议取代超文本传输协议(HTTP),H…...
【编程实践】这个代码命名规范是真优雅呀!代码如诗!!(多读优秀的开源代码,多实践,你也可以一样优秀!)
目录 管理类命名 传播类命名 回调类命名 监控类命名 内存管理类命名 过滤检测类命名 结构类命名 常见设计模式命名 解析类命名 网络类命名 CRUD命名 其他 End 管理类命名 写代码,少不了对统一资源的管理,清晰的启动过程可以有效的组织代码…...

Linux->进程终止和等待
目录 1. 进程终止场景 1.1 进程退出码 1.2 进程常见退出方式 2. 进程等待 2.1 进程等待的必要性 2.2 进程等待的方式 wait()方式 waitpid()方式 options参数 status参数 1. 进程终止场景 代码运行完毕,结果正确 代码运行完毕,结果不正确 代码异…...

超店有数分享:tiktok数据分析工具推荐,助你成功出海!
现阶段的跨境电商人都纷纷入局tiktok,这是风口也是发展趋势。Tiktok的下载量已经超过了35亿,每月都有10亿用户活跃,在154国家/地区使用。Tiktok用户每天在平均花1小时左右进行浏览,打开率也很高。如今,tiktok也越来越成…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...