阿里云服务器搭建FRP实现内网穿透-P2P

前言

  • 在了解frp - p2p之前,请先了解阿里云服务器搭建FRP实现内网穿透-转发: 文章地址

1、什么是frp - p2p

   frp(Fast Reverse Proxy)是一个开源的反向代理工具,它提供了多种功能,包括端口映射、流量转发和内网穿透等。在frp中,P2P(Peer-to-Peer)功能允许直接将数据从一个客户端传输到另一个客户端,而无需经过服务器中转。

2 、演示环境

在这里插入图片描述

一、各端文件配置

1、阿里云frps服务端配置

frps.ini

# 配置项的分类,通常使用 [common] 表示
[common]
# 指定frps服务端绑定的网口IP地址。如有网口1和网口2,一般使用 0.0.0.0 表示绑定所有可用的网络接口
bind_addr = 0.0.0.0
# 指定frps服务端监听的端口号(该端口需要防火墙或安全组放行),用于接收来自外部客户端的连接,可修改
bind_port = 7000# 用于验证客户端连接的令牌。客户端需要使用相同的令牌来与服务端建立连接,可修改
token = your_token# 其余配置可自行增加

启动命令:./frps -c frps.ini

2、B电脑frpc客户端配置

frpc.ini

[common]
# 自己的frps服务器,阿里云服务器绑定的域名(国内服务器绑定的域名需要备案)或公网IP地址
server_addr = X.X.X.X
# frps服务端监听的端口号
server_port = 7000# 令牌,和服务端一致
token = your_token# p2p点对点连接失败时,改用转发访问(转发)
[web_1]
# 使用TCP协议进行转发
type = tcp
# 应用程序本地的IP,默认即可
local_ip = 127.0.0.1
# 应用程序本地的访问端口号
local_port = 3030
# 应用程序外网的访问端口号
remote_port = 9000# 配置节点名称,可修改,在frps中名称需要唯一(p2p点对点连接)
[p2p_web]
# 节点类型为 xtcp 协议,用于点对点通信
type = xtcp
# 密钥,用于加密和解密通信内容,确保通信的安全性,可修改
sk = 123456789
# 本地 IP 地址,指定了节点所在的网络地址(可以填写局域网内其他服务器地址[local_port端口保持一致],这台设备用于frpc和frps建立连接)
local_ip = 127.0.0.1
# 本地端口号,指定了节点监听的网络端口
local_port = 3030
# 是否使用加密,在通信过程中对数据进行加密保护
use_encryption = true

启动命令:./frpc -c frpc.ini

3、A电脑frpc客户端配置

frpc.ini

[common]
# 自己的frps服务器,阿里云服务器绑定的域名(国内服务器绑定的域名需要备案)或公网IP地址
server_addr = X.X.X.X
# frps服务端监听的端口号
server_port = 7000# 令牌,和服务端一致
token = your_token[p2p_web_visitor]
# 使用 xtcp 协议进行通信
type = xtcp
# 定义当前角色为访问端
role = visitor
# 指定B客户端的节点名称
server_name = p2p_web
# 设置与B客户端进行通信的密钥
sk = 123456789
# 绑定地址为本地回环地址 127.0.0.1,即只监听来自本机的连接, 可修改
bind_addr = 127.0.0.1# 绑定端口号为 9000,用于接收来自服务器的连接请求, 可修改
bind_port = 9000
# 当需要自动隧道持久性时,将其设置为true
keep_tunnel_open = false
# 启用加密功能,确保与服务器之间的通信数据得到保护
use_encryption = true

启动命令:./frpc -c frpc.ini

三、阿里云端口开放

  • 7000(frps服务端监听端口)、9000(网站端口)

以上部署完成后,用户在A电脑浏览器中使用127.0.0.1:9000就能访问到B服务器了(穿透成功才能访问,不成功者需要走转发:X.X.X.X:9000)

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

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

相关文章

归并排序之从微观看递归

前言 这次,并不是具体讨论归并排序算法,而是利用归并排序算法,探讨一下递归。归并排序的特点在于连续使用了两次递归调用,这次我们将从微观上观察递归全过程,从本质上理解递归,如果能看完,你一…

Wlan——STA上线流程与802.11MAC帧讲解以及报文转发路径

目录 802.11MAC帧基本概念 802.11帧结构 802.11MAC帧的分类 管理帧 控制帧 数据帧 STA接入无线网络流程 信号扫描—管理帧 链路认证—管理帧 用户关联—管理帧 用户上线 不同802.11帧的转发路径 802.11MAC帧基本概念 802.11协议在802家族中的角色位置 其中802.3标…

搭建开发环境-Windows

写C# 的请出去。 然后,Windows 是最好的Linux发行版。搭建开发环境-WSLUbuntu

【Git Bash】简明从零教学

目录 Git 的作用官网介绍简明概要 Git 下载链接Git 的初始配置配置用户初始化本地库 Git 状态查询Git 工作机制本地工作机制远端工作机制 Git 的本地管理操作add 将修改添加至暂存区commit 将暂存区提交至本地仓库日志查询版本穿梭 Git 分支查看分支创建与切换分支跨分支修改与…

Redisi缓存的击穿、穿透、雪崩,介绍一下

缓存击穿 缓存击穿是指在高并发场景下,缓存中的某个 key 失效,此时大量请求同时涌入数据库查询该 key 的数据,导致数据库瞬间压力过大,甚至宕机。缓存击穿的最佳解决方案是使用互斥锁,令只有一个线程可以从数据库中查…

