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
注意:别用 root 账号日常操作。我曾经图省事一直用 root,结果一条 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 本章知识体系总览

下面这张图,帮你把本章的核心逻辑串起来:

环境准备核心流程 Linux基础环境 Python3 + pip Git版本控制 系统安装与更新 基础工具安装 用户权限配置 Python版本确认 pip与虚拟环境安装 镜像源配置 Git安装与配置 仓库初始化 .gitignore创建 可复用的开发环境 三个模块缺一不可,建议按顺序依次完成

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
我的经验:环境搭建最忌讳「差不多就行」。差一个版本号,可能让你多花半天排查问题。我建议你把验证清单打印出来,装一项勾一项,别凭感觉。