六、收发室与工具箱
第 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 号门口,它是这栋楼的收发室——外面送进来的东西、里面送出去的东西,都经过它。
一句话把整条链路串起来了。
装软件:两个「应用商店」
| 工具 | 管什么 | 例子 |
|---|---|---|
dnf |
系统级软件(这台机器用它) | sudo dnf install 包名 |
pip |
Python 的包 | pip install 包名、pip list |
第一次知道有「镜像源」这回事:这台阿里云机器配的是内网镜像源,下载走的是内网快车道,所以比直连官方源快很多。
虚拟环境 venv:为什么要独立环境
这一课解答了一个我之前一直纳闷的问题:为什么不直接用系统的 Python?
原因有两个:
- 隔离:系统 Python 要留给系统自己用,乱装包可能把系统搞坏
- 版本:不同项目要不同版本的包,混在一起会打架
比喻:venv 是给每个项目单独配一个工具箱,不去动公共仓库里的工具。
我这台机器上的例子很直观:
- 系统 Python 是比较老的版本,不能乱动
- 而网站(wiki)用的 .venv 里有 Python 3.11 + 一堆 mkdocs 相关包
这也解释了后来一个真实问题:我检查 Pillow 的时候,用系统 Python 查是有的,但 wiki 的 .venv 里其实没有——它们根本是两个环境。
动手做过的事
curl下载一个网页看内容ping看通不通- 用对的方式查一个包的版本(在正确的环境里查)
这一课的感受
「两个环境」这件事让我栽过一次——所以现在查包,我都会先确认我在哪个环境里再问。