跳转至

🧠 网络知识全景图 - 快速记忆版

网络知识全景图

一张图看懂所有网络概念,适合快速回顾和面试准备


📖 快速导航

返回主索引: 索引.md 详细学习路径: README.md 故障排查: 故障排查手册.md 工具参考: 网络工具箱.md



🎯 如何使用本文档

使用场景

  • 5分钟快速复习: 面试前快速回顾核心概念
  • 遇到问题时查阅: 根据症状快速定位知识点
  • 学习前的知识地图: 了解要学习的全貌
  • 忘记概念时的速查表: 不想翻长文档时的快速参考

使用建议

Text Only
第一次阅读: 快速浏览所有标题,建立知识框架
遇到问题时: 直接跳到对应章节,查看"快速查询"命令
准备面试时: 重点看"核心概念速查表"和"记忆技巧"
部署项目时: 查看"实战场景"章节,参考完整流程

🚨 网络问题快速诊断表

你遇到的问题 可能原因 快速诊断命令 解决方案所在章节
Connection refused 端口未开放/服务未启动 telnet IP PORT 03-服务器与SSH
Connection timeout 防火墙拦截/网络不通 ping IPtraceroute IP 01-网络基础
DNS resolution failed DNS配置错误 nslookup domain.com 02-域名与DNS
Authentication failed SSH密钥/密码错误 ssh -vvv user@IP 03-服务器与SSH
浏览器能访问但命令行不行 代理未配置/TUN模式未开启 curl ipinfo.io 04-代理与VPN, 05-TUN模式
容器无法访问外网 Docker网络配置错误 docker network inspect 07-Docker网络
访问速度很慢 未使用CDN/距离远 CDN配置 06-云服务与CDN
SSL证书错误 HTTPS配置问题 浏览器查看证书 03-服务器与SSH

📍 网络概念关系图

Text Only
网络基础层(IP/DNS/端口)
服务器连接层(SSH/远程登录)
访问加速层(代理/VPN/Clash/TUN)
云服务层(OSS/CDN/Docker)
应用实战层(项目部署/优化)

🎯 核心概念速查表

1. IP地址 - 门的门牌号

Text Only
公网IP = 全球唯一的地址,可以从任何地方访问
         例如: 8.8.8.8

内网IP = 局域网内使用的地址,不能直接从外网访问
         例如: 192.168.1.100, 10.0.0.5

类比:
公网IP = 你的家庭住址(北京市朝阳区XX路XX号)
内网IP = 你的房间号(101室)

快速查询:

Bash
# 查看本机内网IP
ipconfig          # Windows
ifconfig          # Mac/Linux

# 查看公网IP
curl ipinfo.io
curl ifconfig.me


2. 端口 - 房间里的分机号

Text Only
IP地址 + 端口 = 唯一标识一台机器上的一个服务

192.168.1.100:8080
    ↑          ↑
  IP地址      端口
(找到哪台电脑) (找到哪个程序)

常见端口:
22   → SSH远程登录
80   → HTTP网页
443  → HTTPS加密网页
3306 → MySQL数据库
6379 → Redis缓存
8080 → 常用备用端口

记住: 一个IP可以有65536个端口(0-65535),就像一栋楼有65536个房间


3. DNS - 互联网的电话簿

Text Only
DNS = 域名 → IP地址的转换系统

访问 www.baidu.com 的流程:
1. 你的电脑查询DNS: "www.baidu.com的IP是什么?"
2. DNS返回: "110.242.68.66"
3. 你的电脑连接到 110.242.68.66

为什么需要DNS?
- 记住 baidu.com 比记住 110.242.68.66 容易
- IP地址会改变,域名不需要变

测试DNS:

Bash
# 查询域名对应的IP
nslookup baidu.com
dig baidu.com


4. SSH - 远程控制服务器

Text Only
SSH = 安全地远程控制服务器

使用场景:
- 连接云服务器部署代码
- 远程训练AI模型
- 管理服务器

连接方式:
ssh 用户名@服务器IP
例如: ssh root@123.45.67.89

SSH密钥 vs 密码:
密钥登录 = 更安全,不需要每次输入密码
密码登录 = 方便但不够安全

常用命令:

Bash
# 生成SSH密钥
ssh-keygen -t rsa -b 4096

# 连接服务器
ssh root@123.45.67.89

# 传输文件
scp local.txt root@123.45.67.89:/remote/path/

⭐ 实用技巧(进阶):

