手动部署内网穿透

news2024/11/16 1:53:20

关于内网穿透,主要针对什么是公网和内网?NAT转化技术等引出内网穿透方法。

本文主要技术是利用frp部署内网穿透、以及nagix部署web服务。

测试环境:

  • 服务器:Linux云服务
  • 内网:用本地WM充当内网
  • 云服务器Linux:验证内网穿透

什么是公网和内网?

为了搞清楚什么是公网和内网,就要从IP地址谈起。我们现在用的网络层协议大部分是IPV4,当然也存在IPV6(IPv6不存在内容穿透,这里不做讨论)。

IPv4的地址是以32位bit,在当今的发展下,如果为每一台主机都偶配一个独一无二的ip地址,是不可能的。更别说IP地址会被划分成好几类,能够真正被我们使用的地址少之又少。

因此一种技术将IP地址分成全局和局部的地址被人们认可。

规定在全局的网络地址是不可重复的,而处于局部的地址是相较于全局的地址是可以重复的?

什么意思呢?假如说有俩个局域网,俩个局域网同时存在192.168.1.1这台主机地址,是被允许的。因为它们在全局上不会以192.168.1.1来展示自己,这里涉及到NAT转化,后续介绍。

所以再来重新理解一下公网和内网。

  • 内网IP:用户在使用局域网时候,由局域网网关分配的 IP地址,每一个内网IP可以映射到当前局域网网关的对应接口(IP+端口号共同组成),处于同一局域网下的设备是可以被互相访问到的。
  • 公网IP :用户向访问非局域网上的资源必须经过公网,自己也会存在公网IP,这是由NAT转换技术提供的,每一个公网IP都可以在全局中被定位到。

举例:

在学校中,校园网通常就是一个局域网。每一个连接校园网的设备在内都有ip地址,但是访问外界资源时,又会存在全局的ip地址。这个ip地址是单向的,只能由内到外。所以不在校园网的设备想要直接访问校园网是不可能,因为局域网下的Ip是不可被直接知道的。


NAT转化技术

NAT技术就是全局地址的复用,即在局域网的设备公用一个地址。

常见的NAT转化技术有三种:静态、动态、端口多用等。

  • 静态转化:内网IP直接转化为公网IP,形成一一对应

  • 动态转化:从ip池中选择一个空闲的ip作为公网的IP。即每次重新经过转化的公网IP是不相同的 。

 

  •  端口复用:对外表现为ip相同,不同的是端口号


内网穿透的原理 

内网向公网建立连接时,就会进行NAT转化,把转化的结果保存在NAT转化表中,就打通了内网到服务器这一端。同时服务器到内网的请求,都会在NAT转化表从公网IP转化为内网IP。所以这是互相打通的。

这时候服务器和公网是建立连接的,如果另一个局域网的机器B想给内网机器A发消息。

可以先和服务器建立连接,然后通过服务器,将主机B发送的转发到内网主机B上,这样就实现了内网穿透。

 


手工部署内网穿透

用来测试的机器WM,模拟在校园网内的机器。

服务器+FRP负责消息转发的技术。

CLient:利用Linux作为访问内网的机器。

1.将frp文件上传到Linux服务端

2.在需要被穿透的机器上传frp文件

 3.配置服务器端frp文件

vim 打开服务器配置文件

vim frps.toml 

在配置文件中,会看到绑定端口 ,这个端口号是给待穿透的客户端看的。

用于建立服务器到客户端的连接。

4.配置待穿透机器的配置文件

vim frpc.toml 

  • 第一行server需要被设置为服务器的地址:我的云服务器地址是"118.126.95.41"
  • 第二行为服务器配置文件中设置的端口号 

proxies:

由于我要验证的是ssh登录,所以localport选择22

远程登录端口:这个端口是给另一个客户端看的,告诉服务器,如果我往8089发的消息,需要被转发到内网中的主机A。

5.启动服务端并且加载配置文件

./frps -c frps.toml

6.启动客户端并且加载配置文件

./frpc -c frpc.toml


验证SSH

新建一个linux用户,主机IP为云服务器的ip,端口为客户端配置过的端口8089

内网穿透就完成,通过内网主机A的账号+密码,就能访问其内部的资源。

创建的test文件就能在虚拟机中看到,做到了访问局域网。 


连接nagix

如果你的机器没有安装nagix

 sudo sudo apt-get install nginx

修改客户端配置文件

frp支持转发多个端口

部署nagix转发,将8087转发为nagix

将本地localport改为80,因为nagix的默认服务端口就是80


启动服务器,启动客户端

在浏览器中访问118.126.95.41这个服务就会被服务器转发给内网的主机A并且转发到80号端口的服务上。就完成了Web服务的部署。

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

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

相关文章

伯克利Linux系统管理: 脚本编写学习 课堂与实验(系统简洁保姆级学习)

Linux系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 第二章(上) Vim课堂与实验 文章目录 Linux系列文章目录一、前言二、学习内容:2.1 上课内容2.1.1 为什么要学习脚本编写?2.1.2 Bash编程语言2.1.3 SheBang2.…

半导体PEEK纳米级钻孔,用德国高精密主轴

在半导体行业,对精度、效率与稳定性的要求近乎苛刻。其中,PEEK(聚醚醚酮)材料因其优异的耐热性、耐化学性和机械性能,在高端半导体封装、微流控芯片等领域得到了广泛应用。然而,PEEK材料的硬度与韧性并存&a…

Armv8/Armv9的Pstate寄存器介绍

