18
10
月
2026
推广链接又长又丑还带追踪参数?第三方短链服务说不准哪天关停、限流、往你的链接里插广告。Shlink 是一个 PHP 写的自托管短链程序:数据在自己库里、带访问统计、有 API、有二维码,1核1G 就能跑。
一、短链能干嘛,不止是"变短"
| 场景 | 怎么用 |
|---|---|
| 推广渠道 | 一个落地页配多个短链(/wx、/wb、/dy),各渠道效果分开统计 |
| 线下物料 | 海报/名片印短链,好看且后期可改指向(印刷品发出去还能换目标页) |
| 内部系统 | 长后台链接变短,邮件/微信里不发一屏乱码 |
| API 集成 | 程序里自动生成短链 + 二维码,Shlink 的 REST API 很完整 |
自托管 vs 第三方的核心差别:第三方说停就停(历史上倒闭过好几家),你的链全变死链;自托管的链,只要服务器在就永远有效。
二、部署:PHP + SQLite 最轻姿势
Shlink 支持 SQLite(零依赖)和 MySQL/Postgres/MariaDB。个人用 SQLite 就够,省一个数据库进程。
1. 环境:Nginx + PHP 8.1+,扩展需要 pdo_sqlite(或 pdo_mysql)、json、intl、gd。
2. 安装:
cd /www/wwwroot
curl -sSL https://shlink.io/install | php
# 交互式安装:选 SQLite、设主域名,完成后生成 API Key或者用 Docker(省得配 PHP):
services:
shlink:
image: shlinkio/shlink:stable
restart: unless-stopped
ports: ["8080:8080"]
environment:
DEFAULT_DOMAIN: s.yourdomain.com
IS_HTTPS_ENABLED: "true"
GEOLITE_LICENSE_KEY: 你的key # 可选:访客地域统计
volumes:
- ./shlink-data:/etc/shlink/data3. Nginx 反代:
server {
listen 443 ssl;
server_name s.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}证书见免费 SSL 证书申请与 HTTPS 部署,反通用配置见Nginx 反向代理与多站点配置。
三、创建短链:CLI 和 API
CLI 建链:
# 生成一个随机短码
./vendor/bin/shlink short-url generate https://z0w.cn/wiki/
# 指定自定义短码
./vendor/bin/shlink short-url generate https://z0w.cn/wiki/ --slug wiki
# 带标签,方便按渠道统计
./vendor/bin/shlink short-url generate https://z0w.cn/ --tags weibo,q3API 建链(程序里用):
curl -X POST https://s.yourdomain.com/rest/v3/short-urls \
-H "X-Api-Key: 你的API-KEY" \
-H "Content-Type: application/json" \
-d '{"longUrl": "https://z0w.cn/wiki/", "tags": ["api"]}'301 vs 302 的选择(重要,影响 SEO):
- 302(临时跳转):默认推荐。搜索引擎把权重算给目标页,不传递短链域名的权重——推广场景用这个
- 301(永久跳转):权重传递给目标页,适合"这个短链就是永久地址"的场景
四、统计:每个链带来了多少人
Shlink 每个短链都带访问统计:总点击、独立访客、Referer 来源、浏览器/系统、时段分布。配了 GeoLite 授权码还能看访客地域。
用法示例:公众号发一篇推文,文末放 s.你的域名/wx,朋友圈放 s.你的域名/pyq,一周后看两个标签的点击对比——哪个渠道值得投,数据说了算。渠道分析方法论见网站统计与访客分析。
五、运维三件事
- 备份:SQLite 就一个文件,每天 rsync 异地一份,方案见rsync 同步与定时备份。丢库 = 丢全部短链映射,且无法从目标页反推
- 防滥用:公开注册的短链服务会被用来做钓鱼/博彩跳板。Shlink 默认只允许 API Key 建链,别开公开创建;服务器防火墙按服务器端口安全:最小化开放收口
- 短码规范:自定义短码用易记的单词(
/wiki、/sale),随机码用默认长度;建完的链不要随便删——外面可能已经印出去了
六、进阶玩法
- 二维码 API:Shlink 每个短链直接访问
短链?qr或调 REST API 生成二维码,海报物料一键配套 - 按设备跳转:配合 Nginx 按 User-Agent 分流,iOS 跳 App Store、安卓跳应用宝(需自己写一层)
- CLI 脚本化:推广活动批量建链、批量打标签,全走 CLI,五分钟建一百个
结语
短链是个"小而美"的自托管项目:技术简单、价值明确、数据自主。对做推广的人,能按渠道拆解的点击数据,比短链本身更值钱——这是第三方服务给不了你的粒度。
需要搭短链服务器,可以看看财富云计算:NAT 型云服务器支持 443 映射,1核1G 跑 Shlink 毫无压力,SSD + 快照 + 每日备份,价格比独立 IP 机型省一半以上——短链这种轻量常驻服务,用 NAT 型最划算。
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
- 自托管密码管理:Vaultwarden 部署实战,把全家的密码管起来

[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复