Bash
# 1. SSH配置文件 (~/.ssh/config) - 别记IP地址
Host myserver
    HostName 123.45.67.89
    User root
    IdentityFile ~/.ssh/mykey.pem

# 使用: ssh myserver (自动加载配置)

# 2. 端口转发 - 访问远程服务
ssh -L 8080:localhost:8080 user@server
# 本地访问 localhost:8080 = 访问服务器的 8080 端口

# 3. 调试SSH连接问题
ssh -vvv user@server  # 显示详细日志

# 4. 保持连接不断开
# 在 ~/.ssh/config 添加:
ServerAliveInterval 60
ServerAliveCountMax 3

# 5. SSH隧道突破防火墙
ssh -D 1080 user@server  # 创建SOCKS代理

常见SSH问题速查: | 错误信息 | 原因 | 解决方法 | |---------|------|---------| | Permission denied | 密钥/密码错误 | 检查~/.ssh/authorized_keys | | Connection refused | SSH服务未启动/端口错 | systemctl status sshd | | Host key verification failed | 主机密钥变更 | ssh-keygen -R hostname |


5. 服务器与域名

服务器

Text Only
服务器 = 24小时不关机的电脑 + 提供服务

VPS (虚拟专用服务器):
- 一台物理机上虚拟出多台服务器
- 价格便宜,灵活
- 例如: 阿里云ECS, 腾讯云CVM

选择建议:
开发测试: 1核2G足够
小型网站: 2核4G
AI训练: 4核16G以上(或使用GPU实例)

域名

Text Only
域名 = 网站的名字

域名结构:
www.baidu.com
  ↑   ↑     ↑
三级 二级   顶级

购买域名:
- 阿里云、腾讯云、GoDaddy
- .com 域名约 50-100元/年
- .cn 域名约 30-50元/年

域名解析:
在DNS服务商添加A记录:
yourname.com → 你的服务器IP

6. 代理(Proxy) - 请求转发器

Text Only
代理 = 中间人,帮你转发请求

不使用代理:
你 → 互联网

使用代理:
你 → 代理服务器 → 互联网

代理的作用:
✓ 隐藏真实IP
✓ 突破网络限制
✓ 缓存加速

正向代理 vs 反向代理:
正向代理 = 代表客户端(访问国外网站)
反向代理 = 代表服务器(Nginx转发请求)

HTTP代理 vs SOCKS代理:

Text Only
HTTP代理: 只能代理网页请求
SOCKS代理: 可以代理所有流量(TCP/UDP)

推荐: SOCKS5(支持认证和UDP)


7. VPN - 加密隧道

Text Only
VPN = 虚拟专用网络,加密隧道

VPN vs 代理:
代理:    应用层,部分流量,通常不加密
VPN:     网络层,系统级所有流量,全程加密

VPN协议:
OpenVPN:  开源,安全,配置复杂
WireGuard: 简单,快速,现代首选
L2TP/IPsec: 企业常用,安全性高

使用场景:
✓ 远程办公(连接公司内网)
✓ 保护隐私(加密所有流量)
✓ 绕过地理限制

8. Clash - 代理神器

Clash核心概念

Text Only
Clash = 基于规则的代理工具

三大核心:
1. 代理节点(Proxy) = 实际的服务器
2. 规则(Rules) = 决定流量走哪里
3. 策略组(Proxy Groups) = 多个节点的组合

规则示例:
google.com → 代理
baidu.com  → 直连
github.com → 代理

Clash模式对比

Text Only
1. 规则模式(Rule Mode)
   根据规则表决定流量路由
   适合: 浏览器代理

2. 全局模式(Global Mode)
   所有流量都走代理
   适合: 全局翻墙

3. TUN模式(TUN Mode) ⭐推荐
   创建虚拟网卡,接管所有流量
   适合: 命令行工具、游戏

TUN模式详解

Text Only
为什么TUN模式更强大?

规则模式:
浏览器 ──> Clash ──> 互联网
其他应用 ──> 直连

TUN模式:
所有应用 ──> TUN虚拟网卡 ──> Clash ──> 互联网

TUN模式优势:
✓ 所有应用都能代理(包括Terminal)
✓ 不需要手动配置系统代理
✓ 支持UDP流量(游戏、视频通话)
✓ 透明代理,应用无感知

配置示例:

YAML
# config.yaml
tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true


9. 阿里云OSS - 云存储

Text Only
OSS = 对象存储服务,云硬盘

