用frp搞个内网穿透

news2025/2/23 1:11:39

使用场景:

        在公司用电脑敲代码,环境都是localhost,有时候你要接第三方接口比如支付、或者企业微信的事件回调等,都需要一个公网地址,因为这时候是开发阶段,你即想要公司电脑上运行的环境又想要回调能找到你的公司电脑。

        首先,在公司的所有电脑连wifi或者有线,都是共用一个公网ip对外访问,所以公司肯定不会给你一个单独的公网ip放你电脑上啦。

用frp搞个内网穿透,步骤提要:

        1 自己的云服务器(公网ip),

        买服务器就不教了,有钱啥配置都能买,没钱就买最低配置,仅做学习用。

如何远程连接云服务器_坐等夕阳落time的博客-CSDN博客_如何访问云服务器

        2 下载frp

        3 自己的云服务器配置frp服务端

        4 自己公司电脑配置frp客户端

1 下载frp

ps: 要把自己电脑上的杀毒软件,xx管家关了,否则下载不了的哦。

frp是一个开源项目,所以,你们别被收费了。

https://github.com/fatedier/frp

 frp下载地址

Releases · fatedier/frp · GitHub

  下载完了解压

 2 介绍文件

介绍一下解压包里的各个文件

 文件名带full,没有被使用,可以说它是一个配置参考文档,里面含着所有配置,你需要的时候可以去里面找,里面用英文介绍了每条配置的意思,但是英语不好的缺配置的时候,还是上网搜索吧。

3 开始使用

 文档 | frp

能力强的小伙伴可以自己看着官方文档弄,这个能力是一定要自己掌握的,所以我的文章都会放上官方的文档链接。

 1  自己的云服务器配置 frp服务端

主要是有公网ip的配置frp服务端,这样才能做到内网穿透,访问公网ip相当于访问到你的内网机子。

1.1 服务端配置编写 ---  frps.ini 文件

我用的: 

[common]
# frp服务端监听的端口,默认是7000
bind_port = 7000
# 身份验证令牌,在客户端使用
token = 52010

# frp管理后台端口,可修改
dashboard_port = 7500
# frp管理后台用户名和密码,可修改
dashboard_user = admin
dashboard_pwd = admin
# 开启监控
enable_prometheus = true

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

编写完配置,我们就把这个linux的frp文件夹上传到云服务器

1.2 在云服务器启动frp的服务端服务 ---- frps

1.2.1 关闭frps服务

因为我的服务器上已经启动过frps服务了,所以我先把它关一下

# linux 上查看运行的服务列表
netstat -lntp

# linux 上关闭frps
sudo systemctl stop frps

1.2.2 启动frps服务

我以前下的版本里会有frps.service文件,现在这个0.45.0版本没有了

但是官方文档有教程

使用 systemd | frp

主要是ExecStart,填写frps的安装路径

因为为了做好备份,所以,不建议直接填写安装包文件夹的路径(就是你上传到服务器的那个文件夹frp_0.45.0_linux_amd64),主要还是规范,当然你可以随意。

所以参照frp以前旧版本中的frps.service,我们把frps文件复制放到 /usr/bin,把frps.ini复制放在 /etc/frp(这些文件操作我都是用WinSCP搞的,熟linux命令的可以直接命令弄哈)

 

 

最后一步:把你写好的 frps.service 文件复制到 /etc/systemd/system 或 /usr/lib/systemd/system/

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy=multi-user.target

使用 systemd 命令,管理 frps,一般执行linux命令,都会加个sudo 超管身份执行

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
# 配置 frps 开机自启
systemctl enable frps
# 启动frp
sudo systemctl start frps

 1.2.3 查看frps服务成功没有

# 查看frp状态
systemctl status frps

不使用 systemd  ,单独运行 /usr/bin/frps -c /etc/frp/frps.ini 看看

/usr/bin/frps -c /etc/frp/frps.ini

 Permission denied 是因为ftps文件没有执行权限,给加上执行权限

一定要注意你执行命令时候的目录,因为路径错了,命令就执行失败,ftps文件放在了 /usr/bin ,执行 chmod 777 frps,加上权限

chmod 777 frps

 1.2.4 再去访问一下frps的管理后台

如果你运行启动命令时,没报错误,你就访问之前服务端配置文件 frps.ini 里设置的后台

ps: 云服务器记得防火墙开一下端口,不然访问不到

 

ip+端口( frps.init 里配的7500) 

 2 自己公司电脑配置 frp客户端 (内网)

