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也越来越成…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...