传统方式:
文件存在服务器硬盘
- 容量有限
- 服务器挂了数据就没了

OSS方式:
文件存在阿里云分布式存储
- 容量几乎无限
- 自动备份,不会丢数据
- 访问速度快

使用场景:
✓ 图片/视频存储
✓ 静态文件托管
✓ 数据备份

计费:
存储: 约0.12元/GB/月
流量: 约0.5元/GB

使用流程:

Text Only
1. 创建Bucket(存储桶)
2. 上传文件
3. 获取文件URL
   https://your-bucket.oss-cn-hangzhou.aliyuncs.com/image.jpg


10. CDN - 内容分发网络

Text Only
CDN = 全球缓存系统

没有CDN:
用户 → 你的服务器(北京)
上海的用户访问: 上海 → 北京(很慢)

有CDN:
用户 → 离他最近的CDN节点
上海的用户访问: 上海CDN节点(很快)

CDN工作流程:
1. 你把文件上传到OSS
2. CDN把文件缓存到全球节点
3. 用户访问时连接最近的节点

CDN好处:
✓ 加速访问
✓ 减轻服务器压力
✓ 节省带宽费用

11. Docker - 容器化技术

Docker基础

Text Only
Docker = 把应用和环境打包成"集装箱"

为什么需要Docker?
问题: "在我电脑上能运行,在服务器上不行"
原因: 环境不同(Python版本、依赖库等)
解决: Docker把应用+所有依赖打包,在哪都能运行

Docker vs 虚拟机:
虚拟机: 模拟完整操作系统,几个GB,启动慢(分钟级)
Docker:  只包含应用和依赖,几十MB,启动快(秒级)

Docker三大概念

Text Only
1. 镜像(Image) = 模板
   例如: nginx镜像, python:3.9镜像

2. 容器(Container) = 运行中的镜像
   例如: 运行一个nginx容器

3. Dockerfile = 构建镜像的配方
   例如: 定义如何构建你的应用镜像

Docker网络模式

Text Only
1. Bridge模式(默认) ⭐最常用
   容器有独立IP,可以通过端口映射访问外网
   适合: 单机开发、多容器通信

2. Host模式
   容器使用宿主机网络
   适合: 高性能需求

3. None模式
   容器无网络
   适合: 高安全性批处理

4. Overlay模式
   跨主机容器通信
   适合: 分布式集群、Kubernetes

常用命令:

Bash
# 运行容器
docker run -d -p 8080:80 --name my-nginx nginx

# 查看容器
docker ps

# 查看日志
docker logs my-nginx

# 进入容器
docker exec -it my-nginx bash

# 停止容器
docker stop my-nginx

⭐ Docker实战技巧:

Bash
# 1. 查看容器的网络配置
docker inspect <container> | grep -A 20 "Networks"  # grep文本搜索:按模式匹配行

# 2. 容器间通信(使用Docker网络)
docker network create mynet
docker run --network mynet --name app1 ...
docker run --network mynet --name app2 ...
# app1可以直接ping app2(不需要知道IP)

# 3. 端口映射详解
-p 8080:80   # 容器80端口映射到宿主机8080
-p 0.0.0.0:8080:80  # 明确监听所有网卡
-p 127.0.0.1:8080:80  # 只监听本地(更安全)

# 4. 调试容器网络问题
docker exec <container> cat /etc/resolv.conf  # 查看DNS
docker exec <container> ping -c 3 google.com  # 测试网络
docker exec <container> ip addr  # 查看IP地址

# 5. Docker Compose网络配置
version: '3'
services:
  web:
    build: .
    ports:
      - "8080:80"
    networks:
      - frontend
  api:
    build: ./api
    networks:
      - frontend
      - backend
  db:
    image: postgres
    networks:
      - backend

networks:
  frontend:
  backend:

常见Docker网络问题: | 问题 | 原因 | 解决方法 | |-----|------|---------| | 容器无法访问外网 | DNS配置错误 | 添加--dns 8.8.8.8 | | 容器间无法通信 | 不在同一网络 | docker network connect | | 端口映射后无法访问 | 防火墙/绑定地址 | 检查-p参数,使用0.0.0.0:port |


🔗 概念关联图

开发者日常使用的网络技术

