一篇文章搞懂,内网和外网到底怎么通信?

一篇文章搞懂,内网和外网到底怎么通信?,第1张

对于我们网络开发的人员来说,经常会用到TCP,UDP协议,但是通常情况下,是在局域网内的协议交互通信。可你们有想过吗?如果是涉及到内网和外网的交互呢?也就是说局域网和公网是怎么 交互呢?

假设有两台主机A和B,他们分别处于不同的局域网下,他们的局域网IP都是19216812。在同一个时刻,他们都访问百度服务器,那作为百度服务器是怎么分别回复这两台主机的呢?或者是服务器怎么区分A和B呢?

我们先来了解一下公网IP和私有IP的概念。

公有地址(Public address) :由 Inter NIC(因特网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC提出申请的组织机构,公有 IP 全球唯一,通过它直接访问因特网(直接能上网)。主要有A、B、C、D、E五类地址:

私有地址(Private address) :属于非注册地址,专门为组织机构内部使用,说白了,私有 IP 不能直接上网。主要有A、B、C三类,A类地址范围是10000-10255255255 ,B类地址范围是1721600-17231255255,C类地址范围是19216800-192168255255。

127000 到127255255255 为系统环回地址。

而我们平时通过运营商(主要是电信、移动、联通宽带等)上网,通过家用路由器之后,就会变成私有IP,大家可能会疑问,我们可以上网啊,怎么会是私有 IP 呢?

其实我们不是通过私有IP上网的,是通过公有IP。通俗的讲,运营商有公有IP,但是IPV4下IP资源有限,所以这些IP不能每个人分配单独分配一个IP,所以需要动态给上网的用户。 这个过程有点类似于,我们买了一些笔,然后将这些笔分给全班学生使用,当然运行商动态分配公有IP的过程比这个复杂多了。

所以A和B的IP相同是很正常的一件事情,但是对于百度服务器来说,它并不关心对方的私有IP是什么,它也不知道,它只知道访问它的肯定是公有IP。

那问题来了,还是老问题,既然最终访问百度服务器是公有IP,那A和B私有IP到公有IP的转换怎么完成的呢?当他们同时访问百度服务器的时候,百度服务器如何区分哪个是 A,哪个是 B 呢?

在讲原理之前我们先了解一个概念,端口映射?

思路: 既然端口映射可以将一台外网 IP 地址机器多个端口映射到内网中不同机器上的不同端口。那当用户访问外网 IP 的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。

比如,我们在内网中有一台主机,但是外网中的用户是没有办法直接访问该服务器的。于是我们可以在路由器上设置一个端口映射,只要外网用户访问路由器ip的80端口,那么路由器会把自动把流量转到内网主机的80端口上。并且,在路由器上还存在一个Session,当内网服务器返回数据给路由器时,路由器能准确的将消息发送给外网请求用户的主机。在这过程中,路由器充当了一个反向代理的作用,他保护了内网中主机的安全。

我们平时上网的过程就是先经过路由器,然后通过宽带,最终通过运营商的转换最终到web服务器的,返回的数据先到运营商那边,然后再把数据发送到用户的主机上。

我们都知道路由器有两个端口: LAN 口,WAN 口。

WAN:接外部 IP 地址用,通常指的是出口,转发来自内部 LAN 接口的 IP 数据包。

LAN:接内部 IP 地址用,LAN 内部是交换机。我们可以不连接 WAN 口,把路由器当做普通交换机来使用。

下面我们来看看到底怎么通信的。为了便于理解,我们把运营商当做一个 NAT 设备。

为了方便大家理解,我们把 IP 的转化方向反过来分析(准确来说,公网转局域网)。

A 主机IP 是私有 IP(19216812),该IP是从路由器的 LAN口分配的。暂不讨论是如何获取的,这涉及到自动获取还是手动分配的。

当我们访问百度服务器的时候,经过路由器的 wan口,进行相应的IP、端口转化: 19216812:80 -> 10221024:8080 ,所以,从 wan口出去的地址为: 10221024:8080

通过 10221024:8080 能访问外网吗 显然不行,因为还是私有IP。还需要一个步骤:转换为公网IP。

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

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

设置102840129的路由器的路由表,添加:
目的IP地址:19216810 子网掩码:2552552550 网关:102840200
无线路由器不用设置路由表,默认路由就可以了。
图上的子网掩码255255255128有点复杂,不懂。
需要网关102840129的路由器设置路由,使电脑A能跳回无线路由器102840200,访问1921681XXX。
电脑B,电脑C是能互相访问,也能访问电脑A,但电脑A不能访问电脑B,C ,所以要电脑A的网关设置路由表来跳转到内部网段。

问题一:双网卡怎么设置同时上内外网? 希望以下回答能帮助到你。
双网卡设置同时上内外网的方法:
(1)双网卡同时上内外网的网络结构示意图
内网、外网没有融合到一起,而是通过在电脑上安装两个网卡来实现访问内、外网。普通情况下如果想上内网的话就把外网的网卡禁用掉,反之亦然。(当然内、外网的网卡都要配置各自的IP地址)

(2)IP分配如下:(具体以你所在的网络为准)
(3)点击“高级”,然后在“IP地址”下边点添加,输入内网的ip地址和掩码,如图所示:
(4)这样我们就把ip设置部分的工作做完了。接下来就还要给电脑添加静态路由: (a)、在“开始”――“运行”里输入cmd打开命令提示符。 (b)、在命令提示符里输入:route add 1721800 mask 25525500 17218100254这里给大家解释一下,这套命令的作用是把所有访问内网17218xxxxxx的请求转发给内网网关17218100254。如果你们的内网还有其它网段的话就照上面的格式依次添加即可。比如:你们公司的内网还有这样的地址17216125,你就可以这样写:route add 1721600 mask 25525500 17218100254
(c)外网的那块网卡需要IP地址、子网掩码、网关、DNS都设置好。
(d)内网的网卡只设置IP地址、子网掩码即可(因为一台电脑不能同时设置两个网关的)
在命令提示符里输入:route add 1721800 mask 25525500 17218100254

问题二:电脑双网卡怎么设置??? 设置教程如下:
首先是双网卡的网络IP地址配置示例:
外网地址设置:
本地IP地址:19216811
子网掩码: 2552552550,
网关: 19216811
内网地址设置:
本地IP地址: 19216842129
子网掩码:2552552550
网关:19216842132
按正常的设置每块网卡的ip(或通过DHCP自动获取),再cmd下使用route print查看时会看到。即指向0珐00的有两个网关,这样就会出现路由冲突,两个网络的访问都会出现问题。我们需要手动配置路由,才能实现同时访问两个网络。运行cmd(win7/8需要管理员权限)。
第一步: route delete 0000 ::删除所有的0000的路由
第二步:route -p add 0000 mask 0000 mask 19216811 ::添加0000网络路由,这个是缺省时路由用19216811,加上-p的目的是设为静态(永久)路由,防止下次重起时配置消失。
第三步: route -p add 192168420 mask 2552552550 19216842132 ::添加192168420网段路由为19216842132内网路由,可以根据需要调整ip段和子网掩码太到多网段内网路由的效果。
执行后,永久路由就多了二项了,如下图所示:
注意:因为上面我们添加的是静态路由,所以,重起后,tcp/ip设置里的默认网络会成为活动网关,这样也会造成路由冲突,所以,需要把内网的tcp/ip设置里的网关去掉。

问题三:台式机双网卡如何设置 我需要你公司外网 内网的IP 网关
算了 给你 你自己研究,有这个想法的人 多少也懂点电脑吧。。
route -p delete 0000
route -p delete 160000route -p add 0000 mask 0000 19216811 route -p add 160000 mask 255000 1601621126 新建记事本 吧上面这个粘进去, 第二行,我公司内网是160开头的IP,你看你公司内网是多少就该多少,就改第一位 后面的0不要动,然后第3行,192。16811 因为我是无线连的无线路由器,是外网,所以这个是我的外网IP,你看看你是多少就改多少 全改,前面的0000不改耿
第四行 前面160同第2行,只改160 255000 是我内网网关 你看你是多少 全改。1601621126就是我公司内网IP 。同上 全改。然后把记事本的TXT后缀面改成BAT 保存 退出,双击它 然后试试,笔记本每次开机都需要点,台式机点一次 以后不用改了 原理是不拔网线的情况下。
这个东西原理就是删除一个网关,,反正我是这么理解的。。
成功就采纳,失败联系我

问题四:台式机设置双网卡同时上内外网,如何设置? 100分 首先需要有两块网卡,分别接到两个路由上。下面是双网卡的网络IP地址配置示例:
外网地址设置
本地IP地址:19216811
子网掩码: 2552552550,
网关: 19216811
内网地址设置:
本地IP地址: 19216842129
子网掩码:2552552550
网关:19216842132
按正常的设置每块网卡的ip(或通过DHCP自动获取),再cmd下使用route print查看时会看到。即指向0000的有两个网关,这样就会出现路由冲突,两个网络的访问都会出现问题。我们需要手动配置路由,才能实现同时访问两个网络。运行cmd(win7/8需要管理员权限)。
第一步: route delete 0000 ::删除所有的0000的路由
第二步:route -p add 0000 mask 0000 mask 19216811 ::添加0000网络路由,这个是缺省时路由用19216811,加上-p的目的是设为静态(永久)路由,防止下次重起时配置消失。
第三步: route -p add 192168420 mask 2552552550 19216842132 ::添加192168420网段路由为19216842132内网路由,可以根据需要调整ip段和子网掩码太到多网段内网路由的效果。
执行后,永久路由就多了二项了,如下图所示:
因为上面添加的是静态路由,所以,重起后,tcp/ip设置里的默认网络会成为活动网关,这样也会造成路由冲突,所以,需要把内网的tcp/ip设置里的网关去掉。

问题五:双网卡同时上内外网如何设置 好多单位的同志面临一个困惑,单位双网卡都工作时内外网都不能访问,必须断掉一个才能访问,是不是想实现双网卡同时在线,想上内网上内网,想上外网上外网?往下看必有一款适合您……
案例一:
电脑在公司局域网内。使用用192.168.0.1这个网关时,电脑只能访问外部网,而用192.168.0.2这个网关时只能访问内部网。请问,有没有什么办法可以让我同时访问内、外部网而不用手工更改网关设置?
答:你只要这样进行设置:把19216801作为内部网关,手工增加内部各网段的静态路由,例如:
route add 19216810 mask 2552552550 19216802
案例二:主机接外网的网卡IP自动获取,接内网的网卡的IP10112,子网码是2552552550,
又如何实现,内外网同时可以上线浏览?
答:你只要这样进行设置:把内网网卡的IP设置为10112(根据你自己的内网分配ip), 子网码255000 (重要)网关 不填(重要) ; 把外网网卡的IP、dns设置为自动获取 即可
案例三:主机接外网的网卡IP自动获取,接内网的网卡的ip也是自动获取请问,有没有什么办法可以让我同时访问内、外网?
答:最简单的办法增加路由器,推荐 欣全向 多WAN口路由器进行解决,实现的最后效果为:所有pc只接一个网卡,连接到我们的路由器上,两条线路接到路由器上就可以了,至于您的访问该走哪条线路由路由器进行识别路由器里的具体设置还要根据您两条线的访问权限的情况进行
案例四:如案例三 一个网卡内外网同时上,需要修改下路由即可
外网网关19216811,内网网关13223511。
新建一个文本文档,敲入:
route add 132000 mask 255000 13223511
route add 0000 mask 0000 19216811
route delete 0000 mask 0000 13223511
保存为bat文件。把这个文件设置为开机自动运行,就可以内网外网同时上了。

问题六:双网卡电脑如何设置默认上网网卡 将主网卡设置为“Internet连接共享”(在本地连接-属性-高级里)将外网线入口连接到主网卡上,因为我们用的是专线,所以在TCP/IP协议属性里面,我们亥“自动获得IP地址,自动获得DNS服务器地址”。另一个设内网IP就行了,MS你把两条线换个位置不成么?

问题七:如何在一台电脑上设置双网卡 如果是一个专网(或公司内网),一个上外网的情况设置如下:
1、首先电脑要加装第二块网卡,
2、第二条网线已经就位,
3,如果电脑出现两个网关的话,肯定有一个网不同,写个软路由就行

问题八:服务器双网卡如何设置同时可用。 把两块网卡,分别接到两个路由上。
外网 internet 地址:19216811 子网掩码: 2552552550, 网关: 19216811
内网地址: 19216842129 子网掩码:2552552550 网关:19216842132
按正常的设置每块网卡的ip(或通过DHCP自动获取),再cmd下使用route print查看时会看到
即指向0000的有两个网关,这样就会出现路由冲突,两个网络的访问都会出现问题。我们需要手动配置路由,才能实现同时访问两个网络。运行cmd(win需要管理员权限)
第一步: route delete 0000 ::删除所有的0000的路由
第二步:route -p add 0000 mask 0000 mask 19216811 ::添加0000网络路由,这个是缺省时路由用19216811,加上-p的目的是设为静态(永久)路由,防止下次重起时配置消失。
第三步: route -p add 192168420 mask 2552552550 19216842132 ::添加192168420网段路由为19216842132内网路由,可以根据需要调整ip段和子网掩码到多网段内网路由的效果。

问题九:一机双网卡 同时使用 如何设置? 如果两根线插在主机的双网卡上,就必须要编辑主机的路由表,也就是WINDOWS路由表!问题是这样的,你有一条线的时候,主机路由表会有一条默认路由指向你的一个服务提供商,将所有的数据发送到这个网关;但是你用双卡的时候,就会有两条默认路由,这样就有一个互先级的问题:哪个优先级高一些,数据就会全部从这个优先级高的默认路由发送。如果想达到想去电信网络的数据发送到电信,去网通的数据发送到网通,你不借助路由器的话,就要把网通和电信的所有地址段都加入主机路由表中,做成静态路由(或者将电信的数据定义到电信网关,其他的使用网通的默认路由)。否则,即使你使用两条线,但是数据默认只会从一条线中发送,最后的结果是你去电信或者网通的数据必然有一条是速度很慢的!查看WINDOWS路由表命令:ROUTE PRINT 编辑WINDOWS路由表命令:ROUTE ADD 你可以查一下相关的资料,双网卡双出口问题大概都是这样的!

问题十:笔记本电脑双网卡如何设置上网 注意你的本地网卡的设置啊! 你说用有线网卡可以PING通网关那说明网线是好的,注意检查你的IP设置,掩码,网关和DNS吧,就应该是这个问题带来的!
还有一点要注意,因为你的有线网卡和无线网卡你都是用在一个局域网的,如果这个时候都是内网IP的话,是不能同时用的,要禁用一个

公司分有两个不同网关的网络。。。。因为不会,就把内外网线同接到一个交换机上,就是通过修改IP设置来实现上外内网,问题就是外网是不是就上不了。。。问题在哪里,应该怎么办??
内外网分别有一个交换机, 我们所用的服务设在内网服务器A上, 外网的计算机通过B的 连接到 A 现在就是 外网连接上后 可以PING到B的内网地址, 内网的电脑都不能ping 通B的内网地址, 还有在 A ping B时 当B重启出现正在关机的那10几秒 能ping通。 基本排除网线和硬件的关系。 所以我觉得应该B的某些服务导致 这个 但是不清楚具体哪些 或者是中病毒之类的, 现在B服务器上安装就是一个 连接到内网服务器的接口服务 和 一个 。 其他没有了。

这个,最好是有自己的dns,那么解析出来的就是自己内的那个ip 。
结果就是……
或者,你给机器都设置了hosts,那么等于是解析了一样。缺点是万一坏了也不会走外部一次。
我们这就是这么干的。

你的问题是有点不清楚,我理解的是内网的电脑相当于一服务器,外网要访问它,可没有多余的外网IP。
---有类似于异速联的软件安装在内网的电脑上,可以解决这种问题。最后只须在路由或防火墙那开通相应的端口即可。

什么是端口映射
在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们这里所说的端口,不是计算机硬件的I/O端口,而是软件形式上的概念。服务器可以向外提供多种服务,比如,一台服务器可以同时是WEB服务器,也可以是FTP服务器,同时,它也可以是邮件服务器。为什么一台服务器可以同时提供那么多的服务呢?其中一个很主要的方面,就是各种服务采用不同的端口分别提供不同的服务,比如:WEB采用80端口,FTP采用21端口等。这样,通过不同端口,计算机与外界进行互不干扰的通信。我们这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。端口映射:内网的一台电脑要上因特网,就需要端口映射。端口映射分为动态和静态动态端口映射:内网中的一台电脑要访问新浪网,会向NAT网关发送数据包,包头中包括对方(就是新浪网)IP、端口和本机IP、端口,NAT网关会把本机IP、端口替换成自己的公网IP、一个未使用的端口,并且会记下这个映射关系,为以后转发数据包使用。然后再把数据发给新浪网,新浪网收到数据后做出反应,发送数据到NAT网关的那个未使用的端口,然后NAT网关将数据转发给内网中的那台电脑,实现内网和公网的通讯当连接关闭时,NAT网关会释放分配给这条连接的端口,以便以后的连接可以继续使用。动态端口映射其实也就是NAT网关的工作方式。静态端口映射: 就是在NAT网关上开放一个固定的端口,然后设定此端口收到的数据要转发给内网哪个IP和端口,不管有没有连接,这个映射关系都会一直存在。就可以让公网主动访问内网的一个电脑


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13388746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存