内网穿透入门
内网穿透
- 内网穿透(英文:Port Forwarding)是一种网络技术,用于将公共互联网(外网)的请求转发到私有局域网(内网)中的特定设备或服务。在许多情况下,设备或服务位于一个局域网中,而无法直接从外部网络访问,这可能是因为网络防火墙、路由器配置或其他网络限制等原因。内网穿透允许你在这种情况下仍然能够通过公共互联网访问这些设备或服务。
- 通俗来说,就是在世界的任意一个地方都可以直接访问局域网的某台设备或服务。
IP
既然每个互联网用户都拥有 IP 地址,为什么某些用户无法直接访问部署在个人PC上的服务呢?
结论:因为找不到。
- IP 地址分为两种:公网 IP 和内网 IP
- 内网 IP : 内网通常使用私有 IP 地址范围,这些地址在全球范围内不是唯一的。内网 IP 是用户在使用局域网时,由局域网的网关所分配的 IP 地址,每一个内网 IP 实际上都可以映射到当前所在局域网网关的某一端口,拥有内网 IP 可以被同一局域网下的其他设备所访问到;
- 公网 IP : 内网的设备想要访问非同一局域网下的资源则必须通过公网 IP ,公网 IP 是没有经过 NAT 转换的由互联网供应商(ISP)提供的最原始的 IP 地址,每一个公网 IP 都可以直接在互联网中被直接定位到。公网使用全球唯一的公共 IP 地址。
综上,只有公网IP才能在互联网上路由到,内网 IP 地址仅在当前局域网下可以被定位并访问到,无法跨域访问内网IP。
NAT(网络地址转换)技术
由于IPV4的数量是有限的,所以无法满足全世界人人手一个公网IP。在2019年,IPV4地址已经全部分配完毕,为什么我们依然可以正常上网?
结论:因为有NAT
- 网络地址转化技术的核心作用在于实现对公网 IP 地址的复用,即所有的内网主机共用同一个 IP 地址,NAT 的实现方式共有三种

其中,PAT使用最为广泛。 - 三种 NAT 实现方式共同点在于:对于内网用户来说自己对应的公网 IP 是不可知的。
- 因此,内网IP跨域访问的方法是:内网IP的访问请求则需要先映射为公网 IP 然后访问到另一局域网的公网 IP ,最后由另一局域网的网关将其映射到相应的局域网设备,但如果我们访问的地址属于局域网中的内网 IP ,就无法定位到其相应的公网 IP。
结论
- 前提:NAT 并不保证每次转换得到的公共 IP 地址都是一样的,特别是在动态 IP 地址分配的情况下。
- 所以如果我们想要实现在世界的任何地方都可以访问某局域网的设备或服务就需要一个公网IP服务器,并固定该公网IP服务器的某一端口映射到相应局域网主机。