PSTATE概述 在Armv7及其之前,有一个重要的寄存器叫做程序状态寄存器CPSR,但是到了Armv8/Armv9的aarch64架构时,删除了CPSR寄存器,改为了PSTATE(PE状态寄存器)。 PSTATE表示一组小寄存器的集合,…

隐私指纹浏览器产品系列 — 什么是指纹(一)

1.引言 现在许多网站在努力的尝试标记互联网上的每一个访客,用以追踪用户的行为轨迹,分析行为习惯,以及确认是否为真实用户。除此之外,他们还利用这些标记,将多个可能是同一个用户身份的访客进行归一,关联…

中国高尔夫运动快速发展中,深圳高尔夫展邀您迎接机遇与挑战

在浩瀚的体育世界中,高尔夫以其悠久的历史、优雅的姿态和独特的魅力闻名于世,被誉为“古老的贵族运动”,而这个美誉却让很多人对它敬而远之。其实高尔夫被称作“贵族运动”,仅仅是因为早期它更多在贵族之间流行而已。 高尔夫&…

【TS】基本类型

基本类型 类型例子描述number1, -33, 2.5任意数字stringhi, "hi", hi任意字符串booleantrue、false布尔值true或false字面量其本身限制变量的值就是该字面量的值any*任意类型unknown*类型安全的anyvoid空值(undefined)没有值(或und…

鸿蒙HarmonyOS开发:如何使用第三方库,加速应用开发

文章目录 一、如何安装 ohpm-cli二、如何安装三方库1、在 oh-package.json5 文件中声明三方库,以 ohos/crypto-js 为例:2、安装指定名称 pacakge_name 的三方库,执行以下命令,将自动在当前目录下的 oh-package.json5 文件中自动添…

面对电商渠道品牌要如何控价

在当今竞争激烈的市场环境中,品牌销售渠道的管理至关重要。线上和线下渠道的低价、窜货问题犹如侵蚀品牌根基的蚁穴,若不加以有效治理,品牌价值将受到严重损害。 线上渠道方面,除了利用系统精准监测低价情况外,还应注重…

手撕数据结构之二叉树

1.树 树的基本概念与结构 树是⼀种⾮线性的数据结构,它是由 n(n>0) 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。 • 有⼀个特殊的结点&…

python语言day2

字符串: 字符串的方法 字符串格式化: 输出结果: 姓名张三今年123岁,现在在北京工作,名字叫张三 text "姓名{0}今年{1}岁,现在在{2}工作,名字叫{0}".format("张三",123,"北京") print(t…

关于冒泡算法

一、前言 当谈及经典排序算法时,冒泡排序(Bubble Sort)无疑是最具代表性的一种。这种算法以其简单直观的特点,成为初学者理解排序基本概念的理想选择。本文将深入解析冒泡排序的原理、实现步骤,以及其在 C# 编程中的具…

【Vue】RuoYi-Vue 若依 vue3 版本安装 tailwindcss 不生效问题

解决方法 删除默认安装教程下的 postcss.config.js 将配置转移到 vite.config.js 中,不生效原因我推测是因为 vite.config.js 配置 postcss 这段覆盖了 postcss.config.js 所致 代码修改如下: 另外原博主友情提示,引入的TailwindCSS的样式…

已解决AttributeError: module ‘emoji‘ has no attribute ‘get_emoji_regexp‘

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

遥感技术在生态系统碳储量、碳收支、碳循环以及人为源排放反演等领域的技术发展

卫星遥感具有客观、连续、稳定、大范围、重复观测的优点,已成为监测全球碳盘查不可或缺的技术手段,卫星遥感也正在成为新一代 、国际认可的全球碳核查方法。目的就是梳理碳中和与碳达峰对卫星遥感的现实需求,系统总结遥感技术在生态系统碳储量…

synchronized 与 Lock 的区别

synchronized 与 Lock 的区别 1、相同点2、不同点2.1 精确性与灵活性2.2 性能2.3 使用便利性 3、示例3.1 synchronized 示例3.2 Lock 示例 4、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java多线程编程中,synchroniz…

查找并可视化非线性关系

使用部分依赖图 (PDP)、互信息和特征重要性分析非线性关系 刚开始开车时,你的经验较少,有时还会比较鲁莽。随着年龄的增长,你会获得更多的经验(和意识),发生事故的可能性也会降低。然而,这种趋势…

Java语言程序设计基础篇_编程练习题*16.6 (演示TextField的属性)

目录 题目:*16.6 (演示TextField的属性) 习题思路 代码示例 结果展示 题目:*16.6 (演示TextField的属性) 编写一个程序,动态地设置文本域的水平对齐属性和列宽属性,如图16-38a所示 习题思路 创建一个HBox,一个Labe…

【前端】记录各种控制台警告/bug

一、Element Plus 1、控制台警告:“Runtime directive used on component with non-element root node. The directives will not function as intended.” 错误原因:在 Vue 组件上使用了运行时指令(指那些在运行时动态绑定到 DOM 元素上的指…

bilibili实习生一面0625

OSI七层模型 物理层:将帧中的比特传送到下一个节点(比特) 数据链路层:将数据包装成帧并传送到路径上下一个节点,将相邻节点间不可靠的物理链路变成可靠的逻辑链路(帧) 网络层:路由寻…

信创数据库沙龙(深圳站 | 开启报名)

信创数据库沙龙: 是一个致力于推动数据库技术创新和发展的高端交流平台,旨在增强国内数据库产业的自主可控性和高质量发展。这个平台汇集了学术界和产业界的顶尖专家、学者以及技术爱好者,通过专题演讲、案例分享和技术研讨等丰富多样的活动形式&#x…