IP从入门到起飞:妈妈再也不用担心我不会网络基础啦

前言:网络基础是编程、运维、前端开发的"必过关卡",而IP就是其中最核心的概念。这篇文章用通俗类比+实操干货,带你从0到1吃透IP知识,看完再也不怕被问"公网IP和内网IP有啥区别""端口被占用怎么办"!

第一章:IP地址是什么?

1.1 通俗理解:IP就是设备的"门牌号"

我们在现实中靠门牌号接收快递,设备在互联网中就靠IP地址接收数据,两者逻辑完全一致:

  • 现实场景:你住在「北京市朝阳区某某路100号」→ 快递员精准定位送达
  • 网络场景:你的电脑IP是「192.168.1.100」→ 数据包精准定位到你的设备

核心结论:没有IP地址,互联网数据就会"迷路",无法完成传输。

1.2 IP地址的两个版本:IPv4与IPv6

目前IP地址有两个版本,日常开发重点掌握IPv4即可,IPv6作为未来趋势了解即可。

版本 格式 示例 特点
IPv4 4组十进制数字,点分分隔 192.168.1.100 当前主流,地址资源濒临耗尽
IPv6 8组十六进制数字,冒号分隔 2001:0db8:85a3::8a2e:0370:7334 未来趋势,地址量近乎无限

第二章:IPv4地址详解

2.1 地址结构:4段数字的"密码"

IPv4地址由4段0-255的十进制数字组成,每段对应8位二进制( <math xmlns="http://www.w3.org/1998/Math/MathML"> 2 8 = 256 2^8=256 </math>28=256,因此取值0-255),结构如下:

复制代码
192 . 168 . 1 . 100
 │     │    │    │
 │     │    │    └── 第四段:0-255
 │     │    └─────── 第三段:0-255
 │     └──────────── 第二段:0-255
 └────────────────── 第一段:0-255

2.2 IP地址分类:按用途分最关键

所有IPv4地址按用途可分为公网IP和内网IP,这是开发中最常接触的分类方式:

css 复制代码
┌─────────────────────────────────────────────────────────┐
│                      所有 IP 地址                        │
├─────────────────────────┬───────────────────────────────┤
│       公网 IP           │          内网 IP              │
│   (全球唯一,可直接上网) │    (局域网内使用,可重复)      │
├─────────────────────────┼───────────────────────────────┤
│   示例:180.101.50.242  │   10.x.x.x (A类私有地址)    │
│   (百度的公网IP)      │   172.16.x.x - 172.31.x.x(B类)│
│                         │   192.168.x.x(C类私有地址)  │
└─────────────────────────┴───────────────────────────────┘

2.3 必须背会的特殊IP

以下特殊IP在开发中高频出现,记牢能避免很多踩坑:

IP地址 名称 含义 常见场景
127.0.0.1 本机回环地址 永远指向设备自身 本地开发访问 localhost:3000
0.0.0.0 所有网络接口 监听本机所有IP地址 服务器启动配置
192.168.x.x C类私有地址 家庭/小公司局域网 家用WiFi下的设备IP
10.x.x.x A类私有地址 大型企业内网 大型公司办公网络
172.16-31.x.x B类私有地址 中型企业内网 中型公司办公网络

第三章:公网IP vs 内网IP(核心概念)

3.1 一张图看懂两者关系

内网设备无法直接访问互联网,必须通过路由器的公网IP作为"桥梁",结构如下:

markdown 复制代码
 ☁️ 互联网 ☁️
                              │
                    ┌─────────┴─────────┐
                    │      路由器        │
                    │  公网 IP:          │
                    │  203.0.113.50     │ ← 运营商分配,全球唯一
                    └─────────┬─────────┘
                              │
           ┌──────────────────┼──────────────────┐
           │                  │                  │
    ┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐
    │   你的 Mac   │   │    手机     │   │   iPad     │
    │192.168.1.100│   │192.168.1.101│   │192.168.1.102│
    └─────────────┘   └─────────────┘   └─────────────┘
         ↑                  ↑                  ↑
       内网 IP            内网 IP            内网 IP
    (仅在当前局域网内有效,不同家庭可重复)

3.2 核心区别对比

对比项 公网IP 内网IP
唯一性 全球范围内绝对唯一 仅局域网内唯一,可跨网重复
访问范围 可被全球设备访问 仅同一局域网内设备可访问
地址数量 约43亿个,已耗尽 理论上可无限重复使用
分配主体 电信/联通/移动等运营商 路由器自动分配
费用 通常需额外付费申请 局域网内免费使用

3.3 内网设备上网的秘密:NAT技术

内网IP无法直接访问互联网,核心靠 NAT(网络地址转换) 技术,路由器充当"翻译官"的角色,流程如下:

  1. 你的设备发起请求:192.168.1.100 → "我要访问百度"
  2. 路由器NAT转换:将内网IP替换为公用IP → 203.0.113.50 → "我要访问百度"
  3. 百度响应:百度服务器 → 203.0.113.50 → "这是网页内容"
  4. 路由器还原地址:根据请求记录转发给你 → 192.168.1.100 → "这是网页内容"
  5. 你接收内容:完成上网操作