公网frp服务端启动好了,开始内网frp客户端的配置,我用的是公司电脑,所以是windows系统的步骤和配置frp服务端一样。

ps: 要把自己电脑上的杀毒软件,xx管家关了。

1.1 客户端配置编写 ---  frpc.ini 文件

我用的: 

[common]
server_addr = 云服务器ip(公网ip)
server_port = 7000
# frps.init 上配置的身份令牌
token = 52010

# 配置ssh服务
# [ssh]
# type = tcp
# local_ip = 127.0.0.1
# local_port = 22
# 自定义
# remote_port = 20202

# 配置http服务,可用于小程序开发、远程调试等
# [web]
# type = http
# local_ip = 127.0.0.1
# local_port = 8080
# web域名
# subdomain = xxx.xxx.cn
# 自定义
# remote_port = 8080

# 上面的两个服务我都用不到,写在那里万一以后用到了
# 我主要用的下面这个服务[自定义命名],[ssh]这样的名称必须全局唯一,可以[ssh1]
[company_pc]
type = tcp
local_ip = 127.0.0.1
# 我本机跑的后端服务端口(springboot)
local_port = 9500
# 自定义,之后就是云服务器ip加这个remote_port,就能访问到你本机
remote_port = 13389

ps: 云服务器记得防火墙开一下remote_port填写的端口,不然访问不到

1.2 在自己公司电脑启动frp的客户端服务 ---- frpc

1.2.1 关闭frpc服务

我电脑之前跑过服务,先关了。 ctrl+alt+delete 选择任务管理器,然后 ctrl+f 输入frp 就找到了frpc服务, 鼠标右键结束任务就行。

1.2.2 启动frpc服务

打开下载的frp文件夹,在路径栏,输入cmd,回车:

 命令行窗口运行:

cmd /c frpc.exe -c frpc.ini

想后台运行frpc服务:

创建一个frpc.vbs文件

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c frpc.exe -c frpc.ini",vbhide

鼠标双击运行即可。

3 开始试试,用公网ip能不能调用内网的服务

启一个9500服务:

apifox 调接口: 

 成功访问到了!之后用来在内网环境开发时,第三方的接口回调地址,比如支付、企业微信事件回调等

 参考

使用frp配置内网访问(穿透)教程(超详细,简单)_*Lisen的博客-CSDN博客_frp内网穿透

使用 systemd | frp

【Linux】使用 systemd 管理 frp 服务_chensuanfa的博客-CSDN博客_frp systemd

【frp内网穿透工具】服务端frps和客户端frpc在Linux和Windows下开机启动并隐藏启动的方法 – 星星芦苇

Frp穿透技术_冰羽呐的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年首家民营征信机构浙江同信获企业征信备案公示

2022年首家民营征信机构浙江同信获企业征信备案公示 2022年11月1日,中国人民银行杭州中心支行公示了浙江同信企业征信服务有限公司企业征信机构备案,该机构为浙江省进行备案公示的第九家机构。其他八家分别为芝麻信用管理有限公司、浙江有数数智科技有限…

Transform介绍(1)

文章目录1. transform 方法2. transform 增量模式3. 注册 Transform使用Transform的常见场景有埋点统计、耗时监控、方法替换 通过上图以我们了解下transform的作用,transform在 class 到 dex 之间工作,处理包括 javac 编译后的字节码文件,每…

【Linux内核系列】进程调度

目录 一、为什么要调度 二、调度均衡 三、进程调度框架 3.1 调度队列 3.2 进程唤醒 3.3 调度时机 主动调度: 被动调度: 四、调度算法 4.1 先来先服务调度算法 4.2 最短作业优先调度算法 4.3 高响应比优先调度算法 4.4 时间片轮转调度算法 …

洛谷千题详解 | P1007 独木桥【C++、Pascal语言】

博主主页:Yu仙笙 专栏地址:洛谷千题详解 目录 题目背景 题目描述 输入格式 输出格式 输入输出样例 解析: C源码: Pascal源码: ------------------------------------------------------------------------------------…

NFT 推荐|辛迪加黑市系列第一弹

由 Planet Rift 呈现! 塞巴星球的辛迪加已经洗劫了政府,现在是时候揭开补给品的神秘面纱了! 辛迪加黑市系列的第一弹包括 30 个由 Planet Rift 宇宙设计的资产。其中首次发售的包含 4 套未来风格的盔甲、3 台彩色自动售货机和其他装备。 别忘…

项目管理之项目干系人