FRP
- frp是一个开源的内网穿透工具,它允许在内网的计算机或设备通过NAT(Network Address Translation,网络地址转换)和防火墙连接到公共网络,从而使得外部设备可以访问内部设备提供的服务。
- frp使用客户端-服务器架构,其中frps是服务器端,负责接受来自外部设备的连接请求,而frpc是客户端,负责将内部服务映射到服务器上,实现内网穿透的功能。
答疑解惑
- 问:用户想通过frp访问局域网的设备,服务端是如何找到局域网设备的?
答:在使用frp进行内网穿透时,服务端(frps)如何找到局域网设备取决于两个关键部分:客户端(frpc)的配置和网络环境。在内网穿透过程中,frpc会主动连接到frps服务器。frpc主动连接到frps服务器时,它们之间的通信使用的是WebSocket协议。WebSocket是一种在单个TCP连接上进行持久性双向通信的协议。 - 问:永久连接的过程中,NAT不会给客户端重新分配公网ip和端口号吗?
答:在长连接或永久连接的过程中,NAT(Network Address Translation,网络地址转换)设备通常不会给客户端重新分配公网IP地址和端口号,因为在持久连接中,NAT设备会维护一个NAT映射表,将内部设备的IP地址和端口号映射到公网IP地址和端口号上。
相关文章:
内网穿透入门
内网穿透 内网穿透(英文:Port Forwarding)是一种网络技术,用于将公共互联网(外网)的请求转发到私有局域网(内网)中的特定设备或服务。在许多情况下,设备或服务位于一个局…...
Pickle pyhton反序列化
参考文章 Python pickle反序列化浅析 Pickle包含四种方法 pickle.dump(obj, file) 将obj对象进行封存,即序列化,然后写入到file文件中 注:这里的file需要以wb打开(二进制可写模式) pickle.load(file) 将file这个文件进行解封,即反序列化 …...
动静分离技术
一、HAproxy 动静分离 1、概念: HAproxy 动静分离技术是一种用于优化 Web 服务器性能和提高用户体验的策略,它通过将动态内容和静态内容分别路由到不同的后端服务器来实现,减轻服务器负载,提高网站的响应速度。 动态内容包括由…...
STM32单片机智能小车一PWM方式实现小车调速和转向
目录 1. 电机模块开发 2. 让小车动起来 3. 串口控制小车方向 4. 如何进行小车PWM调速 5. PWM方式实现小车转向 1. 电机模块开发 L9110s概述 接通VCC,GND 模块电源指示灯亮, 以下资料来源官方,具体根据实际调试 IA1输入高电平ÿ…...
灰狼优化算法(GWO)python
目录 一、灰狼优化算法的python实现 二、灰狼优化算法与遗传算法的对比分析(python) 2.1 GWO1.py 2.2 GA1.py 2.3 GWO_vs_GA.py 2.4 运行结果 三、基于莱维飞行改进的灰狼优化算法的python实现 一、灰狼优化算法的python实现 import numpy as …...
项目知识点总结-住房图片信息添加-Excel导出
(1)住房信息添加 Controller: RequestMapping("/add")public String add(Home home, Model model) throws IOException{String sqlPath null;//定义文件保存的本地路径String localPath"D:\\AnZhuang\\Java项目\\选题\\Xin-…...
第三届iEnglish全国ETP大赛决赛即将启动
如今,寓教于乐的学习方式越来越受到家长和孩子的欢迎,“玩中学”成为一种既能培养兴趣又有助于孩子成长的学习趋势。 以“玩转英语,用iEnglish”为活动主题的第三届全国ETP大赛即将于本周五(11月3日)迎来总决赛的抽签仪式。据主办方iEnglish智能英语学习解决方案相关负责人称,…...
创造产业链协同优势后,凌雄科技在DaaS行业转动成长飞轮
企业服务领域,一直存在一种共识:做好很难,但一旦服务模式跑通了,得到了市场的认可,要滚起雪球就会事半功倍。 重资产、重运营的DaaS(设备及服务)赛道,是个非常典型的细分领域。在这…...
【protobuf】protobuf自定义数据格式,CMake编译C++文件读写自定义数据
protobuf自定义数据格式,CMake编译文件读写自定义数据 1.protobuf安装2.定义.proto文件3.编写main.cpp4.编写CMAkeLists配置文件5.运行 1.protobuf安装 protobuf库链接 2.定义.proto文件 新建一个Person.proto文件和一个Animal.proto文件,内容如下&…...
解决:http://localhost:8080 不在以下 request 合法域名列表中
在搭建资源服务器时,遇到了微信开发者工具中无法访问本地资源服务器的情况,报错如下: 参考一篇博文的方法,完美解决 【解决】http://localhost:8080 不在以下 request 合法域名列表中_localhost不在以下 request 合法域名列表中-…...
Linux普通用户提权(sudo)
文章目录 Linux普通用户提权(sudo)1、在sudoers文件添加普通用户2、测试 Linux普通用户提权(sudo) 1、在sudoers文件添加普通用户 正常来说,普通用户初始是不具备提权的能力的,比如执行sudo ls会出现报警告…...
链表指定节点的插入
向现有链表中插入结点,根据插入位置的不同,可分为以下 3 种情况: 插入到链表的头部,作为新的链表中第一个存有数据的结点(又称为”首元结点”);插入到链表中某两个结点之间的位置;插…...
解决问题Conda:CondaValueError: Malformed version string ‘~’ : invalid character(s)
解决问题Conda:CondaValueError: Malformed version string ‘~’ : invalid character(s) 背景 今天使用Conda构建项目运行环境的时候报错::CondaValueError: Malformed version string ‘~’ : invalid character(s) ##报错问题 在安装te…...
Sci Immunol丨Tim-3 适配器蛋白 Bat3 是耐受性树突状细胞
今天和大家分享一篇发表于2022年3月的文章,题目为“Tim-3 adapter protein Bat3 acts as an endogenous regulator of tolerogenic dendritic cell function”,发表在《Sci Immunol》杂志上。文章主要研究了Tim-3和其适配蛋白Bat3在调节免疫应答中的作用…...
天软特色因子看板(2023.10 第14期)
该因子看板跟踪天软特色因子A05005(近一月单笔流通金额占比(%),该因子为近一个月单笔流通金额占比因子,用以刻画股票在收盘时,主力资金在总交易金额中所占的比重。 今日为该因子跟踪第14期,跟踪其在SW801160 (申万公用事业) 中的表…...
Photoshop(PS)2021版 安装教程(图文教程超详细)
软件:PS版本:2021语言:简体中文大小:2.26G安装环境:Win11/Win10(1809以上版本)硬件要求:CPU2.0GHz 内存4G(或更高,不支持7代以下CPU)下载通道①百度网盘丨64位…...
详解React:Props构建可复用UI的基石
React是一种流行的JavaScript库,用于构建用户界面。它的组件化架构使得开发人员能够轻松地构建可复用的UI元素,从而提高开发效率。在本文中,我们将探讨React中的组件和Props的重要性,以及如何利用它们来构建可复用的UI。 引言 在…...
【Unity】【VR开发疑难】Unity运行就报无法启动XR Plugin
【现象】 连接Link后运行Unity的VR项目Link也无反映,Unity控制台报:无法启动XR Plugin,并说是由于Oculus头盔未连接导致。 【分析】 打开Oculus PC客户端,发现状态是连接正常。重启机器后,提示Oculus没有出于RunTim…...
本地启动Elasticsearch(docker启动)
一、es版本7.17.0 docker run -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -d --name ES01 elasticsearch:7.17.0进入容器,修改/usr/share/elasticsearch/config/elasticsearch.yml 添加如…...
JVM修炼印记之初识
文章目录 JVM认识JVM的功能常见JVMHotSpot的发展历程 JVM认识 Java虚拟机(Java Virtual Machine,JVM)是一个用于执行Java字节码的虚拟计算机。它是Java语言的核心,可以在不同的操作系统和硬件平台上运行Java程序。 JVM负责将Java…...
现在不看就晚了:DeepSeek官方尚未文档化的量化后端适配漏洞(影响v3.1.0~v3.2.2所有Llama架构分支)
更多请点击: https://kaifayun.com 第一章:DeepSeek量化部署方案的背景与风险警示 近年来,随着大语言模型参数规模持续扩大,推理延迟与显存占用成为边缘设备与中等算力服务器落地的关键瓶颈。DeepSeek系列模型(如Deep…...
借脑之术:一根记忆枝条,嫁接到另一棵树上 —— Memory Grafting 深度解读
论文信息 标题 Memory Grafting: Scaling Language Model Pre-training via Offline Conditional Memory 作者 Runxi Cheng, Yuchen Guan, Yongxian Wei, Qianpu Sun, Qixiu Li, Sinan Du, Feng Xiong, Chun Yuan, Yan Lu, Yeyun Gong (10人) 机构 微软亚洲研究院 (Microsoft R…...
Python之ansimagic包语法、参数和实际应用案例
Python ansimagic包完整详解:功能、安装、语法、案例、排错 ansimagic 是Python轻量级终端动画/字符动画工具包,专注于在命令行(CMD、Terminal、PowerShell)中生成流畅的动态字符效果、进度条、加载动画、文字动画、ASCII动画等。…...
当数字笔记遇上开源力量:Xournal++如何重新定义你的创作边界
当数字笔记遇上开源力量:Xournal如何重新定义你的创作边界 【免费下载链接】xournalpp Xournal is a handwriting notetaking software with PDF annotation support. Written in C with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Wind…...
3步突破格式限制:网易云音乐NCM文件转换终极指南
3步突破格式限制:网易云音乐NCM文件转换终极指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM加密文件无法在其他设备播放而烦恼吗?ncmdump开源工具为你提供完美的NCM格式转换解…...
5分钟实现Windows三指拖拽:macOS手势体验的终极解决方案
5分钟实现Windows三指拖拽:macOS手势体验的终极解决方案 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDrag…...
高性能Python多智能体建模框架:Mesa 3.0架构解析与工程实践指南
高性能Python多智能体建模框架:Mesa 3.0架构解析与工程实践指南 【免费下载链接】mesa Mesa is an open-source Python library for agent-based modeling, ideal for simulating complex systems and exploring emergent behaviors. 项目地址: https://gitcode.c…...
审核延迟超800ms?吞吐暴跌63%?DeepSeek本地化审核引擎调优指南,7步压测达标金融级SLA
更多请点击: https://kaifayun.com 第一章:DeepSeek输出内容审核的金融级SLA挑战与现状剖析 在金融行业,模型输出内容的准确性、合规性与可追溯性并非附加要求,而是服务可用性的核心组成部分。DeepSeek系列大模型在面向银行、券商…...
ComfyUI-WanVideoWrapper终极指南:10分钟掌握AI视频生成技术
ComfyUI-WanVideoWrapper终极指南:10分钟掌握AI视频生成技术 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper AI视频生成技术正以前所未有的速度改变内容创作方式,而Comfy…...
AutoJs6在安卓11上的存储权限架构深度解析与技术实现方案
AutoJs6在安卓11上的存储权限架构深度解析与技术实现方案 【免费下载链接】AutoJs6 安卓平台 JavaScript 自动化工具 (Auto.js 二次开发项目) 项目地址: https://gitcode.com/gh_mirrors/au/AutoJs6 在安卓11(API级别30)及以上版本中,…...
