ip与dns科普向

IP地址大科普:内网IP和外网IP到底啥区别?

刚学网络的同学一定听过"你的IP是多少""IP被封了""内网穿透"这些词,但你大概率分不清内网IP和外网IP到底有啥区别,甚至不知道自己电脑的IP到底是哪个。今天我们就用最直白的例子把这些概念一次讲透。

先搞懂本质:IP就是"网络世界的门牌号"

上一篇我们讲了host和port,host就是IP地址或者域名。那IP到底是什么?

想象整个互联网是一个超级大的快递网络,每台联网的设备(电脑、手机、服务器)都是这个网络里的一个"收货地址"。IP地址就是这个收货地址的门牌号,格式是四组数字,每组0~255,中间用点隔开,比如192.168.1.100223.74.156.78

没有IP地址,网络数据就不知道该往哪发,就像没有门牌号,快递根本送不到你家。

核心问题:全球几十亿台设备,IP够用吗?

传统的IP地址(IPv4)总共只有约43亿个,听着很多,但全球联网设备早就超过几十亿了,根本不够每台设备分一个。怎么办?工程师想了个办法:不是每台设备都需要一个公网上的"门牌号",只有需要直接和外界通信的设备才需要。

这就引出了内网IP和外网IP的区别。

外网IP:你在"互联网大街"上的门牌号

外网IP(也叫公网IP)是你在整个互联网上的唯一标识,全球唯一,就像你在整条大街上的门牌号。

当你的电脑要访问百度、刷B站的时候,数据要经过运营商的网络到达百度/ B站的服务器,对方服务器要能把数据送回给你,就得知道你在"大街"上的门牌号,这个门牌号就是你的外网IP。

外网IP通常是你家的宽带运营商(电信、联通、移动)分配的,你每次拨号上网可能会变(动态IP),也可能固定不变(静态IP,一般要额外花钱)。

内网IP:你在"小区内部"的门牌号

内网IP(也叫私有IP、局域网IP)是你在自己家/公司内部网络里的标识,只在你的小圈子里有效,出了这个圈子就没人认了。

为什么需要内网IP?因为你家里不止一台设备要上网------你的手机、电脑、平板、智能音箱都要联网,如果每台设备都要一个外网IP,43亿个IP早就不够用了。所以工程师设计了一套方案:整个家庭/公司共用一个外网IP对外通信,内部设备各分一个内网IP互相区分。

常见的内网IP地址段:

  • 192.168.x.x:家庭路由器最常用的,你家里的设备基本都是这个开头
  • 10.x.x.x:大公司、学校、云服务商常用
  • 172.16.x.x ~ 172.31.x.x:中型网络常用
一个完整的例子:你刷B站时发生了什么?

假设你在家用手机刷B站,你的手机内网IP是192.168.1.5,你家路由器的外网IP是223.74.156.78

  1. 你的手机(192.168.1.5)发出请求:"我要看这个视频"
  2. 请求先到家里的路由器,路由器把你手机的内网IP"翻译"成你家的外网IP(223.74.156.78),同时记下来"这条数据是192.168.1.5发的"
  3. 请求带着外网IP出发,经过运营商网络,到达B站服务器
  4. B站服务器把视频数据送回223.74.156.78
  5. 路由器收到数据,翻记录发现"哦,这条数据是之前192.168.1.5要的",于是把数据转发给你的手机

这个"翻译"过程就叫NAT(网络地址转换),相当于小区门口有个快递代收点,所有快递都写小区地址(外网IP),代收点根据收件人信息(内网IP)分发到各家各户。

怎么查看自己的IP?

查内网IP:

  • Windows:打开命令行(Win+R输入cmd),输入ipconfig,找到"IPv4地址"那一行
  • Mac:打开终端,输入ifconfig,或者在"系统设置→Wi-Fi→详细信息"里看
  • 手机:在Wi-Fi设置里点已连接的网络,就能看到IP地址

查外网IP:

  • 最简单的方式:浏览器打开百度,搜索"IP",百度会直接显示你的外网IP
  • 或者访问ip138.com等网站也能查