leetcode500. 键盘行

【简单题】 给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 美式键盘 中: 第一行由字符 "qwertyuiop" 组成。第二行由字符 "asdfghjkl" 组成。第三行由字符 "zxcvbnm&…

React 面试题集锦

目录 如果想要在组件第一次加载后获取该组件的dom元素,应当在以下哪个生命周期中进行 React支持的键盘事件是 使用严格模式(Strict Mode)优点 React 动态引入组件 当使用ReactDOM.unmountComponentAtNode从DOM中卸载组件时 说一下useS…

Nacos集群

需要与Nginx配合。 这是使用三个Nacos来搭建集群。 创建mysql数据库nacos。 配置Nacos 进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf。 在cluster.conf文件的最后加上: #it is ip #example 127.0.0.1:8…

通俗理解DDPM到Stable Diffusion原理

代码1:stabel diffusion 代码库代码2:diffusers 代码库论文:High-Resolution Image Synthesis with Latent Diffusion Models模型权重:runwayml/stable-diffusion-v1-5 文章目录 1. DDPM的通俗理解1.1 DDPM的目的1.2 扩散过程1.3 …

测试框架pytest教程(6)钩子函数hook开发pytest插件

pytest hook 函数也叫钩子函数,pytest 提供了大量的钩子函数,可以在用例的不同生命周期自动调用。 比如,在测试用例收集阶段,可利用 hook 函数修改测试用例名称的编码。 pytest的hook是基于Python的插件系统实现的,使…

Tokenview再度升级:全新Web3开发者APIs数据服务体验!

Tokenview发布全新版本的区块链APIs和数据服务平台,为开发者打造更强大、更便捷的开发体验! 此次升级,我们整合了开发者使用习惯以及Tokenview产品优势。我们深知对于开发者来说,时间是非常宝贵的,因此我们努力提供一…

蚂蚁 SOFAServerless 微服务新架构的探索与实践

赵真灵(有济) 蚂蚁集团技术专家 Serverless 和微服务领域专家曾负责基于 K8s Deployment 的应用发布运维平台建设、K8s 集群的 Node/pod 多级弹性伸缩与产品建设。当前主要负责应用架构演进和 Serverless 相关工作。同时也是 SOFAArk 社区的开发和维护者…

基于上下文管理器context的timer

文章目录 1. 用 上下文管理器实现计时2. 打印结果 1. 用 上下文管理器实现计时 #!/usr/bin/env python # -*- coding:utf-8 -*- # FileName :MyTimer.py # Time :2023/8/27 13:57 # Author :Jason Zhang import time import mathclass Timer:# 定义开始时间def __ent…

我的数据上传类操作(以webDAV为例)

在登录处进行初始化&#xff1a; 1.读取配置 GModel.ServerSetin JsonToIni.GetClass<ServerSet>(ConfigFiles.ConfigFile);if (!string.IsNullOrWhiteSpace(GModel.ServerSetin.FTPUser)){OPCommon.NetControls.NetworkShareConnect.connectToShare(GModel.ServerSeti…

两款开箱即用的Live2d

目录 背景第一款&#xff1a;开箱即用的Live2d在vue项目中使用html页面使用在线预览依赖文件地址配置相关参数成员属性源码 模型下载 第二款&#xff1a;换装模型超多的Live2d在线预览代码示例源码 模型下载 背景 从第一次使用服务器建站已经三年多了&#xff0c;记得那是在2…

Element-Ui Select下拉框无限滚动调分页接口(自定义指令)

需求: 想要一次加载10条数据&#xff0c;滚动条加载到底部触发下一个十条数据&#xff0c;无限循环直到无数据 一、首先在src下创建一个js文件&#xff0c;完成自定义指令的编写 directives.js import Vue from vueexport default () > {Vue.directive(selectScroll, {bind…

私有IP地址定义、私有IP地址范围(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)

文章目录 私有IP地址定义和范围私有IP地址的使用将局域网中的ip地址设为私有IP地址范围之外的地址&#xff0c;会有什么后果&#xff1f;参考资料 私有IP地址 私有IP地址是在互联网上不被路由的IP地址&#xff0c;专门为组织内部网络&#xff08;如企业内部、学校等&#xff0…

【沐风老师】如何在3dMax中将3D物体转化为样条线构成的对象?

在3dMax中如何把三维物体转化为由样条线构成的对象&#xff1f;通常这样的场景会出现在科研绘图或一些艺术创作当中&#xff0c;下面给大家详细讲解一种3dmax三维物体转样条线的方法。 第一部分&#xff1a;用粒子填充3D对象&#xff1a; 1.创建一个三维对象&#xff08;本例…

【java】one record is expected, but the query result is multiple records

报错&#xff1a;one record is expected, but the query result is multiple records&#xff0c;意思是&#xff1a;需要一条记录&#xff0c;但查询结果是多条记录。这个问题很常见&#xff0c;但是进过排查&#xff0c;是用户表【手机号唯一原则】查询时候发现是时候多出来…

echarts实现双x轴并且分组滚动效果

var myChart echarts.init(document.getElementById(allOutPut1));var option {legend: {itemHeight: 10, // 图例icon高度itemWidth: 16, // 图例icon宽度icon:rect,//设置为矩形top:2%,right:10%,},tooltip: {trigger: axis,axisPointer: {type: shadow},textStyle: {fontS…