第四章:子网掩码与CIDR

4.1 子网掩码:区分"网络号"与"主机号"

子网掩码的核心作用是划分IP地址,明确哪部分是"网络号"(所属局域网),哪部分是"主机号"(局域网内设备标识):

makefile 复制代码
IP 地址:     192.168.1.100
子网掩码:    255.255.255.0
             ─────────────── (按位与运算)
网络号:      192.168.1.0     ← 相同网络号=同一局域网=可直接通信
主机号:      0.0.0.100       ← 区分同一局域网内不同设备

通俗结论:网络号相同的设备,相当于住在"同一小区",可以直接通信;网络号不同则需要路由器转发。

4.2 CIDR表示法:子网掩码的简洁写法

CIDR用 /数字 表示子网掩码中连续1的位数,替代繁琐的点分格式,日常开发高频使用:

markdown 复制代码
192.168.1.100/24
       ↓
等同于:IP 192.168.1.100 + 子网掩码 255.255.255.0
       ↓
含义:192.168.1.x 网段(256个地址)属于同一局域网

4.3 常见CIDR对照表

CIDR 子网掩码 可用设备数 常见场景
/8 255.0.0.0 约1600万台 超大型企业内网
/16 255.255.0.0 约6.5万台 中型企业内网
/24 255.255.255.0 254台 家庭/小公司(最常用)
/32 255.255.255.255 1台 单台主机定向访问

第五章:端口(Port)

5.1 端口的作用:定位设备上的"程序"

IP地址定位"哪台设备",端口则定位"设备上哪个程序"。比如你的电脑同时运行多个应用,全靠端口区分数据流向:

diff 复制代码
你的电脑同时运行:
- Chrome 浏览器: 192.168.1.100:54321  (系统随机端口)
- VS Code:       192.168.1.100:54322  (系统随机端口)
- 微信:          192.168.1.100:54323  (系统随机端口)
- React 开发服务: 192.168.1.100:3000   (框架固定端口)

5.2 端口范围划分

端口取值范围0-65535,共65536个,按用途分为三类:

范围 名称 说明
0-1023 知名端口 系统/公共服务保留,需管理员权限使用
1024-49151 注册端口 应用程序注册使用,开发者可自定义服务
49152-65535 动态端口 系统临时分配,用完即释放

5.3 必记常用端口(开发高频)

网络服务类

端口 服务 说明
80 HTTP 网页默认端口,baidu.com = baidu.com:80
443 HTTPS 加密网页默认端口,安全传输必备
22 SSH 远程登录服务器默认端口

前端开发类

端口 工具/框架 说明
3000 React/Node.js Create React App 默认端口
5173 Vite Vite 构建工具默认端口
8080 通用备选 Vue CLI、Webpack 常用端口
8081 Metro React Native 打包服务默认端口

数据库类

端口 数据库
3306 MySQL
5432 PostgreSQL
27017 MongoDB
6379 Redis

第六章:DNS(域名系统)

6.1 DNS的作用:人类的"记忆助手"

人类记不住枯燥的IP地址(如180.101.50.242),但能记住有意义的域名(如www.baidu.com)。DNS的核心就是将域名翻译成IP地址

makefile 复制代码
你输入: www.baidu.com
   ↓ DNS 解析
实际访问: 180.101.50.242

6.2 DNS解析流程(从快到慢)

浏览器输入域名后,会按以下顺序查询IP,优先使用缓存提升速度:

  1. 浏览器缓存:"我之前访问过吗?"→ 有则直接使用
  2. 系统缓存(hosts文件):"本地有配置吗?"→ 有则直接使用
  3. 路由器缓存:"路由器记得吗?"→ 有则直接使用
  4. ISP DNS服务器(运营商):"运营商知道吗?"→ 知道则返回
  5. 递归查询:根服务器→.com服务器→baidu.com服务器,最终获取IP

6.3 hosts文件:本地DNS配置神器

hosts文件是本地DNS配置文件,优先级高于外部DNS,可强制指定域名对应IP,常用于本地开发或屏蔽广告。

文件位置

  • macOS/Linux:/etc/hosts
  • Windows:C:\Windows\System32\drivers\etc\hosts

配置示例

bash 复制代码
# hosts 文件内容示例
# 本地开发:自定义域名指向本机
127.0.0.1    local.myapp.com
192.168.1.100    dev.myapp.com

# 屏蔽广告:广告域名指向无效IP
0.0.0.0    ads.annoying-site.com

第七章:DHCP(动态主机配置协议)

7.1 为什么你的IP会变?

手机、电脑每次连WiFi,IP可能变化,核心是DHCP协议------路由器自动给内网设备分配IP,并有租期限制,流程如下:

  1. 设备请求:Mac连WiFi后广播"我需要IP地址!"
  2. 路由器分配:"给你192.168.1.100,租期24小时"
  3. 设备使用:用该IP上网
  4. 租期续租:租期快到,Mac请求续租,路由器同意或分配新IP
  5. IP回收:设备长时间离线,路由器回收IP分配给其他设备

