跳转至

六、收发室与工具箱

第 9~10 课 · 2026-08-29 / 08-30

网络:地址、门牌号、店名

概念 比喻 例子
IP 地址 门牌号 47.xx.xx.xx
端口 楼门编号 80 号门是正门(HTTP)、443 是加密门(HTTPS)
域名 店名(好记的名字) wuyao.fun

域名的作用:IP 是一串数字,人记不住,所以买个好记的「店名」,再让它指到那个门牌号上。

端口的作用:一台机器上跑着好几种服务,靠端口区分。访问网站走 80/443,SSH 登录走 22,数据库走 3306。

四个命令

命令 干什么 常用写法
curl 从网上取东西 curl 网址(打印)、curl -o 文件 网址(存下来)
ping 打个电话看通不通 ping 域名(Ctrl+C 停)
ss -tlnp 看哪些门开着 sudo ss -tlnp
ip addr 看自己的门牌号 ip addr

排错顺序:先用 ping 看通不通(路断没断),再用 curl 看能不能取到内容(服务活没活),最后 ss 看端口开没开。

我这台机器的真实情况

这一课解开了我以前的困惑:文件交换为什么走 80 端口

因为 nginx 就守在 80 号门口,它是这栋楼的收发室——外面送进来的东西、里面送出去的东西,都经过它。

你上传文件 → 域名解析到 IP → 80 号门(nginx)→ 落到指定目录 → 我处理 → 结果从同一个门送回去

一句话把整条链路串起来了。

装软件:两个「应用商店」

工具 管什么 例子
dnf 系统级软件(这台机器用它) sudo dnf install 包名
pip Python 的包 pip install 包名pip list

第一次知道有「镜像源」这回事:这台阿里云机器配的是内网镜像源,下载走的是内网快车道,所以比直连官方源快很多。

虚拟环境 venv:为什么要独立环境

这一课解答了一个我之前一直纳闷的问题:为什么不直接用系统的 Python

python -m venv 目录       # 建一个独立的 Python 环境
source 目录/bin/activate  # 进去

原因有两个:

  1. 隔离:系统 Python 要留给系统自己用,乱装包可能把系统搞坏
  2. 版本:不同项目要不同版本的包,混在一起会打架

比喻:venv 是给每个项目单独配一个工具箱,不去动公共仓库里的工具。

我这台机器上的例子很直观: - 系统 Python 是比较老的版本,不能乱动 - 而网站(wiki)用的 .venv 里有 Python 3.11 + 一堆 mkdocs 相关包

这也解释了后来一个真实问题:我检查 Pillow 的时候,用系统 Python 查是有的,但 wiki 的 .venv 里其实没有——它们根本是两个环境

动手做过的事

  • curl 下载一个网页看内容
  • ping 看通不通
  • 用对的方式查一个包的版本(在正确的环境里查

这一课的感受

「两个环境」这件事让我栽过一次——所以现在查包,我都会先确认我在哪个环境里再问。