2、环境准备:Linux基础环境搭建、Python3与pip安装、Git版本控制初始化
说实话,很多做流控调试的朋友,一开始都栽在环境上。工具链还没跑起来,光装依赖就折腾了两天。我早期带团队时,就吃过这个亏——大家各自装各自的,版本对不上,最后联调时全崩了。
所以这一章,咱们把地基打牢。你跟着我的步骤走,半小时内就能搭出一个干净、可复用的开发环境。
2.1 Linux基础环境搭建
我个人习惯用 Ubuntu 22.04 LTS 作为主力开发机。为什么选它?包管理成熟、社区活跃、遇到坑能快速搜到答案。如果你用 CentOS 或 Debian,原理一样,只是包管理器换成 yum 或 apt-get。
2.1.1 系统最小化安装
装系统时,我建议只选「SSH Server」和「标准系统工具」两个组件。桌面环境?没必要。流控调试大部分时间在终端里,图形界面反而占资源。
sudo apt update && sudo apt upgrade -y。把内核和基础库升到最新,避免后续装包时遇到依赖冲突。
2.1.2 必备基础工具
有些工具是「你感觉用不上,但真缺了它寸步难行」的。比如:
- curl / wget:下载脚本、测试接口,天天用。
- vim / nano:改配置文件,总得会一个。
- net-tools / iproute2:看网络状态、抓包前置。
- build-essential:编译 Python 扩展包时,缺了它直接报错。
一键安装命令:
sudo apt install -y curl wget vim net-tools iproute2 build-essential
rm -rf / 差点把生产环境删了。老老实实建个普通用户,需要提权时加 sudo。
2.2 Python3与pip安装
流控调试工具链里,Python 是核心语言。无论是写流量构造脚本,还是解析抓包结果,都离不开它。
2.2.1 检查系统自带Python
Ubuntu 22.04 默认带了 Python 3.10。你可以先确认一下:
python3 --version
# 输出:Python 3.10.12
如果版本低于 3.8,我建议你升级。为什么?很多流控库(比如 scapy、dpkt)已经放弃对 3.6 以下的支持了。
2.2.2 安装pip与虚拟环境
pip 是 Python 的包管理器。没有它,装库全靠手动下载,那效率太低了。
sudo apt install -y python3-pip python3-venv
装完后,我强烈建议你配置国内镜像源。不然下载速度会让你怀疑人生:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install 所有依赖到系统级 Python 环境。结果两个项目依赖同一个库的不同版本,冲突到崩溃。后来我养成了习惯——每个项目建一个虚拟环境。
创建虚拟环境的命令:
python3 -m venv flow_control_env
source flow_control_env/bin/activate
看到终端前面多了 (flow_control_env) 前缀,就说明环境激活成功了。以后所有 pip install 都只影响这个环境,不会污染系统。
2.2.3 验证安装
写个简单的测试脚本,确认 Python 和 pip 都能正常工作:
# test_env.py
import sys
print(f"Python 版本: {sys.version}")
# 尝试导入一个常用库
try:
import json
print("json 库可用")
except ImportError:
print("json 库不可用,请检查安装")
跑一下:python3 test_env.py。如果没报错,说明环境就绪了。
2.3 Git版本控制初始化
做流控调试,你一定会反复修改脚本、配置、抓包脚本。没有版本控制,改坏了只能靠「Ctrl+Z」或者「重写」。Git 就是你的后悔药。
2.3.1 安装Git
sudo apt install -y git
装完后,先配一下全局身份。不然提交代码时 Git 会一直抱怨:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
master 改成 main,避免不必要的争议:git config --global init.defaultBranch main。
2.3.2 初始化项目仓库
假设你的流控调试项目放在 ~/flow_control_toolchain 目录下:
mkdir ~/flow_control_toolchain
cd ~/flow_control_toolchain
git init
这时候目录里会多一个 .git 隐藏文件夹。别动它,那是 Git 的数据库。
2.3.3 创建.gitignore文件
有些文件不该被 Git 跟踪,比如虚拟环境、编译产物、日志文件。我建议你一开始就建好 .gitignore:
# .gitignore
__pycache__/
*.pyc
flow_control_env/
*.log
*.pcap
.DS_Store
为什么排除 *.pcap?抓包文件动辄几百 MB,提交到 Git 里会让仓库变得臃肿。我见过有人把 2GB 的 pcap 文件 push 到 GitHub,结果仓库直接废了。
2.3.4 第一次提交
git add .
git commit -m "chore: 初始化流控调试工具链项目"
到这里,你的项目就有了第一个版本快照。以后每次修改,都可以通过 git diff 看到变化,改坏了也能 git checkout 回滚。
2.4 本章知识体系总览
下面这张图,帮你把本章的核心逻辑串起来:
2.5 环境验证清单
全部装完后,我建议你对照这个表格检查一遍。少一个环节,后面都可能出问题:
| 检查项 | 验证命令 | 预期结果 |
|---|---|---|
| 系统版本 | lsb_release -a |
Ubuntu 22.04 LTS 或更高 |
| Python版本 | python3 --version |
≥ 3.8 |
| pip版本 | pip --version |
显示版本号且无报错 |
| 虚拟环境 | python3 -m venv test_venv |
成功创建目录 |
| Git版本 | git --version |
≥ 2.30 |
| Git配置 | git config --list |
显示 user.name 和 user.email |