核心答案:上线四件事——①端口:仅开放 80/443,3306/6379/27017 等数据端口严禁绑 0.0.0.0;②许可证:内部项目随意,要分发就看 MIT(最省心)与 GPL(衍生必须开源)的分界;③标识:UUID v4 有 122 位随机熵,日生成 10 亿个撞一个的概率约 10⁻¹⁸;④下载估算:文件 MB ÷ (带宽 Mbps ÷ 8) = 理论秒数,实际乘 1.1-1.3 协议开销。
端口安全检查
三条红线:
- 数据库端口不公网:MySQL 3306、Redis 6379、MongoDB 27017 绑 127.0.0.1 或内网 IP,安全组只对办公网放行
- 管理端口改默认或加白名单:SSH 22 被全网扫描是常态,密钥登录+fail2ban 是底线
- 调试端口上线必关:Node 9229、Java JDWP 8787、phpMyAdmin 常见路径——被扫到就是后门
高频端口速查表
| 端口 | 服务 | 上线姿态 |
|---|---|---|
| 22 | SSH | 密钥登录+限源 IP |
| 80/443 | HTTP/HTTPS | 公网开放 |
| 3306 | MySQL | 仅内网 |
| 5432 | PostgreSQL | 仅内网 |
| 6379 | Redis | 仅内网+密码 |
| 8080 | 应用调试 | 上线关闭 |
| 9000 | PHP-FPM 等 | 仅本机 |
| 27017 | MongoDB | 仅内网 |
完整 40 端口清单用[常用端口查询](/c/dev/port-list),附排查命令口诀。
开源许可证怎么选
| 许可证 | 商用 | 修改后闭源 | 传染性 | 一句话 |
|---|---|---|---|---|
| MIT | ✓ | ✓ | 无 | 最省心,保留署名即可 |
| Apache 2.0 | ✓ | ✓ | 无 | MIT+专利授权 |
| BSD | ✓ | ✓ | 无 | 同 MIT 族 |
| LGPL | ✓ | ✓(动态链接) | 弱 | 改库本身要开源 |
| GPL | ✓ | ✗ | 强 | 衍生作品整体 GPL |
| AGPL | ✓ | ✗ | 最强 | 网络提供服务也算分发 |
决策树:想最大化被采用 → MIT;要专利保护 → Apache 2.0;要强制回馈社区 → GPL;SaaS 场景防白嫖 → AGPL。纠结时用[开源许可证选择器](/c/dev/license-picker)回答三个问题自动推荐。
UUID 版本对比
| 版本 | 生成方式 | 特点 |
|---|---|---|
| v1 | 时间戳+MAC | 有序但泄露 MAC,少用 |
| v4 | 纯随机 | 最常用,122 位熵 |
| v7 | 时间戳+随机 | 有序且安全,新系统推荐 |
v4 碰撞概率:按生日悖论,累积生成 2.71×10¹⁸ 个才有 50% 概率撞一个——日生成 10 亿个也要 740 万年。直接放心用。
实例:安全组配置排错
现象:外网访问 http://1.2.3.4:8080 超时。
- 服务器本地
curl localhost:8080→ 通 → 应用没问题 ss -lptn→ 应用绑在127.0.0.1:8080→ 只监听本机,外网当然不通- 改绑
0.0.0.0或内网 IP → 仍不通 - 查云安全组 → 8080 未放行 → 添加入站规则 → 通
口诀:本地通→看监听地址;监听对→看安全组;安全组对→看防火墙(iptables/ufw)。
实例:下载时长估算
场景:500MB 安装包,用户 200Mbps 带宽。
- 换算:200Mbps ÷ 8 = 25 MB/s 理论速度
- 理论时长:500 ÷ 25 = 20 秒
- 实际修正:TCP 开销+晚高峰 ≈ ×1.2 → 约 24 秒
用[下载时间计算器](/c/dev/download-time)直接输入文件大小与带宽档位,自动含协议开销修正。
常见误区
- 「先开放 0.0.0.0 调试,回头再收」:扫描器 5 分钟内就能发现新暴露端口,弱口令 Redis 被写入 SSH 公钥的案例每周都在发生。
- 「用了 GPL 库改成 SaaS 就没事」:GPL 管不到网络服务,但 AGPL 就是为此而生——选依赖时看清是哪种。
- UUID 当安全凭证:UUID 是标识符不是密钥——v4 虽随机但出现在 URL/日志里就会泄露,鉴权请用专门的 token 方案。
- Mbps 当 MB/s:运营商标称带宽是比特(Mb),下载显示是字节(MB)——1 字节=8 比特,1000M 宽带理论峰值 125MB/s,别投诉错对象。