
网络命令,就是你给电脑输入的文字指令。只不过这里说的,是专门拿来看网络、查网络、测网络的命令。
常见命令包含
ipconfig:查看网络配置
就像查看自己的身份证和住址ping:要求对方的设备做出应答
敲别人家的门,看对方在不在tracert:查询到对方设备大致经过了哪些路由
看经过了哪些中转站nslookup:向 DNS 服务器询问域名对应的 IP 地址
就像查通讯录,把网站名翻译成门牌号netstat:查看网络中计算机之间的通信状态
看当前正在通话中的名单它能检查的流程,大致就是
你(电脑) -> 路由器 -> 互联网 -> 网站服务器
所以这些命令看起来只是几行字,但真想看懂它们,还是得先知道网络本身是怎么回事。
在早期,电脑并不是像今天这样天然互联的。很多机器要么彼此独立,要么只能在很小范围内通信。
后来,公司想让同一栋楼里的电脑共享文件、共享打印机,所以局域网出现了。再后来,城市和城市之间也想互通,于是更大范围的网络也就出来了。
简单来说:
主要靠这几个东西:路由器、交换机、Wi-Fi。
先看一个常见流程:
互联网 -> 路由器 -> 交换机 -> Wi-Fi/网线 -> 你的设备
我们家里常说的“路由器”,很多其实是把 路由器 + 小交换机 + Wi-Fi AP 做在一起了。
所以当手机连不上网的时候,并不一定是“整个路由器都坏了”,也可能只是无线部分、拨号部分,或者上游网络出了问题。
那为什么需要区分内网和外网呢?
因为并不是所有设备,都应该直接暴露在公网中。像公司内部系统、数据库之类的东西,一般不会希望任何人都能直接访问。
另外,公网 IP 数量有限,而内网可以让很多设备共享较少的公网地址。
这么一看,局域网和内网很像,广域网和外网也很像,但它们说的不是一回事:
举个例子:
深圳办公室内网,通过专线连接广州办公室内网
在命令行窗口里,输入 ,会输出大量信息,这里一般关注“物理地址”。ipconfig /all
例如:
00-1A-2B-3C-4D-5E
MAC 地址本质上是一个 48 比特的地址,8 比特一组,一共 6 组,通常写成 6 组十六进制数。
大致可以这样理解:
它更适合在局域网里识别“这一跳该把数据交给谁”。
但如果把 MAC 地址放到广域网里直接拿来定位设备,就不合适了。因为它更像是在回答“这块网卡是谁”,而不是“这台设备现在在哪”。
IP 地址,你可以先把它理解成网络层面上的“位置标识”。
最常见的是 IPv4。它本质上是一个 32 比特的数字,8 比特一组,分成 4 组,中间用 分开。.
例如:
192.168.1.10
8 比特的十进制范围是 ,所以 IPv4 理论上的地址总数大约是 42 亿个。0~255
那 IPv6 呢?
你可以先记住一点:IPv6 是 128 比特地址,它出现的一个重要原因,就是 IPv4 地址不太够用了。
光知道 IP 地址还不够,电脑还得判断:对方是在本地网段里,还是在别的网络里。
这时候就有两个东西:
子网掩码的作用,就是帮助设备判断一个 IP 地址里,哪些部分表示网络,哪些部分表示主机。
比如最常见的一种情况:
192.168.1.10255.255.255.0在这种常见写法下,通常可以理解成前 24 位是网络部分,后 8 位是主机部分。
所以:
192.168.1.10192.168.1.20在这个掩码下,通常会被认为是在同一个本地网段里。
如果目标地址不在本地网段里,那就别直接找它了,先把东西交给默认网关。
默认网关通常就是离你最近、负责带你“出本地网络”的那台路由器。
IPv4 地址 . . . . . . . . . . . . : 192.168.1.10
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关 . . . . . . . . . . . . : 192.168.1.1
那么把它们放在一起看:
我的 IP 地址:
对方 IP 地址:192.168.1.10192.168.1.20
如果按 这个子网掩码来看,前面网络部分一样,通常就当本地处理。255.255.255.0
我的 IP 地址:
对方 IP 地址:192.168.1.108.8.8.8
这时候就不是本地网段了,通常先交给默认网关。
如果每台电脑、每部手机都手动去填 IP 地址、子网掩码、默认网关、DNS,那太容易出错了。
所以一般会让 DHCP 服务器通过 DHCP 协议,自动给主机分配这些配置。
简单说,它就像一个自动登记员:你一接入网络,它就把该给你的网络参数发给你。
输入:
ping 192.168.2.1
正常情况下,可能会返回:
来自 192.168.2.1 的回复: 字节=32 时间<1ms TTL=64
字节=32 表示这次应答里携带的数据量时间<1ms 表示大致的往返时间TTL=64 表示当前报文剩余的生存计数这里有个地方要说准一点:
TTL 不是“固定经过 64 台路由器就一定没了”这么死板的规则。
更准确地说,它是一个生存计数。数据每经过一跳,TTL 通常就减 1。如果减到 0 了,这个数据包就会被丢弃,防止它在网络里一直绕圈子。
DNS(Domain Name System,域名系统)
DNS 的核心作用,就是把网站名翻译成 IP 地址。
为什么会出现 DNS 呢?
早期网络规模小的时候,设备少,大家还勉强能记住一些 IP 地址。但随着网站越来越多,你不可能每次都去记一串数字,太容易混淆了。
所以人们就发明了“域名”这种更好记的名字。
你也可以把 DNS 当做一个电话本:
它的大致流程是:
第一步:先看本地有没有缓存 第二步:没有的话,去问 DNS 服务器 第三步:拿到对应的 IP 地址,再去正式访问
也就是:
网站名 -> DNS 查询 -> IP 地址 -> 正式访问
域名转换成 IP 地址的过程,就叫“域名解析”。
如果想自己查某个域名对应哪个 IP,可以用:
nslookup example.com
IP 地址和 MAC 地址看起来都像识别码,但它们分工不同。
简单来说:
这也是为什么互联网通信不能只靠 MAC 地址。
因为互联网是跨网络、跨地区、跨运营商的。光知道设备接口是谁,并不足以完成远距离转发,还得靠 IP 地址来做更大范围的寻址。
当电脑已经知道“目标 IP 在本地网段里”之后,它还得知道这个 IP 对应的 MAC 地址,这样才能在局域网里真正把数据送过去。
这时候就有 ARP。
ARP(Address Resolution Protocol,地址解析协议)
你可以把它理解成在局域网里发起一次提问:
192.168.1.101 是你吗? 是的话把你的 MAC 地址告诉我。
目标设备收到后,就会回复自己的 MAC 地址。
为了避免每次都重新问一遍,系统里通常会有一张 ARP 缓存表。
可以用:
arp -a
来查看。
TCP(Transmission Control Protocol):传输控制协议 IP(Internet Protocol):网际协议
TCP/IP 是一套通信约定。只有大家都按这套规则来,不同厂商、不同系统、不同硬件的设备之间,才有办法互相对话。
先来看它为什么会出现。
你可以这样想:
你不关心快递车发动机怎么工作,快递员也不关心你买的是书还是别的什么。
这就是分层。
好处就在于:每一层只管自己那一层的事情,互相协作,但不用把所有问题全混在一起。
TCP/IP 常见的四层可以这样记:
正式传数据之前,TCP 通常会先建立连接。
这里最常见的说法就是:三次握手。
它不是简单地“边发数据边等确认”就完了,而是要先确认双方都能收、都能发,并且把一些初始状态先对齐好,然后再正式开始传输。

建立连接之后,TCP 在传输过程中还会做确认、重传、排序这些事,尽量保证数据可靠到达。
数据封装,简单来说,就是你发送请求之后,数据会往下一层一层传:
对方收到之后,再反过来一层层拆开,这就是数据解封。

在传输途中,MAC 地址通常是不断变化的。因为每经过一跳,数据帧都会重新封装,这一跳要交给谁,MAC 就跟着变。
而 IP 地址一般来说更稳定,它表示的是通信双方的网络位置。不过如果中间经过了 NAT,源 IP 地址也可能会被改写。
所以你可以先这样记:
回过头来看,网络命令并不是孤立的。
ipconfig让你看本机网络配置ping让你测试连通性和时延tracert让你看路径nslookup让你看域名解析netstat让你看当前连接状态而它们背后真正对应的,是一整套网络通信逻辑:
所以你敲下网络命令的时候,表面上是在查一条信息,实际上是在顺着这条线,一点点看到整个网络是怎么跑起来的。