Text Only
┌─────────────────────────────────────────────────┐
│          开发者的日常工作流                      │
└─────────────────────────────────────────────────┘
    1. 写代码(本地)
    2. 用Docker打包
    3. 通过SSH上传到服务器
    4. 配置域名解析(DNS)
    5. 配置CDN加速(静态资源放OSS)
    6. 用户访问(可能需要代理/VPN)

AI/ML开发者的网络技术栈

Text Only
┌─────────────────────────────────────────────────┐
│        AI/ML 开发者的网络技术栈                  │
└─────────────────────────────────────────────────┘
    1. 数据下载
           ├─→ 访问Kaggle/HuggingFace
           ├─→ 可能需要代理
           └─→ 大文件存放在OSS
    2. 模型训练
           ├─→ SSH连接远程GPU服务器
           ├─→ 从云端下载数据集
           └─→ 使用Docker统一环境
    3. 模型部署
           ├─→ Docker打包模型服务
           ├─→ 部署到云服务器
           ├─→ 配置域名和SSL证书
           └─→ 使用CDN加速API访问
    4. AI API优化
           ├─→ 流式传输(SSE/WebSocket)
           ├─→ 高并发连接池管理
           └─→ API网关限流与认证
    5. 分布式训练
           ├─→ NCCL通信库配置
           ├─→ RDMA网络优化
           └─→ 多机多卡集群网络

AI网络技术栈详解

Text Only
┌─────────────────────────────────────────────────┐
│              AI网络技术全景                      │
└─────────────────────────────────────────────────┘

1. 大模型API优化层
   ├─ 流式传输: SSE / WebSocket
   ├─ 长连接管理: HTTP Keep-Alive / Connection Pool
   ├─ 协议选择: HTTP/2 / HTTP/3 / gRPC
   └─ 网关层: Nginx / Envoy / Kong

2. 分布式训练网络层
   ├─ 通信库: NCCL / Gloo / MPI
   ├─ 高性能网络: RDMA / InfiniBand
   ├─ 拓扑感知: NVLink / PCIe Switch
   └─ 集群管理: Kubernetes + GPU Operator

3. 模型服务部署层
   ├─ 推理引擎: vLLM / TGI / TensorRT-LLM
   ├─ 服务框架: FastAPI / Triton / BentoML
   ├─ 模型存储: OSS / S3 + 模型缓存
   └─ 弹性伸缩: HPA / KEDA

4. 安全与监控层
   ├─ API安全: JWT / API Key / Rate Limit
   ├─ 模型保护: 水印 / 请求签名
   ├─ 可观测性: Prometheus / Grafana / Jaeger
   └─ 日志审计: ELK / Loki

💡 记忆技巧

类比记忆法

Text Only
1. IP地址 = 家庭住址
2. 端口 = 房间号
3. DNS = 电话簿
4. 服务器 = 24小时营业的餐厅
5. SSH = 远程遥控器
6. 代理 = 快递代收点
7. VPN = 加密地下通道
8. Clash = 智能交通指挥
9. OSS = 云仓库
10. CDN = 分布式快递柜
11. Docker = 集装箱

场景记忆法

Text Only
场景1: 访问Google
你 → Clash(代理) → Google服务器

场景2: 部署网站
本地代码 → SSH上传 → 服务器 → Docker运行 → 域名访问

场景3: 访问慢网站
用户 → CDN节点(缓存) → 快速返回

场景4: 远程办公
在家电脑 → VPN加密隧道 → 公司内网

🎯 学习检查清单

基础概念 ✓

  • 能解释公网IP和内网IP的区别
  • 知道常见端口号(22, 80, 443, 3306)
  • 理解DNS的作用
  • 会使用SSH连接服务器
  • 知道什么是域名

进阶概念 ✓

  • 理解代理和VPN的区别
  • 会配置Clash代理
  • 了解TUN模式的优势
  • 知道OSS和CDN的使用场景
  • 会使用Docker打包应用

实战技能 ✓

  • 能购买和配置域名
  • 能使用SSH密钥登录服务器
  • 能部署一个简单的Web应用
  • 能配置代理访问国外网站
  • 能使用Docker运行容器

🔧 网络问题排查完整流程

第一步:确认问题类型

Bash
# 1. 测试网络连通性
ping 8.8.8.8  # 能ping通吗?
-    网络正常,问题在DNS或应用层
-  不能  网络层问题,检查网络配置

# 2. 测试DNS解析
ping google.com  # 能解析吗?
-    DNS正常
-  不能  DNS问题,见"DNS故障"

