通俗语言解释内外网IP与端口映射
IP:分为外网与内网
我们说的外网IP属于实体IP
实体IP,它是独一无二的,在网络的世界里,每一部计算机的都有他的位置,一个 IP 就好似一个门牌
例如,你要去百度的网站的话,就要去『180.149.132.47』
这个 IP 位置
这些可以直接在全世界互联上沟通的 IP 就被称为实体IP
我们说的内网IP是属于虚拟IP
为什么叫做虚拟IP,因为它相对于全世界互通的网络中,是不存在的
多数是由路由器分配的,这个IP仅用于内网的身份识别,例如网吧内,区分不同的机子。
好在早在规划 IP 时就已经预留了三个网段的 IP 做为内部网域的虚拟 IP 之用。这三个预留的 IP 分别为:
A级:10.0.0.1
– 10.255.255.254
B级:172.16.0.1
– 172.31.255.254
C级:192.168.0.1
– 192.168.255.254
内网也就是局域网,内网就好像一个小型的因特尔网络,数据传输由网关传输,且数据局限于内网设备。
我来举几个例子吧!
以前跟朋友们一起玩流星蝴蝶剑,只在局域网内可以联机
一起玩魔兽争霸3也可以联机,但只限于局域网
手机QQ面对面传输等通过WIFI传输的工具也是通过内网之间数据交互来完成的
看到这里我想大家有玩过远控的,应该明白一个问题了:为什么在网吧或者部分服务器远控无法上线?
在排除防火墙等网吧内设禁止远控的情况下进行测试
我们在远控中测试上线地址为保留地址:127.0.0.1
端口为 8080
成功上线
我们再来看看我们的内网IP>ipconfig – 192.168.1.73
端口为 8080
也是 成功上线 且 在网吧其他机都可以上线
我们再来看看我们的外网IP地址:103.57.217.64
端口为 8080
测试连接无法连接 无法上线
ip | 状态 |
---|---|
127.0.0.1:8080 | 成功上线 |
192.168.1.73:8080 | 成功上线 |
103.57.217.64:8080 | 无法上线 |
这是什么原因?接着往下看吧
端口映射
刚刚我们说到了内外网IP,又说到了关于远控不能上线的问题,这里举个例子
例子:我们可以把局域网比喻成一栋公寓楼,公寓楼名字叫做:Xcnte公寓
楼下售房处就是网关,再把网吧机子(局域网内内网IP)比喻成我们租的一其中一间房,房号是73
而世界上有无数个房号为73的房子,但是我们的Xcnte公寓只有一个,而这个公寓地址就是我们的外网IP地址
这个比喻来简单解释一下端口映射
每一台网吧的机子都有他的独立内网IP | 每个公寓房间都有自己的房号 |
---|---|
网吧机子的内网端口是独享的 | 每个套间都有它自己的阳台 |
局域网的网关地址 | 公寓售房处 |
端口映射有什么用?
- 我们要知道,局域网信息的交互是通过路由器充当中介的,我们的内网IP是由网关分配的
- 在一个局域网内在做端口映射之前。我们刚刚生成的远控木马被运行后,首先是要找到客户端,并告诉客户端:我已经上线了。
而肉鸡寻找服务器的过程是这样的:
- 肉鸡找到找到外网IP后问:请问8080端口在哪?
- 网关:我并不知道知道你说的8080端口谁!
而端口映射的作用:将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务
当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上
在上面这个情况作了端口映射之后对话是这样的。
- 肉鸡:请问8080端口在哪?
- 网关:你查询的8080端口被映射到了192.168.1.76上面,所以你应该访问的是192.168.1.76的8080端口
就说到这了,大概可以这样理解吧!
版权属于:Xcnte' s Blog(除特别注明外) 本文链接:https://www.xcnte.com/archives/78/ 本站文章采用 知识共享署名4.0 国际许可协议 进行许可,请在转载时注明出处及本声明!
相关文章
- Vue中导入excel文件的两种方式
- day09-Tomcat01
- 【前端开发工具】VUE3 devtools安装
- SpringCloud (五) - 云服务器Centos7.6,安装JDK,Maven,Mysql,Redis
- 微信小程序项目实例——我有一支画笔(画画)
- nginx+vite 项目打包及部署
- 学习笔记——请求乱码处理、web项目的路径问题
- 【已解决】Git踩坑笔记[! [remote rejected] main -> main (pre-receive hook declined) error: failed to push some refs to "xxx"]
- 微服务框架:如果不用 Spring Boot,还可以选择谁?
- Axure教程-新手入门基础(小白强烈推荐!!!)
- 判断线程池是否全部完成的 5 种方法,还有谁不会?
- kkFileView部署及使用
- 运行node app.js 错误:Uncaught ReferenceError: require is not defined
- 前端跨域解决方案
- 多线程 & 反射 & 注解 & JDBC 核心点总结
- 有可能是学习Git命令最好的网站
- this.$emit使用方法【前端技术】
- from origin ‘null‘ has been blocked by CORS policy: Cross origin requests are only supported for ...
- Vue3项目搭建全过程
- 到底选择Vite还是Webpack?