目录 前言 一、项目干系人的重要性 二、项目干系人管理过程 三、识别干系人 1.识别干系人的概念定义 2.识别干系人的输入 3.干系人分类模型 4.识别干系人的工具与技术 5.识别干系人的输出 四、规划干系人管理 1.规划干系人的输入 2.规划干系人的工具与技术 3.规划…

电脑蓝屏是哪里出了问题?不一定要非要重装系统

电脑蓝屏是非常常见的电脑故障现象,导致电脑蓝屏的原因很多,很多人第一时间反应可能是给电脑重装系统,但是有时并不能解决问题。那么电脑蓝屏是哪里出了问题呢?其实导致蓝屏不一定是系统故障,还有很多情况也会出现蓝屏…

Python3,爬虫有多简单,一个库,一行代码,就OK, 你确定不来试试?

爬虫进阶库:Scrapeasy1、 引言2、Scrapeasy2.1 简介2.1.1 Scrap2.1.2 Scrapeasy2.2 安装2.3 代码示例3、总结1、 引言 小屌丝:鱼哥, 我最近在练习写爬虫, 你有没有什么便捷的方式… 小鱼:比如呢? 小屌丝&a…

公众号网课查题接口

公众号网课查题接口 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击…

【C】自定义类型(二)位段,枚举,联合

🙈个人主页: 对de起日子 👉系列专栏:【C语言–大佬之路】 🎈今日心语:谨慎的选择自己的生活,不要轻易让自己迷失在各种诱惑里。 前一章我们介绍了结构体,这一章我们来介绍一下内容&a…

大猩猩优化算法(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

springboot:整合其它项目

目录 一、集成Druid application.yml 二、集成redis之非注解式开发 pom.xml application.yml RedisConfig ClazzBizImpl.java 三、集成redis之注解缓存开发 RedisConfig RedisConfig 一、集成Druid 在昨天的基础上 参考网址 https://github.com/alibaba/druid/tre…

C---指针

目录指针偏移问题:为什么用指针?1.强制给指针选地址:2.交换两个变量的值指针与数组1.指针数组:数组中的每一项都是个指针2. 指针数组的用法数组指针:一个指向数组的指针函数指针:malloc内存泄露&#xff08…

洛谷千题详解 | P1005 [NOIP2007 提高组] 矩阵取数游戏【C++、 Java、Python语言】

博主主页:Yu仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C源码: Java源码: Python源码: ----------------------------------------------------------------------…

论文阅读之RETHINKING POSITIONAL ENCODING IN LANGUAGE PRE-TRAINING

文章目录论文阅读总结参考论文阅读 文章大概提出了两个问题: 1.对于原来的transformer或者bert的embedding中,直接将word embedding(词向量)和positional embedding (位置编码)相加是不合理的,…

Netty入门——组件(Channel)一

目录一、channel的主要作用二、EventLoop处理io任务代码示例2.1、服务端代码示例2.2、客户端代码示例2.3、服务端和客户端查看控制台输出结果三、ChannelFuture连接问题代码示例3.1、服务端代码示例3.2、客户端代码示例3.3、服务端和客户端查看控制台输出结果3.4、ChannelFutur…

MyBatis的二级缓存

MyBatis的二级缓存 二级缓存是SqlSessionFactory级别,通过同一个SqlSessionFactory创建的SqlSession查询的结果会被缓存;此后若再次执行相同的查询语句,结果就会从缓存中获取。 二级缓存开启的条件: 1.在核心配置文件中&#x…

软件测试:写一个好的测试用例

测试场景: 为登录功能设计测试用例 测试员为什么要会编测试用例 测试员的目标是要保证系统在各种场景下的功能是符合设计要求的。而测试用例就是测试员想到的测试场景。(这也是高级别的测试员即使不会代码也能找到较好工作的原因) 编写测试…

数据库2,DQL数据查询语言,表关联关系

目录 DQL数据查询语言 简单查询语句 计算列 别名 distinct消除重复行 条件查询 条件运算符 null值判断 枚举查询 模糊查询 分支查询 函数 字符串函数 聚合函数 排序查询 分组查询Group by 分页查询Limit 表关联关系 一对一关联 一对多与多对一 多对多关联 …

[CKA备考实验][ingress-nginx] 4.2 集群外访问POD

1.创建Deployments 部署方法请参照: https://blog.csdn.net/qq_33868661/article/details/127505429?spm1001.2014.3001.5501 apiVersion: apps/v1 kind: Deployment metadata:labels:name: deploy1annotations:name: deploy1name: deploy1namespace: default sp…