7.2 静态IP vs 动态IP

特性 静态IP 动态IP(DHCP)
配置方式 手动设置,永不改变 自动分配,租期后可能变化
适用场景 服务器、打印机、NAS 手机、笔记本、平板
优点 地址稳定,方便访问 无需配置,自动管理
缺点 易出现IP冲突 地址可变,不利于远程访问

第八章:常用网络命令(实操必备)

这些命令能快速排查网络问题,是开发、运维的高频工具,按系统分类整理:

8.1 查看本机内网IP

  • macOS(WiFi网卡):ipconfig getifaddr en0
  • macOS(详细信息):ifconfig en0
  • Linux:ip addr showhostname -I
  • Windows:ipconfig

8.2 查看本机公网IP

跨系统通用(终端/Git Bash):

  • curl ifconfig.me
  • curl ip.sb
  • curl ipinfo.io(带地区信息)

8.3 测试网络连通性(ping)

  • 基础用法:ping www.baidu.com(Ctrl+C停止)
  • 指定次数:ping -c 4 www.baidu.com(发送4个数据包)
  • Windows替代:ping -n 4 www.baidu.com

8.4 追踪路由(traceroute)

  • macOS/Linux:traceroute www.baidu.com
  • Windows:tracert www.baidu.com

8.5 查看端口占用

  • 查看3000端口占用:lsof -i :3000(macOS/Linux)
  • 查看所有监听端口:lsof -i -P | grep LISTEN
  • 杀掉进程:kill -9 <PID>(PID为进程号)

8.6 DNS查询与缓存清除

  • DNS查询:nslookup www.baidu.comdig www.baidu.com
  • macOS清除DNS缓存:sudo dscacheutil -flushcache + sudo killall -HUP mDNSResponder

8.7 HTTP请求测试(curl)

  • GET请求:curl https://api.example.com/users
  • POST请求(带JSON): curl -X POST \ `` -H "Content-Type: application/json" \ `` -d '{"name":"test","age":20}' \ ``https://api.example.com/users
  • 查看响应头:curl -I https://www.baidu.com

第九章:知识总结脑图(快速复盘)

ini 复制代码
IP 网络知识体系
│
├── IP 地址
│   ├── IPv4: 192.168.1.100(重点掌握)
│   ├── IPv6: 2001:db8::1(了解即可)
│   │
│   ├── 公网 IP:全球唯一,运营商分配,可上网
│   │   └── 示例:百度 180.101.50.242
│   │
│   └── 内网 IP(私有 IP):局域网内有效,可重复
│       ├── 10.x.x.x(大型企业)
│       ├── 172.16-31.x.x(中型企业)
│       └── 192.168.x.x(家庭/小公司,最常见)
│
├── 特殊 IP 地址
│   ├── 127.0.0.1 = localhost = 本机回环
│   └── 0.0.0.0 = 监听本机所有网络接口
│
├── 端口(Port)
│   ├── 作用:定位设备上的程序
│   ├── 范围:0-65535
│   └── 常用端口:80(HTTP)、443(HTTPS)、3000(React)、5173(Vite)
│
├── 核心网络协议
│   ├── NAT:内网设备上网的关键(地址转换)
│   ├── DHCP:路由器自动分配 IP(IP 变化的原因)
│   ├── DNS:域名 → IP 地址(人类记忆友好)
│   └── 子网掩码/CIDR:区分网络号和主机号
│
└── 常用网络命令
    ├── 查看内网 IP:ipconfig getifaddr en0 / ip addr
    ├── 查看公网 IP:curl ifconfig.me
    ├── 测试连通性:ping www.baidu.com
    ├── 查看端口占用:lsof -i :3000
    ├── DNS 查询:nslookup www.baidu.com
    └── HTTP 测试:curl https://api.example.com

结尾总结

IP知识是网络基础的核心,掌握本文内容,能轻松应对开发中的网络问题:从本地开发的localhost配置、端口占用排查,到公网/内网IP的区别、DNS解析异常处理,都能迎刃而解。

建议收藏本文,遇到问题随时查阅;也可以转发给需要的朋友,一起告别网络基础盲区!长大要当太空人🚀


如果您觉得这篇文章对您有帮助,欢迎点赞和收藏,大家的支持是我继续创作优质内容的动力🌹🌹🌹也希望您能在😉😉😉我的主页 😉😉😉找到更多对您有帮助的内容。

  • 致敬每一位赶路人
相关推荐
涡能增压发动积1 天前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o1 天前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨1 天前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz1 天前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
swg3213211 天前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
从前慢丶1 天前
前端交互规范(Web 端)
前端
tyung1 天前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald1 天前
SpringBoot - 自动配置原理
java·spring boot·后端
CHU7290351 天前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing2 天前
Page-agent MCP结构
前端·人工智能