网络基础¶
有线网¶
通过网线(以太网)或光纤连接到互联网的物理网络。可以通过物理接入窃听。
无线网¶
通过2.4GHz/5GHz频段的无线电波连接到互联网的网络。信号在空中传播,容易被监听。
网络配置¶
Windows¶
输入命令:
macOS / Linux¶
输入命令:
Android/iOS¶
进入“设置” → “网络和互联网” → “Wi-Fi” → 选择已连接的网络 → 查看“高级”信息。
关键字段说明¶
以太网:有线网卡
蓝牙网络连接:蓝牙 PAN 网络
本地连接:通常是虚拟 Wi-Fi 适配器(例如 Wi-Fi Direct / 移动热点等)。
无线局域网适配器 WLAN:无线网卡
临时 IPv6 地址:为隐私设计的临时地址(会轮换),用于对外连接时减少被追踪。
本地链接 IPv6 地址:只在本链路有效(同一个二层网络里),不能跨路由。
网关¶
网关是内网通往互联网的出口。在家用网络里,它通常做这些事:
- 路由转发::把内网设备(手机/电脑)发出的数据,转发到互联网
- NAT:把内网私有 IP(比如 192.168.x.x)转换成公网出口
- DHCP:给内网设备自动分配 IP、网关、DNS
- 有时还会做防火墙、端口转发等
在电脑上看到的默认网关地址一般是 192.168.1.1 / 192.168.0.1 。这个地址是网络出口设备的内网地址。
光猫桥接(Bridge):光猫不是网关¶
- 光猫只负责光电转换
- 由路由器拨号(PPPoE)并做 NAT/DHCP
- 网关是路由器(比如 192.168.1.1)
光猫作为路由(Router):光猫是网关¶
- 光猫自己拨号并做 NAT/DHCP
- 路由器可能变成“二级路由”或“AP”
- 网关是光猫(电脑默认网关会指向光猫的地址)
查看当前局域网网关参数¶
网关 IP¶
网关 MAC 地址¶
有了 MAC 的前三组(OUI),就能大概率判断厂商(华为/锐捷/TP-Link/小米/思科等)。
虚拟网关¶
00-00-5E 是标准组织 IANA 分配给一种虚拟路由协议的 MAC 地址空间,用于:
VRRP(Virtual Router Redundancy Protocol)
HSRP(思科的类似协议)
CARP(BSD 的版本)
这意味着所在网络是大规模企业网/校园网结构,网关可能由两台或多台路由设备组成。
网关名称 / 设备名¶
如果网络有 PTR 记录,可能会返回一个主机名;没有就会失败/返回 Unknown。
或:
如果能解析,会显示类似 Pinging router.local [your_gateway_ip];解析不了就只显示 IP。
或:
第一跳通常就是网关(可能显示名字或只显示 IP)。
子网掩码¶
子网掩码告诉电脑:哪些位是“网络号”(同一局域网),哪些位是“主机号”(这台设备)。它用来判断目标 IP 和本机是不是在同一个子网/局域网里。
例如,子网掩码:
255.255.0.0 等价于 /16(前 16 位是网络号)。例如,同一子网的范围是:10.196.0.0 ~ 10.196.255.255
255.255.255.0 等价于 /24(同网段 256 个地址左右)。
做按位与(AND)判断两台机器是否同一网段:网络号 = IP 地址 AND 子网掩码
例如:
10.196.69.101AND255.255.0.0=10.196.0.0- 如果另一台是
10.196.8.2010.196.8.20AND255.255.0.0也是10.196.0.0→ 同网段 - 如果另一台是
10.197.8.20AND 后会变成10.197.0.0→ 不同网段,走网关
IP地址¶
IPv4¶
局域网(RFC1918 私网段)¶
10.0.0.0 ~ 10.255.255.255(10/8)
172.16.0.0 ~ 172.31.255.255(172.16/12)
192.168.0.0 ~ 192.168.255.255(192.168/16)
169.254.0.0/16:APIPA 自动地址(没拿到 DHCP 时)
100.64.0.0/10:运营商 CGNAT 内网(不是局域网,也不是公网)
ARP¶
ARP(Address Resolution Protocol,地址解析协议)可以在 IPv4 局域网 里把IP 地址翻译成MAC 地址。ARP 只在同一二层网络/广播域里有效。
当你的电脑要访问同网段的某个 IPv4 目标:
如果在同一子网,它需要对方的 MAC 地址 才能发以太网帧。
- 它会广播一个 ARP Request:
- 目标主机会回一个 ARP Reply:
- 电脑把这个映射缓存起来(ARP 缓存/ARP 表),之后一段时间内就不用再问了。
如果访问的目标 不在同一子网:
- 电脑不会去 ARP 8.8.8.8(它不在本地局域网,ARP 广播也到不了它)
- 它会把包交给 默认网关
- 通过默认网关的IP地址去ARP默认网关的MAC地址
- 然后把以太网帧发给网关,由网关帮你转发到外网。
IPv6¶
局域网¶
前缀:
fe80::/10 —— 链路本地地址(Link-Local)
- 只能在同一个二层网络里用(同一个 Wi-Fi/交换机这一跳)
- 一定是“本地/局域网意义上的地址”
fc00::/7(常见 fdxx:)—— IPv6 私网/ULA(Unique Local Address)
- 类似 IPv4 的私网(不应在公网路由)
- 类似于
fd12:3456:...一般就是“内网 IPv6”。
2000::/3 —— 全球单播地址(Global Unicast)公网 IPv6
- 大多数公网 IPv6 都在这个范围(2xxx/3xxx 开头)
- 你的是:
2408:8642:...(2408 开头属于 2000::/3 范围)
::1 —— 本机回环(Loopback)
- 指本机。
连接¶
入站连接:外部设备主动向本地设备发起的连接请求
-
防火墙:入站连接通常需要防火墙允许才能通过(默认情况下,防火墙会阻止所有入站连接,以防止未经授权的外部访问)。
-
安全风险:入站连接是网络攻击的常见入口(比如黑客扫描开放端口并发起入站连接试图入侵),因此需要谨慎开放入站端口(如仅允许可信IP或应用)。
连接过程:
1. 公司的电脑(外网)主动向路由器的公网IP(123.123.123.123)的3389端口发起连接。
2. 路由器检查它的 NAT连接跟踪表,发现 没有任何一条现有记录 是关于 公网IP:3389 这个端口的。
3. 路由器不知道这个包应该发给内网的哪个设备。默认情况下,出于安全考虑,路由器的防火墙会 丢弃这个包,连接失败。
- 端口转发:在路由器上设置一条规则,将外部网络(互联网)对路由器特定端口的访问请求,自动转发到内网中指定设备的指定端口上。
出站连接:本地设备主动向外部设备发起的连接请求。普通用户正常上网几乎全部是 “由内网设备主动向外网服务器发起连接”。
连接过程:
1. 电脑(内网IP,如 192.168.1.100) 想访问谷歌服务器(公网IP,如 142.250.185.78)。
2. 电脑生成一个TCP连接请求包。这个包里有:
* 源IP: 192.168.1.100
* 源端口: 一个随机的高位端口(比如 54321)
* 目标IP: 142.250.185.78
* 目标端口: 80 (HTTP) 或 443 (HTTPS)
3. 这个包到达路由器。
4. 路由器进行NAT转换:
* 它把数据包的 源IP 改成路由器自己的 公网IP(比如 123.123.123.123)。
* 它把数据包的 源端口 也改成一个 随机的外网端口(比如 65500)。路由器会记住这个映射关系
5. 路由器在自己的 NAT连接跟踪表 里创建一条记录:
内网IP:内网端口 <--> 公网IP:外网端口 <--> 目标服务器IP:目标端口
例如:192.168.1.100:54321 <--> 123.123.123.123:65500 <--> 142.250.185.78:443
6. 修改后的数据包(源IP:端口 = 123.123.123.123:65500)被发送到互联网,最终到达谷歌服务器。
7. 响应数据包同理返回电脑。
-
被动节点:不主动产生业务流量、不主动发起会话的实体。它通常监听(listen)或等待(wait)来自其他节点的请求,然后根据请求进行响应或转发。一般指服务器。
-
主动节点:主动发起连接、发起查询或主动推送数据。
NAT¶
NAT(网络地址转换)是路由器将内网私有IP转换为公网IP的技术。
NAT Type 1(Open / Direct) - 设备直接获取公网IP,无NAT - 连接成功率:100%
NAT Type 2(Moderate) - 特点:有防火墙但端口有限制 - 连接成功率:较高
NAT Type 3(Strict) - 特点:严格NAT,需手动配置端口映射 - 连接成功率:中等
NAT Type 4(Symmetric) - 特点:每次连接分配不同端口 - 连接成功率:最低
改善NAT类型¶
-
UPnP(通用即插即用):客户端自动在路由器上创建端口映射
-
NAT-PMP(苹果的端口映射协议):与UPnP类似,但更轻量级
-
手动端口映射:登录路由器管理界面,手动设置端口转发规则
-
DMZ(非军事区):将设备完全暴露在公网,不推荐使用
CGNAT¶
运营商级网络地址转换。运营商(移动、联通、电信等)因为IPv4地址枯竭,在其网络内部又做了一层NAT。路由器获取到的WAN口IP地址(在路由器管理页面看到的外网IP)是一个内网IP(通常是 100.64.x.x 到 100.127.x.x 或 10.x.x.x),而不是全球唯一的公网IP。
如何判断自己是否在CGNAT下?
- 查看路由器WAN口IP:登录路由器管理界面,找到“网络状态”或“WAN口信息”,记下IP地址。
- 与公网IP对比:用手机或电脑直接访问
ip138.com或whatismyip.com,查看你当前的公网IP。 - 如果两个IP地址一致:恭喜,你有公网IP(但可能仍需端口转发)。如果两个IP地址完全不同,且路由器WAN口IP是
100.64.x.x,10.x.x.x,172.16.x.x~172.31.x.x,192.168.x.x这些范围内的任何一个:那么你极有可能处于CGNAT之下。
CGNAT的影响: 这是比家庭路由器NAT更严重的一层障碍。即使你在自家路由器上做了完美的端口转发,外面来的连接请求也会被运营商的CGNAT设备挡住,无法到达你的路由器。 这是目前很多移动宽带用户BT下载慢的主要原因。
localhost¶
localhost 是计算机在网络中对自己的一种称呼,意思是“本机”或“本地主机”。
localhost 是一个域名,它对应的 IP 地址通常是 127.0.0.1(在 IPv4 标准下)或 ::1(在 IPv6 标准下)。当向 localhost 发送数据时,数据包通常不会经过物理网卡(网线或 Wi-Fi),也不会传输到外部网络。操作系统会在内部直接把数据“回环”拦截下来,送回给本机。
- Loopback Interface(回环接口): 这是一个虚拟的网络接口。即便电脑拔掉了网线、断开了 Wi-Fi,这个接口依然存在且能工作。
网络层级¶
每一层都为上一层提供服务,并对数据进行“打包”。
应用层 (Application Layer)¶
- 协议: HTTP, HTTPS, FTP, DNS
- 功能: 产生数据。比如浏览器发起一个
GET /请求。 - 作用服务: 环境变量中设置的
HTTPS_PROXY就作用在这一层。它直接修改了程序的行为,让程序不再直接找目标地址,而是打包好数据发给代理地址。
HTTP¶
用HTTP协议访问服务器时,默认访问80端口。
HTTPS¶
用HTTPS协议访问服务器时,默认访问443端口。
传输层 (Transport Layer)¶
- 代表协议: TCP, UDP
- 功能: 负责建立连接(三次握手)。它只关心 端口号 (Port)。
网络层 (Network Layer)¶
- 代表协议: IP (IPv4, IPv6), ICMP
- 功能: 负责路由,决定数据包往哪个 IP 地址 走。
- 作用服务:
localhost触发了系统的回环驱动,数据包直接在内核里原地调头,不发往物理线路。
链路层与物理层 (Link & Physical Layer)¶
- 硬件: 网卡、网线、Wi-Fi 信号。