内网访问外网和外网访问内网的原理

article/2025/11/4 16:09:36

假如设A 和 B 的局域网 IP 相同(192.168.31.11),当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢?

解决方案:端口映射

什么是端口映射?

端口映射是 NAT 的一种,它将外网主机的 IP 地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。
现在市场上的家庭路由器都具备 NAT 功能,也可以实现端口映射。下图为小米路由器的端口映射设置图:

这里写图片描述

我们平时经过路由器,通过宽带,最终去到运营商那边,数据是从运营商出去,最终数据是回到运营商那边,运营商再把数据发送到用户的电脑。
路由器,至少有两个端口:WAN 口和 LAN 口。
WAN:接外部 IP 地址用,通常指的是出口,转发来自内部 LAN 接口的 IP 数据包,这个口的 IP 是唯一的。LAN:接内部 IP 地址用,LAN 内部是交换机。
这里,我们简化这个过程,我们把运营商当做一个 NAT 设备。

这里写图片描述

A 电脑的 IP 是局域网 IP(192.168.31.11),这个 IP(192.168.31.11)是从路由器的 lan口分配的。
当我们上百度的时候,经过路由器的 wan口,进行相应的IP、端口转化:192.168.31.11:80 -> 10.221.0.24:8080,所以,从 wan口出去的地址为:10.221.0.24:8080。

这里写图片描述

最后,经过运营商,运营商那边会做相应的端口映射(而且是动态端口映射),子网 IP(10.221.0.24:8080)转化为公网IP(128.0.0.1:8888),通过这个公网 IP 去访问百度服务器

这里写图片描述

