【搬砖实战】2024年了,还有人不会搭建内网穿透吗?

在这里插入图片描述

😊你好,我是小航,一个正在变秃、变强的文艺倾年。
🔔本文讲解动手自己搭建内网穿透,期待与你一同探索、学习、进步,一起卷起来叭!

目录

  • 一、前言
    • 内网穿透是什么?
    • frp介绍:
    • 工作原理:
    • 代理:
    • 代理类型:
  • 二、部署
    • 服务端:
    • 客户端:

一、前言

内网穿透是什么?

💭内网穿透是我们在进行网络连接时的一种术语,也叫做NAT穿透,即在计算机是局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,有时候就会出现内网穿透不支的情况。内网穿透的功能就是,当我们在端口映射时设置时,内网穿透起到了地址转换的功能,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式ADSL的宽带路由器,具有一个动态或者是固定的公网IP,最后ADSL直接在 交换机上,这样所有的电脑都可以共享上网。内网穿透除了可以实现内网之间机器的网络通信功通之外,还可以解决UDP中出现的数据传输不稳定问题。

简单说,就是A客户端要访问B客户端,通过一台服务器进行桥接,桥接有两种方式,一种是相互转发,另一个是告诉对方的地址,自己就当一个介绍人的角色。

在这里插入图片描述
小明的电脑和张三家里的电脑分别处在两个不同的局域网内,如果小明想访问张三家电脑的资源,这时就需要运用到内网穿透。借助frp端口映射技术进行内网穿透

张三在家办公想用家里的电脑,访问公司的电脑资源,这时也可以借助frp工具进行内网穿透进行实现

总结:在一个可以访问互联网的设备上,访问一个内网中的资源。

frp介绍:

frp 是一个用Go语言开发的,可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 、 http 和 https。可将一个部署在本机的web服务映射到外网。

🚩 官方文档:https://github.com/fatedier/frp/

工作原理:

frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。

由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。

具体工作流程如下:

  1. 服务端运行,监听一个主端口,等待客户端的连接;
  2. 客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
  3. 服务端fork新的进程监听客户端指定的端口;
  4. 外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
  5. 客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。

代理:

在 frp 中,一个代理对应一个需要公开访问的内网服务。一个客户端可以同时配置多个代理,以满足不同的需求。

代理类型:

frp 支持多种代理类型,以适应不同的使用场景。以下是一些常见的代理类型:

  • TCP:提供纯粹的 TCP 端口映射,使服务端能够根据不同的端口将请求路由到不同的内网服务。
  • UDP:提供纯粹的 UDP 端口映射,与 TCP 代理类似,但用于 UDP 流量。
  • HTTP:专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
  • HTTPS:类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
  • STCP:提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
  • SUDP:提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
  • XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。
  • TCPMUX:支持服务端 TCP 端口的多路复用,允许通过同一端口访问不同的内网服务。

每种代理类型适用于不同的使用情境,可以根据需求选择合适的代理类型来配置 frp。

二、部署

💭 准备条件:

  1. 云服务器或具有公网IP的服务器,用于安装frp服务端(frps),推荐开启端口:7000-7015、7500
  2. 需要内网穿透的服务器,如树莓派,将安装frp客户端(frpc),推荐开启端口:7000,7400,额外的端口号
  3. 上述1和2的服务器均安装好Docker

服务端:

mkdir -p  /data/frp
vim /data/frp/frps.ini
[common]
# 服务器开放给客户端的frp端口
bind_port = 7000
# http端口
vhost_http_port = 7010
# https端口
vhost_https_port = 7011

# 控制面板端口,用户名,密码
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin123456

# 自己用于frp服务的域名或者ip地址
subdomain_host = xxxxxxxx
# frps服务token,拥有此token的客户端才允许连接
token = ipbd
docker pull snowdreamtech/frps

docker run --restart=always --network host -d -v /data/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

访问服务器IP:7500,输入账号密码,就可以看到dashboard页面了
在这里插入图片描述

客户端:

Linux端:

mkdir -p  /data/frp
vim /data/frp/frpc.ini
[common]
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin123456
# 打开浏览器通过 http://127.0.0.1:7400 访问 Admin UI