你会发现,内网IP和外网IP完全不一样,这是正常的------内网IP是你在家里的"房间号",外网IP是你家在大街上的"门牌号"。

新手常踩的3个坑
  1. 把内网IP发给别人,别人访问不了 :你本地跑了个项目,终端显示http://192.168.1.5:3000,你把192.168.1.5发给同学让他访问,他肯定打不开。因为192.168.x.x是你家内部的地址,出了你家的路由器就失效了。要让别人访问,要么用外网IP+端口映射,要么用内网穿透工具(比如ngrok、frp)。
  2. 同一个小区/公司的人,内网IP可能不一样但外网IP一样:因为整个小区/公司共用一个路由器出口,所有人对外都显示同一个外网IP,这也是为什么有时候你被封号了,同宿舍其他人的账号也跟着受影响------因为从服务器看,你们都是同一个外网IP。
  3. "我的IP被封了"到底封的是哪个?:网站封的永远是外网IP,因为网站只能看到你从互联网发过来的外网IP,根本不知道你内网IP是多少。
一句话总结

内网IP是"小区内部的房间号",只在你的局域网里有效;外网IP是"小区在大街上的门牌号",全球唯一,用来和互联网上的其他设备通信。你家所有设备共用一个外网IP对外,内部靠内网IP区分,路由器负责在两者之间做翻译。

DNS大科普:为什么输入域名就能找到网站?

前面我们讲了IP地址,你知道每台设备都有一个IP,比如百度的IP是220.181.38.148之类的。但你平时上网谁记得住这一串数字?你只需要输入www.baidu.com就能打开百度,这中间帮你"翻译"的就是DNS。今天我们就把这个互联网幕后功臣讲清楚。

先搞懂本质:DNS就是互联网的"电话簿"

你手机通讯录里存的是"张三",但打电话的时候手机会自动把"张三"翻译成他的手机号再拨出去。你不需要记住张三的手机号,只需要记得他的名字就行。

DNS干的就是这件事:你输入www.baidu.com(名字),DNS帮你翻译成220.181.38.148(IP地址),然后浏览器拿着这个IP去访问百度的服务器。整个翻译过程你完全感知不到,通常在几十毫秒内就完成了。

DNS的全称是Domain Name System,翻译过来就是"域名系统",说白了就是一个全球分布的"域名→IP"的翻译服务。

如果没有DNS会怎样?

想象一下,你每天上网要做的操作变成这样:

手动输入http://222.172.200.68

每个网站都要记一串数字,换一台电脑、换一个网站,你就得重新记。这就像打电话不能存名字,每次都要背对方的手机号一样,根本没法用。DNS的存在就是让你只需要记住一个好理解的域名,剩下的脏活累活它全包了。

DNS翻译的全过程:一次查询要问好几轮

你在浏览器输入www.baidu.com回车之后,系统不会直接去问百度"你的IP是多少",而是像查电话号码一样,一级一级地问下去:

  1. 先查自己有没有记过(本地缓存) :你的电脑/手机会先看看之前有没有查过www.baidu.com的IP,如果查过就直接用,不用再去问了。就像你通讯录里已经存了张三的电话,直接拨就行,不用再翻电话簿。

  2. 问你的"小区查号台"(本地DNS服务器) :如果本地没有缓存,你的电脑会去问运营商(电信/联通/移动)提供的DNS服务器,一般地址是114.114.114.114或者运营商自动分配的。这个DNS服务器通常也缓存了很多常用域名的IP,大概率直接就能告诉你答案。

  3. 问"根查号台"(根域名服务器) :如果运营商的DNS也没缓存,它就去问全球13组根域名服务器。根服务器不直接告诉你www.baidu.com的IP,而是告诉你".com后缀的域名,你去找.com的顶级域名服务器问"。

  4. 问".com查号台"(顶级域名服务器) :运营商的DNS再去问.com的顶级域名服务器,对方说".baidu.com的信息,你去找baidu.com的权威DNS服务器问"。

  5. 问"百度自己的查号台"(权威域名服务器) :最后问到百度自己的DNS服务器,对方说"www.baidu.com的IP是220.181.38.148"。

  6. 返回结果并缓存 :运营商的DNS拿到IP后返回给你的电脑,同时在自己的缓存里记一份,下次别人再问www.baidu.com就不用从头问了。你的电脑也会缓存一份,下次直接就能用。