同理,B 的过程也是一样。通过这样的层层端口映射,最终保证地址(IP + 端口)的唯一性。A 和 B 访问百度服务器,尽管它们的局域网 IP 是一样的,但是最终它们访问百度的地址(IP + 端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。

如何让外网能够访问自己写的网络程序(服务器)
首先,我们需要在运营商那边申请(租用)一个公有 IP (长城宽带一年需要 2000 元左右),假如这个公有 IP 为:128.0.0.123。
假如,我们写的服务器如下:

这里写图片描述

接着,找个 NAT 设备进行相应的端口映射,家庭路由器都有这个功能。这里以小米路由器为例:

这里写图片描述

映射关系如下:

这里写图片描述

最后,其他人写客户端程序时(电脑能上外网),只要指定目的 IP 地址为 128.0.0.123,端口为 8888,通过这个地址,就能找到192.168.31.248:8080,因为这两者已经建立好映射,如上图,这样,我们的服务器就能收到数据。


http://chatgpt.dhexx.cn/article/RZdAfLta.shtml

相关文章

[NET]什么是公网、私网、内网、外网?

背景:大家可能对什么是公网、私网、内网、外网有疑惑,今天我们来说下它们之前的区别,已经大家耳熟能详的VPN,SNAT,DNAT的作用。 简单理解公网是相对于私网的,而外网是相对于内网的:

竟然还有人不知道什么是内网、外网?快收藏学习吧!

内网 内网又称局域网(Local Area Network,LAN),是指在某一区域内由多台计算机以及网络设备构成的网络,比如校园网、政府网等,一般方圆几公里。 我们常说的内网,从字面意思上来讲是区别于外网的…

如何理解内网和外网?

如何理解内网和外网? 1.感性上认识 判断内网和外网的重要依据是:是否与广阔的外界网络相连。 在有互联网之前,世界上是先有了局域网,一些公司构建了自己的局域网,供自己公司员工之间进行沟通。对于外来人员来说&…

局域网的主机如何连接外网

一、局域网内主机上外网——NAT 1、内网与外网 (1)内网 即所说的局域网,比如学校的局域网,局域网内每台计算机的 IP 地址在本局域网内具有互异性,是不可重复的。但两个局域网内的内网 IP 可以有相同的。 &#xff08…

内网外网同时使用

在很多网络环境中,为了安全起见,不允许内网、外网同时使用。但很多时 候(比如说远程的时候)又需要同时使用外网和内网,下面介绍一下外网、内网 同时使用的操作方法。 环境: 1、电脑的本地网卡设置成内网的…

内网和外网之间的通信

对于初学者而已,我们学习的网络编程(如TCP,UDP编程),我们通常都是在局域网内进行通信测试,有时候我们或者会想,我们现在写的内网网络数据和外网的网络数据有什么不同,我们内网的数据是如何走出外…

探秘 | 如何分辨内网和外网?

目录 💡 什么是外网IP、内网IP? 💡 对于自有路由器上网的用户,可以这样理解外网IP、内网IP 💡 几个大家经常会问的问题 什么是外网IP、内网IP?很多用户都有一个疑惑,如果不使用路由器拨号上网…

实现电脑同时上内网和外网(或通过外网访问到该电脑通过该电脑访问内网)

一、需求描述 目前使用的公司网络只能够上内网,但是又有上外网查资料的需求: ①想要实现电脑既能上内网的同时也可以上外网; ②想要使用其他外网电脑使用外网连接到该电脑,通过该电脑访问内部的网络内容。 二、准备内容 电脑必须具备两个网卡,即:可以同时连接内网和外…

如何理解内网和外网

如何理解内网和外网 写这篇博文的动力来自于,大狗问我什么是内网和外网(没错,我就是站在程序猿顶端的有女票的程序猿:p),一个惊讶,为什么她会问这样的问题,在现实生活中,不管你是不…

内网和外网的区别是什么?

内网和外网的区别重要依据主要是判断它是不是与广阔的外界相连。 内网和外网最大的区别 内网IP局域网,网线都是连接在同一个 交换机上面的,也就是说它们的IP地址是由交换机或者路由器进行分配的。而且每一个IP也是有所不同的,并且这些连接在…

外网与内网

一、外网和内网  其实外网和内网的概念很模糊。  简单的说,自己的单位或者家庭、小区内部有局域网;单位、家庭之外有覆盖范围极大的网络,比如internet,这个大网络延伸到了我们的单位、家庭(通过光纤、网线、电话线等…

内网和外网的区别?

网络按地域范围分类:局域网、城域网、广域网 网络按使用者分类为:公共网 和 专用网 内网 内网又称局域网(Local Area Network,LAN),是指在某一区域内由多台计算机以及网络设备构成的网络。 外网 外网又称广…

内网和外网的区别

参考文章:https://blog.csdn.net/Alexwym/article/details/81772446 https://blog.csdn.net/weixin_42724467/article/details/89147214 一、现象 外网,即广域网、WAN、公网;内网,即局域网、LAN、私网。 要搞清楚内网和外网的区…

什么是内网、外网?内网、外网有啥区别?

之前有朋友问我,电脑如何上外网?他们有些是在学校的机房里,有些是在企业办公室里上网的,这个问题问的,我也是很头痛啊! 原因是:学校为了让学生上课的时候,不会上外网做其他事&#…

C++ ZeroMemory和memset

为什么80%的码农都做不了架构师?>>> 一、memset void *memset(void *s,int ch,size_t n); 由C Run-time Library提供的提供的函数,作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。…

ZeroMemory

ZeroMemory() ZeroMemory宏用0来填充一块内存区域。 为了避免优化编译器的意外的影响,请使用SecureZeroMemory函数。 void ZeroMemory( PVOID Destination, SIZE_T Length ); 参数: Destination :指向一块准备用0来填充的内存区域的开始地址。 Length :…

长文件名和短文件名

2019独角兽企业重金招聘Python工程师标准>>> 文件命名时有一个8.3规则 8是指文件名,就是******.XXX里的***意思是这个部分不能超过8个字符,在DOS里,如果超过8个字符了是不会被识别的.后面的XXX是扩展名,也不一定非得是…

关于Windows10 文件名最大长度260

直接上官方文档: Maximum Path Length Limitation - Win32 apps | Microsoft DocsMaximum path length limitation.https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabspowershell但是文档中关于文件全路径最长260的设定&a…

自定义文件名长度,随机重命名文件名称

一些文件名称可能太长,很多人问如何自定义长度,随机重命名出每个文件名称呢?如何用第三方的工具来批量操作呢?在众多的文件批量重命名软件中【文件批量改名高手】算是操作简单。易懂的软件了,下面一起来操作步骤吧。 …

windows文件名太长(超255字符)无法重新命名

问题描述: 最近下载了一个mp4课件,文件名称太长,试过网上注册表与组策略方法来重命名,均无效 [尝试的方法链接] 解决措施: 用vscode编译器打开文件的上一级目录在vscode的资源编译器中修改对应文件的文件名退出vscod…