# frps服务器地址,可用域名,即服务端的域名或者ip
server_addr = XXX.XXX.XXX.XXX
server_port = 7000
token = ipbd

[admin_ui]
type = tcp
local_port = 7400
remote_port = 7400

# 推荐协议使用TCP
[tcp]
type = tcp
local_ip = 127.0.0.1
# 本地端口号
local_port = 8000
# 远程端口号
remote_port = 7001

# [web]
# type = http
# local_port = 8000
# custom_domains = XXXX
docker pull snowdreamtech/frpc

docker run --restart=always --network host -itd -v /data/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc

连接成功:
在这里插入图片描述
本地服务测试:

docker run --name testNginx -d -p 8000:80 nginx

在这里插入图片描述
远程服务测试:
在这里插入图片描述
测试成功!

📌 [ 笔者 ]   文艺倾年
📃 [ 更新 ]   2024.5.12
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,
              本人也很想知道这些错误,恳望读者批评指正!

在这里插入图片描述

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

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

相关文章

Golang SDK安装

windows环境安装 1.链接: 下载地址 2.安装SDK 检查环境变量: 3.开启go modules,命令行执行一下命令: go env -w GO111MODULEon4.设置国内代理,命令行执行一下命令: go env -w GOPROXYhttps://proxy.golang.com.cn,https:/…

【Linux】进程信号(2万字)

目录 前言 一、生活角度的信号 1.1、我们来见一见信号: 1.2、模拟一下 kill 指令 二、信号的处理 三、产生信号的5种方法 3.1、kill命令 3.2、键盘可以产生信号 3.3、3种系统调用 3.4、软件条件 3.5、异常 四、比较 core 和 Term 五、键盘信号产生 六…

AI绘画如何变现?stablediffusion小白上手指南:2个工具+4个渠道

公司一计算机大佬,用AI画画一个月搞钱1w,画着画着都快超过本职工资了。费了点小心思整理出这篇文章,把搜刮来的一手经验全盘托出,觉得有用的友友记得点赞收藏哦! 我有个朋友学设计的,今年找了大半年工作&a…

【轮转数组】力扣python

1.python切片 这里nums[:]代表列表 class Solution:def rotate(self, nums: List[int], k: int) -> None:nlen(nums)nums[:]nums[-k%n:]nums[:-k%n] 2.边pop边push 0代表插入的位置 class Solution:def rotate(self, nums: List[int], k: int) -> None:nlen(nums)fo…

OpenAi 免费GPT-4o来袭,音频视觉文本实现「大一统」

今天凌晨,即北京时间5月14日1点整,OpenAI 召开了首场春季发布会,CTO Mira Murati 在台上和团队用短短不到30分钟的时间,揭开了最新旗舰模型 GPT-4o 的神秘面纱,以及基于 GPT-4o 的 ChatGPT,均为免费使用。 …

试试这四个AI论文工具和降重技术,低成本高回报

在科研领域,AI写作工具如同新一代的科研利器,它们能够极大提高文献查阅、思路整理和表达优化的效率,本质上促进了科研工作的进步。AI写作工具不仅快速获取并整理海量信息,还帮助我们精确提炼中心思想,显著提升论文写作…

智能终端RK3568主板在智慧公交条形屏项目的应用,支持鸿蒙,支持全国产化

基于AIoT-3568A的智慧公交条形屏,可支持公交线路动态展示,语音到站提醒,减少过乘、漏乘的情况,有效提高了公交服务效率和质量,为乘客提供了更舒适、更安全和更方便的出行体验,为城市的发展增添了新的活力。…

WS2812B-2020 智能控制LED集成光源芯片IC

一般说明 WS2812B-2020是一款智能控制LED光源,它的外部采用了最新的模压封装技术,控制电路和RGB芯片集成在一个2020组件中。其内部包括智能数字端口数据锁存器和信号整形放大驱动电路。还包括一个精密的内部振荡器和一个电压可编程恒流控制部分&…

从零开始学习Linux(8)----自定义shell