# 3. 测试HTTP访问
curl -I https://www.google.com  # 能访问吗?
-    网络完全正常
-  不能  可能是代理/防火墙问题

第二步:针对性解决

DNS故障

Bash
# 检查DNS配置
cat /etc/resolv.conf  # Linux/Mac
# Windows: ipconfig /all

# 临时修改DNS
Linux: echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
Mac: 系统偏好设置  网络  DNS  添加 8.8.8.8

SSH连接故障

Bash
# 详细诊断
1. ping服务器IP - 测试网络
2. telnet IP 22 - 测试SSH端口
3. ssh -vvv user@IP - 查看详细日志

# 常见解决方法
- 权限问题: chmod 600 ~/.ssh/id_rsa
- 密钥问题: ssh-copy-id user@server
- 配置问题: 检查~/.ssh/config

代理故障

Bash
# 测试代理是否工作
curl -x http://127.0.0.1:7890 https://google.com

# 查看当前代理设置
env | grep -i proxy  # |管道:将前一命令的输出作为后一命令的输入

# Clash TUN模式测试
curl ipinfo.io  # 应该显示代理服务器IP

Docker网络故障

Bash
# 容器无法联网
docker exec <container> ping -c 3 8.8.8.8
- 失败: docker run --dns 8.8.8.8 <image>

# 容器间无法通信
docker network inspect <network>
docker network connect <network> <container>

第三步:日志和监控

Bash
# 系统日志
Linux: journalctl -u network -f
Mac: log show --predicate 'process == "networkd"'

# 应用日志
# Nginx: tail -f /var/log/nginx/error.log
# Docker: docker logs -f <container>

# 实时监控网络
sudo tcpdump -i any port 80  # 抓包
sudo netstat -tunlp  # 查看端口占用

📚 快速参考

常用命令速查

Bash
# 网络调试
ping baidu.com              # 测试网络连通性
nslookup baidu.com          # 查询DNS
traceroute baidu.com        # 追踪路由路径
curl -I https://google.com  # 测试HTTP访问

# SSH相关
ssh root@server_ip          # 连接服务器
ssh-keygen -t rsa           # 生成密钥
scp file.txt root@server:/path  # 传输文件

# Docker相关
docker run -d -p 80:80 nginx       # 运行容器
docker ps                          # 查看容器
docker logs <container>            # 查看日志
docker exec -it <container> bash   # 进入容器

# 代理测试
curl -x http://127.0.0.1:7890 https://google.com  # 使用代理访问
curl ipinfo.io                                        # 查看当前IP

常见端口速查

端口 服务 用途
22 SSH 远程登录
80 HTTP 网页浏览
443 HTTPS 加密网页
3306 MySQL 数据库
6379 Redis 缓存
8080 HTTP 开发备用端口

域名价格参考

Text Only
.com: 50-100元/年
.cn:  30-50元/年
.io:  100-150元/年(科技公司)
.ai:  200-300元/年(AI公司)

云服务器配置参考

Text Only
1核2G: 适合开发测试
2核4G: 适合小型网站
4核8G: 适合中型应用
8核16G: 适合大型应用/AI训练

🚀 下一步学习

  1. 动手实践
  2. 购买一个便宜的VPS(阿里云、腾讯云)
  3. 购买一个域名
  4. 部署一个完整的Web应用

  5. 深入理解

  6. 学习TCP/IP协议栈
  7. 理解HTTP/HTTPS详细流程
  8. 掌握Docker网络配置

  9. 进阶技能

  10. 学习Kubernetes
  11. 理解微服务架构
  12. 掌握网络性能优化

记住: 网络知识是实践出真知,多动手,多实践!

记住: 不要过度依赖AI工具,理解原理才是王道! 💪


📝 版本更新记录

v4.0 (2026-01-28) - AI网络专题 - ✨ 新增AI/ML开发者网络技术栈详解 - ✨ 补充大模型API优化技术要点 - ✨ 新增分布式训练网络架构 - ✨ 补充现代协议(HTTP/3/gRPC/WebSocket)

v3.0 (2026-01-28) - 重大更新 - ✨ 新增"网络问题快速诊断表" - ✨ SSH章节新增5个实用技巧 - ✨ Docker章节新增实战技巧和故障排查 - ✨ 新增完整的"网络问题排查流程" - ✨ 增强实战性,减少纯理论内容 - ✨ 新增使用场景和建议

v2.0 (2026-01-27) - 初始版本发布 - 核心概念速查表


作者: Claude Code