0.16 端口:一台机器上的不同“窗口”
第〇篇「零基础预科」免费。这一篇讲为什么一台服务器能同时提供网站、数据库、远程登录等多种服务。
一、为什么需要端口
一台服务器往往同时跑很多服务:网站、数据库、缓存、远程管理……数据都送到同一个 IP,操作系统怎么知道该交给哪个程序?
答案就是端口(Port):给每个服务分配一个 0–65535 的编号。
IP 找到机器,端口找到机器上的具体服务。 一次网络连接由"IP + 端口"唯一确定,类似"找到大楼(IP),再进某个房间号(端口)"。
二、常见端口(建议记住)
| 端口 | 服务 |
|---|---|
| 20/21 | FTP 文件传输 |
| 22 | SSH 远程登录(Linux) |
| 25 | SMTP 发邮件 |
| 53 | DNS 域名解析 |
| 80 | HTTP 网站 |
| 443 | HTTPS 加密网站 |
| 3306 | MySQL 数据库 |
| 5432 | PostgreSQL 数据库 |
| 6379 | Redis 缓存 |
| 8080 / 8443 | 常见备用 Web 端口 |
| 3389 | RDP 远程桌面(Windows) |
你的网站 SSH 端口不是默认 22,而是自定义的 35529——改非默认端口能减少大量自动化扫描和爆破,是常见加固手段。
三、监听与连接
- 服务启动后,会在某个端口上监听(listen) ,等待客户端来连;
- 客户端向"IP:端口"发起连接(如浏览器连
gysec.top:443); - 若该端口没有程序监听,连接会被拒绝(connection refused);被防火墙挡则超时。
四、查看端口
Linux:
bashss -tlnp # 列出正在监听的 TCP 端口及对应进程 sudo lsof -i -P -n # 查看端口由哪个进程占用Windows PowerShell:
powershellnetstat -ano # 列出连接和监听端口,末列是进程 PID
端口扫描(如 nmap)就是逐个尝试目标各端口,判断哪些开放、背后是什么服务——这是渗透测试信息收集的标准一步。
五、安全视角
- 最小开放原则:只暴露必须的端口(如网站 80/443),数据库、缓存、管理端口不要对公网开放;
- 你的 Umami 后台只绑
127.0.0.1:3000、不监听公网,正是这个原则; - 改默认端口、加防火墙白名单能减少暴露面;
- 攻击时先扫描端口判断"目标跑了什么",再选对应漏洞。
六、本篇小结
- 端口是机器上区分服务的编号(0–65535),IP 找机器、端口找服务。
- 常见:80/443 网站、22 SSH、3306 MySQL、6379 Redis、3389 RDP;自定义 SSH 端口可减扫描。
- 服务监听端口等待连接,无监听/被防火墙挡则连不上。
- 安全上:最小开放、敏感端口不对公网,端口扫描是信息收集起点。
下一篇 0.17 讲域名和 DNS——怎么靠名字找到 IP。