整个过程中,你的电脑只问了运营商的DNS一次,后面那些"问根服务器→问顶级服务器→问权威服务器"的步骤都是运营商的DNS帮你代劳的,所以你感知不到这个过程有多复杂。

DNS缓存:为什么改了解析不会立刻生效?

前面说了,DNS的每一层都有缓存,这就导致一个很常见的问题:你修改了域名的解析记录(比如把网站的IP从A换成了B),但用户访问的时候还是指向旧的IP。

这是因为各级缓存还没过期。DNS记录有个"TTL"(生存时间)的概念,就是"这条缓存最多保留多久"。比如TTL设的是3600秒(1小时),那缓存最多保留1小时就会自动失效,下次查询就会重新走一遍完整流程拿到最新的IP。

这也是为什么很多网站迁移服务器后,会提前把TTL调得很短(比如60秒),这样迁移后用户最多1分钟就能访问到新服务器,不用等很久。

常见的公共DNS服务器

运营商默认分配的DNS有时候不太靠谱,可能会解析慢、甚至解析到错误的地址(DNS劫持)。你可以手动把电脑的DNS改成下面这些公共DNS,通常更快更稳:

新手常踩的3个坑
  1. 网页打不开,但QQ/微信能用:这是非常典型的DNS问题。QQ和微信连接服务器用的是IP地址,不走DNS解析;但浏览器访问网站需要DNS把域名翻译成IP。如果DNS挂了,浏览器就找不到网站的IP,自然打不开网页,但其他不依赖域名的应用不受影响。解决办法就是把DNS换成上面推荐的公共DNS。

  2. hosts文件和DNS的关系 :Windows的C:\Windows\System32\drivers\etc\hosts文件相当于一个"本地私人电话簿",它的优先级比DNS还高。系统查IP的时候会先翻hosts文件,hosts里有就直接用,没有才去问DNS。很多破解软件、去广告工具就是往hosts里写规则,让特定域名指向错误的IP,从而屏蔽广告。

  3. DNS污染和DNS劫持:有些不良运营商或者网络攻击者会在DNS解析过程中"偷梁换柱",你明明输入的是正确网址,DNS却返回一个错误的IP,把你导向钓鱼网站或者广告页面。这就是为什么建议用靠谱的公共DNS,不要用运营商默认的。

一句话总结

DNS就是互联网的"电话簿",负责把你输入的好记的域名翻译成机器能认的IP地址。整个查询过程是"先查本地缓存→再问运营商DNS→必要时逐级往上问",每一层都有缓存来加速,所以你平时感觉不到它的存在,但一旦DNS出了问题,你连网页都打不开。

相关推荐
H_oRIZoN_1 小时前
Linux入门DAY36(TCP 并发服务器)
linux·服务器·tcp/ip
美酒没故事°1 小时前
是tls、https、waf
网络协议·http·https
Shadow(⊙o⊙)1 小时前
TCP传输深层原理+优秀的可靠性、效率优化机制
服务器·网络·tcp/ip
wixzjsh11 小时前
TCP通信与HTTP协议学习笔记:粘包、三次握手、四次挥手与C/S、B/S模型
学习·tcp/ip·http
鲨鱼辣钊12 小时前
FastAPI进阶_Day21_WebSocket实时通讯实战
websocket·网络协议·fastapi
白狐_79814 小时前
408 计算机网络|TCP 可靠传输:ACK、重传、RTT、RTO
网络·tcp/ip·计算机网络
2501_9151063215 小时前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
严谨的麻辣烫16 小时前
2026 年静态 IP 为什么重新受到关注?从住宅代理安全问题看固定网络出口
运维·服务器·tcp/ip·网络安全
Neighbor_OldY16 小时前
云上VPC流日志与网络流量安全分析实战:异常流量、横向移动、C2外连与恶意IP的发现与处置
网络协议·tcp/ip·安全