shell从用户读入字符串“ls”,shell建立一个新的进程,然后在那个进程中运行ls程序并等待那个进程结束。然后shell读取新的一行输入,建立一个新的进程,在这个进程中运行程序,并等待这个进程结束。所以要写一个shell&…

iZotope RX 11 for Mac:音频修复的终极利器

在音频制作的浩瀚星海中,每一份声音都是珍贵的宝石,但往往被各种噪音、杂音所掩盖。此刻,iZotope RX 11 for Mac犹如一位专业的匠人,以其精湛的技术,将每一份声音雕琢至完美。 iZotope RX 11 for Mac,这是…

【源码】二开 欧亚版自动抢单系统源码(中、英、泰、日四语言)

二开 欧亚版自动抢单系统源码(中、英、泰、日四语言) 这个版本除了前台界面做了一些改变,同时功能细节上也做了一些改动。 如增加订单、充值、提现假人管理;增加短信开关,增加短信宝、阿里云、云之讯短信接口;增加商品匹配区间设…

男士内裤有什么牌子?2024年公认男士内裤口碑最好的品牌

对于男性来说,一条内裤都是可以穿好久的存在。但实际上作为贴身衣物的内裤,最好是3-6月就更换一次是最好的,如果长期不更换会使内裤的舒适性透气性降低,而且残留细菌无法得到清除! 面对市面上琳琅满目的品牌和材质分类…

vscode调试Electron+ts

调试Electronjs 调试Electronjs: https://www.electronjs.org/zh/docs/latest/tutorial/debugging-vscode 调试Electronts 首先看一下,我的目录结构。目录结构决定了launch.json中的路径部分。我将在项目根目录下进行调试,项目根目录下包含electron代码…

3款游戏录屏软件,记录你的精彩瞬间!

随着科技的飞速发展,游戏行业迎来了前所未有的繁荣。在游戏世界中,录屏功能成为了一项重要的辅助功能,它不仅能够帮助玩家记录精彩的游戏瞬间,还可以用于游戏教学、解说、直播等多种场景。本文将详细介绍三款主流的游戏录屏软件&a…

如何把root账号的文件修改为tank账号

linux系统 以当前用户命令创建的目录都是root的用户并且是只读的: 用优盘拷贝的文件及文件夹的权限是: 解决方案是:把root账号的文件修改为tank账号 在Linux系统中,如果您需要将属于root用户的文件或目录的所有权更改到另一个用…

裸机工程开发调试

裸机工程开发调试 嵌入式系统的组成 嵌入式系统设备遵循自底向上的基本结构 嵌入式微处理器 嵌入式操作系统 外围硬件设备 用户应用程序 ###s5p6818系统主要资源 s5p6818是三星公司推出的64位RISC微处理器, 其CPU采用的是ARM CortexA53内核, 基于ARMv7和ARMv8指…

U盘打不开提示格式化怎么办?(含数据恢复及U盘修复教程)

引言: 随着数字化时代的发展,U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而,有时我们可能会遇到U盘突然无法打开,并提示需要格式化的问题。这不仅会打乱我们的工作节奏,还可能会导致重要数据丢失。本文…

深度解析:亚马逊自养号测评系统构建全攻略

在当今日益激烈的平台竞争环境下,众多商家纷纷感受到传统运营模式的挑战,常规的广告和营销手段逐渐显得力不从心。为了突破这一困境,商家们开始寻求新的推广途径,其中,自养号测评作为一种新兴且有效的推广方式&#xf…

程序员之路:裁员与内卷下的生存之道

作为一名普通的程序员,身处这个瞬息万变的IT行业,面对着今年不断加剧的裁员浪潮和日益激烈的内卷竞争,我时常感到焦虑和不安。然而,正是这些挑战,让我们更加深入地思考了在这个行业中,我们该如何找到自己的…

vue3 - 150

目录 vue优势使用方式编写vue代码指令响应式数据其他 vue优势 功能全面生态好,语法简洁效率高,免去 DOM 操作苦,开发重任一肩挑! 使用方式 1.通过cdn引入来将 Vue 应用到整个页面 2.或通过官方脚手架 create-vue来创建完整的v…