自定义域名短链接怎么选?五款实测可用平台深度横评
做推广、发外链、写文档的时候链接一长就看着头疼到处都是跟踪参数、会话标识发到群里还被各种平台自动加了“外链”标签。短链接服务其实不少但真正支持自定义域名的体验差别特别大。有些平台嘴上说支持真绑定域名的时候要么得升级付费版要么审核等一周要么跳转速度慢得让人想摔键盘。我前后花了大概一周时间把市面上主流的短链接平台挨个试了一遍踩了不少坑。下面这五个是我实际测试过、能正常绑定自定义域名并跳转的平台按使用场景和团队规模做了拆解各位可以直接对号入座。这篇文章主要写给两类人一类是个人站长想给自己的博客或社交媒体链接做统一品牌化转发另一类是运营或独立开发者需要给自己的推广链接加一层可控的跳转和统计。1. 为什么我坚持用自定义域名做短链接1.1 短链接的本质和自定义域名的隐藏价值短链接的原理一点不复杂服务器上存了一张表短链接的路径部分是主键对应一个真实的长链接。用户访问短链接时服务器返回一个 301 或 302 跳转浏览器自动带着用户去真正的地方。所谓的自定义域名就是这张跳转表挂在你自己名下。很多人觉得短链接就是把长链接变短用来省字数这是最表面的理解。自定义域名真正的价值在于品牌信任度。调研数据我记不太清了但实际测试中同一个链接用 bit.ly 和用自己域名生成的短链在技术交流群里的点击率能差 30% 以上。原因很简单现在各种垃圾短链太多了用户看到一串随机短链第一反应是“这会不会是诈骗链接”。用你自己的域名至少用户认识你知道点进去不会踩雷。自定义域名还有一个不容易注意到的优势就是对老链接的掌控力。之前在第三方平台生成的短链说失效就失效平台注销、服务商跑路、政策调整都有可能让你的历史推广链接一夜之间全变死链。自有域名的情况完全不一样就算底层服务商换了一个只要把域名解析切过去老链接就能继续存活。我自己的博客从 WordPress 换到静态方案的时候所有文章链接就是靠这招续命的。1.2 选型之前先问自己四个问题平台选型这件事不是看谁功能多就用谁得先想清楚自己到底需要什么。我建议在选择短链接平台之前先回答下面这四个问题第一数据掌握在谁手里这决定了你选自托管还是 SaaS 服务。自托管就是把开源程序部署到自己的服务器上数据完全掌握在手里但需要自己维护更新SaaS 服务配置简单打开网页就能用但数据在别人那儿平台出问题你的链接跟着遭殃。第二每月链接量级有多大如果只是偶尔发几个链接免费版或开源程序的轻量部署就够用了如果每天几千上万个链接生成就得考虑 API 调用频率限制和服务器性能。第三需不需要统计功能短链接的核心优势之一就是可以统计点击量、来源、设备但如果你的落地页本身接了百度统计或 Google Analytics短链接的统计模块反而可有可无。第四愿意投入多少运维成本自托管方案需要维护服务器、数据库、HTTPS 证书一个月要花一点时间打补丁SaaS 方案定期交钱就行。这个问题没有标准答案取决于你的技术水平和时间预算。把这四个问题想在前面后面做技术选型就顺理成章了。下面五个平台基本覆盖了绝大多数场景自托管阵营和 SaaS 阵营都有。2. 五个实测可用的平台逐个拆解2.1 YOURLS老牌自托管方案功能扎实到没脾气YOURLS 全称是 Your Own URL Shortener是我接触最早、也是每次给别人推荐时第一个说出来的方案。它是基于 PHP MySQL 的开源程序部署在支持 PHP 的虚拟主机或 VPS 上就能跑现在的最新版要求 PHP 7.4 以上MySQL 5.6 以上这个门槛对绝大多数轻量服务器都没压力。为什么在 Docker、Go、Node 满天飞的年代我还会推荐一个 PHP 程序因为它真的稳。YOURLS 从 2010 年发布第一个版本到现在十几年了核心逻辑没有变过就是一张表存短代码和长链接的关系加上一个简洁的管理后台。它跑在 PHP 上也意味着几乎任何便宜的虚拟主机都能托管不要求你懂容器编排。如果你的服务器上已经有 LNMP 或 LAMP 环境装一个 YOURLS 也就是十分钟的事。YOURLS 的功能也一点不弱。后台可以设置自定义短代码比如把短链设置成https://你的域名/join而不是一串随机字符内置点击统计支持通过插件扩展 API、生成二维码、对接 WordPress 等。我之前给一个培训机构做过活动页链接用的就是 YOURLS两个运营同时生成几百个带渠道标识的短链后台一点不卡。唯一要注意的是YOURLS 的管理后台样式比较老旧介意的朋友可能得花点时间适应但这完全不影响它作为“自托管短链接首选”的地位。2.2 Dub.co现代开源方案界面颜值即正义Dub.co 近两年在技术圈讨论度很高。它是一个开源项目底层基于 Next.js 构建默认情况下可以一键部署到 Vercel数据存储用的 Upstash Redis 和 PostgreSQL。整体感觉很“新”界面设计、交互体验都像 2023 年以后该有的样子不是那种一眼看上去就是上一个时代的系统。Dub 最大的卖点是“自带流量属性”。它的免费计划就支持自定义域名只需在 Dash 后台的 Domains 页面添加你的域名按照提示配置一条记录然后在项目的 Settings 里把默认域名替换掉就行。对个人博客作者来说这个方案比 YOURLS 省事很多不用自己去买 VPS、配置 Nginx、管理证书Vercel 全包了。Dub 的统计功能做得比大多数开源方案细致它会区分来源域名、设备类型还能自动识别 Bot 流量这些数据在判断推广效果时很有参考价值。不过话说回来因为 Dub 深度依赖 Vercel 和 Upstash 这类平台如果你在国内服务器环境部署访问速度和稳定性会打折扣。如果目标用户主要在国内建议慎重Dub 更适合部署在海外的场景。2.3 Shlink适合注重 API 和自动化的人Shlink 也是自托管方案里的一员技术上基于 PHP但和 YOURLS 完全不是一个路数。YOURLS 的管理重心在前台界面Shlink 则把重心放在 API 上官方甚至提供了 Docker 镜像一条docker run命令就能启动整个服务。Shlink 的短代码可以由用户指定也支持生成随机码这个机制叫“slug”。它的统计系统做得非常细支持按国家、浏览器、操作系统、访客来源分类查看数据呈现方式很像专业数据分析工具。更让我喜欢的是它的 REST API 设计生成短链接、查询点击量、禁用链接全套接口都开放。之前我写过一个营销素材批量生成的小工具就是调 Shlink 的 API配合 A/B 测试几百个链接的批量生成和管理完全自动化。不过 Shlink 的槽点也很明显它的管理界面虽然功能全面但初次上手有学习成本不像 YOURLS 那样打开就会用。如果你只是偶尔手动生成一个短链接Shlink 有点杀鸡用牛刀但如果你是开发者想做一个自动化运营闭环Shlink 的 API 能省下大量时间。2.4 Kutt小众但灵活Docker 一键部署真香Kutt 是一个基于 Node.js React 的开源短链接项目目前托管在 GitHub 上支持自定义域名也支持 Docker 一键启动。它比前面几个平台更轻量适合个人开发者或小团队。Kutt 的部署逻辑非常简单服务器上装好 Docker 和 Docker Compose拉取代码后修改.env配置文件填好数据库地址、Redis 地址再配置一下域名docker-compose up -d就能启动。数据库用的 PostgreSQL缓存用的 Redis整体架构非常现代。如果你已经习惯了用 Docker 部署各种服务Kutt 是上手最快的一个。功能方面Kutt 支持链接过期时间设置、密码保护、批量生成、API 访问后台 UI 风格简洁美观没有多余的干扰元素。它还有一个值得一提的功能可以设置链接按月或按次数的限制这个在做限时活动时很有用。Kutt 唯一的短板是社区相对小遇到问题查资料可能不如 YOURLS 那么方便但官方文档写得还算清楚一般问题都能解决。2.5 Bitly商业 SaaS 标杆省心但花钱Bitly 是短链接行业的老大哥做完企业服务已经十几年了各行各业的运营基本都用过。它和前面几个方案最大的区别是纯 SaaS 模式你不用管服务器、数据库、证书注册账号、绑定域名、生成链接三步完成。Bitly 的自定义域名功能默认是付费功能免费版绑定不了自己的域名只能用它分配的bit.ly短链接还会限时展示品牌页面。标准版按月收费绑定一个域名的费用大概是每月几百块人民币这个量级适合预算充足、追求稳定性和高效的企业用户。付费版除了自定义域名还支持 UTM 参数自动拼接、大量统计报表、团队协作、API 访问等功能完整度确实是最高的。如果你是企业市场部门或者有比较重的品牌曝光需求Bitly 省下的时间成本有时候比订阅费还划算。但如果你只是个人使用追求效率和成本权衡我还是推荐自托管方案毕竟免费的 YOURLS 和 Shlink 已经能覆盖绝大部分需求了。为了直观对比我把五个平台的定位列成一张表方便你快速定位自己的场景平台类型部署难度成本核心亮点适合场景YOURLS自托管中等免费生态成熟插件多有服务器的个人站长Dub.co自托管/托管低有免费额度界面现代统计细致想快速上手的个人/团队Shlink自托管中等偏上免费API 完整自动化友好开发者、自动化运营Kutt自托管低免费Docker 一键部署小团队、个人开发者BitlySaaS零付费稳定、统计强大企业市场部门3. 从零折腾自托管短链接的完整实操3.1 域名和服务器要这样准备大部分人选自托管方案第一步就卡在域名和服务器的准备上。这里先聊我的经验能帮你少走不少弯路。域名注册方面短链接使用的域名建议单独申请不要用主域名的根域因为短链接生成的路径容易被各种平台“标记为跳转”虽然技术上没影响但用主域名会稀释你品牌域名在搜索引擎上的权重。我的做法是申请一个简短、好记的独立域名比如主站是example.com就申请一个exmpl.cn或exmpl.link专门用来生成短链。域名后缀选.link、.url、.cn都可以关键是短。服务器方面如果只是个人使用选一个 1 核 1G 的 Linux VPS 就够了每年几十块的入门级配置完全能撑起几万个短链接的访问量。操作系统推荐 Debian 或 Ubuntu软件环境装 Nginx、PHP 7.4 以上、MySQL 5.7 以上。这里再说一遍不要用 Windows 服务器跑这些坑太多。环境准备阶段还有一个细节容易被忽略就是数据库账号的权限。给短链接程序用的数据库用户尽量只授权它需要的那个数据库不要用 root。这样做不只是安全考虑还能避免后面搞混数据库。我当年第一次部署 YOURLS 的时候就是用 root 建的库结果后面迁移数据时吃了一堆苦头。3.2 YOURLS 安装全流程一步步抄作业下面以 YOURLS 为例写一套完整的部署过程。这是我在 CentOS 7 上踩过坑之后整理出来的最稳妥步骤换到 Debian、Ubuntu 也大差不差。第一步安装基础环境。如果你用的是宝塔面板或类似面板直接在软件商店装 Nginx、MySQL、PHP 就行。如果是纯命令行以 Ubuntu 为例apt update apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-intl php-mbstring php-xml php-zip第二步创建数据库。登录 MySQL 后执行CREATE DATABASE yourls CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER yourls_userlocalhost IDENTIFIED BY 强密码; GRANT ALL PRIVILEGES ON yourls.* TO yourls_userlocalhost; FLUSH PRIVILEGES;注意字符集要选utf8mb4不然碰到 emoji 字符会乱码。我就是在这上面吃亏过最后又重建了一次表。第三步下载 YOURLS 源码并解压到网站目录。最新版本去 GitHub 的 YOURLS/YOURLS 仓库拿解压后重命名目录为站点根目录。然后复制config-sample.php为config.php填入数据库连接信息和站点地址define( YOURLS_DB_USER, yourls_user ); define( YOURLS_DB_PASS, 强密码 ); define( YOURLS_DB_NAME, yourls ); define( YOURLS_DB_HOST, localhost ); define( YOURLS_SITE, https://你的短链域名 );第四步配置 Nginx。在站点配置里添加一条 location 规则处理短链接转发location / { try_files $uri $uri/ /yourls-loader.php?$query_string; }这个规则的作用是当用户访问短链接路径时把请求交给 YOURLS 的加载器处理从而实现跳转。不会写 Nginx 配置的话直接用 lnmp.org 或宝塔生成的默认配置再加上面这段也行。第五步访问https://你的短链域名/admin初始化登录。默认用户名是admin密码是config.php里设置的。登录后建议第一时间生成一个 API 密钥在管理后台的 Tools 页面可以看到后面调用接口会用到。到这里一套自托管的短链接系统就上线了。整个过程顺利的话算上装环境的时间大概四十分钟到一小时。3.3 Dub.co 的 Vercel 部署少踩几个坑Dub.co 的部署路径和 YOURLS 完全不同它更适合不想折腾服务器的人。简单说你要做的是 Fork 项目、接入 Vercel、配置数据库变量三步搞定。先在 GitHub 上把 Dub 仓库 Fork 一份到自己的账号下然后用 Vercel 导入这个仓库。导入过程中Vercel 会要求配置环境变量核心是NEXT_PUBLIC_APP_URL、DATABASE_URL、UPSTASH_REDIS_REST_URL和UPSTASH_REDIS_REST_TOKEN。其中数据库连接串在 Vercel 内置的 Postgres 或 Neon 上创建Redis 用 Upstash 的免费套餐就行。部署完成后在 Dub 后台添加自定义域名Vercel 会给出一个 CNAME 值再到你的域名服务商那里把短链域名的 CNAME 解析到 Vercel 提供的地址。CNAME 解析通常几分钟生效最长不过几小时。域名验证通过后在 Dub 后台把主域名改成你的自定义域名就能正常生成短链了。这里特别提醒一下Dub 对中文路径和短代码的支持还行但落地页如果涉及跳转到国内站点Vercel 的服务器在海外访问速度多少有点影响。建议绑定域名后先用浏览器的开发者工具看看网络请求耗时如果首屏超过两秒就得考虑用国内 CDN 做一层加速或者直接换 YOURLS。3.4 HTTPS 和 DNS 配置的两个必备知识点自托管的短链接平台HTTPS 是必须的。现在主流浏览都对 http 开头的链接有权限提示用户看到“不安全”的标记很容易流失。最常用的方案是 Let‘s Encrypt 免费证书配合 Certbot 自动续期。在 Ubuntu 上执行apt install certbot python3-certbot-nginx certbot --nginx -d 你的短链域名Certbot 会自动修改 Nginx 配置并启用 HTTPS 跳转全程大概两分钟。证书有效期 90 天Certbot 的续期脚本会自动处理基本上可以做到“装完就忘”。如果你用的是 CDN比如 Cloudflare也可以开启它提供的边缘证书源站再用回源证书这属于进阶玩法个人站点不一定需要。DNS 配置方面短链接域名建议使用一条 A 记录直接指向服务器 IP不要套多层 CNAME。CNAME 链在解析时会有额外耗时短链接本来就强调速度快没必要多一层延迟。用 DNS 服务商提供的“仅 DNS”模式设置 TTL 为 600 秒方便以后改解析时快速生效。4. 常见问题与排查技巧实录4.1 链接生成后打不开先按这个顺序查短链接打不开是最高频的问题把我的排查顺序分享给大家照着做基本能快速定位。第一步确认域名解析是否生效。在本地终端敲ping 你的短链域名或dig 你的短链域名看返回的 IP 是不是服务器的 IP。如果解析不对去域名服务商那里检查记录是否写错有没有多写或漏写。第二步确认 Nginx 或 Apache 是否正常监听。在服务器上执行curl -I https://你的短链域名如果能看到返回状态码比如 302 或 200说明 Web 服务正常如果提示Connection refused去查一下 Web 服务有没有启动端口有没有被防火墙挡住。第三步检查程序日志。YOURLS 的日志默认写在数据库里没有单独的日志文件你可以通过管理后台的 Tools 页面查看。如果生成短链时保存成功但访问时显示 404大概率是伪静态规则没配好检查一下 Nginx 的try_files配置。第四步如果以上都没问题手动在浏览器地址栏输入短链接按 F12 打开开发者工具看 Network 页签里这条请求的状态码和跳转链路。状态码是 302 且 Location 指向正确地址说明整个流程没问题那就是浏览器缓存或 DNS 缓存的锅换无痕窗口再试一次。4.2 微信和浏览器拦截跳转怎么处理自建短链接被人为拦截是自托管用户最心塞的问题。微信对跳转类域名的封禁逻辑比较严格你无法提前预测某个域名会不会被标记但可以通过操作降低风险。首先要明确微信拦的是“域名信任”不是“技术”。同样的短链百度点开畅通无阻微信里可能提示“非官方网页”。对策很朴素不要在短链里接明显是广告或诱导的落地页保持落地页内容合规如果被拦截了不要直接弃用域名先看看是不是落地页的问题换个正常文章页测试。如果只是暂时被限制通常过几天会恢复。浏览器层面Chrome 和 Edge 的“危险网站”提示一般是因为域名被 Safe Browsing 收录了可以去 Google Search Console 提交申诉。申诉时要说明域名的用途和来源模板不需要多复杂按实际情况写就行。另外强烈建议短链接和主站不要放在同一台服务器上万一短链域名被恶意举报不会牵连主站。4.3 数据备份和迁移技巧别等出事才后悔自托管短平台最大的价值是数据在自己手里但数据在手不代表万无一失备份还是要做。最轻量的方案是定时导出 YOURLS 数据库。写一个简单的脚本每天凌晨用 crontab 备份 MySQL 数据库保留最近 30 天的备份文件mysqldump -u yourls_user -p密码 yourls /backup/yourls_$(date %Y%m%d).sql find /backup -name yourls_*.sql -mtime 30 -exec rm {} \;恢复也很简单新建一个空数据库执行mysql -u yourls_user -p密码 yourls backup.sql改一下config.php的数据库信息即可。这里有个坑要提醒恢复后如果短代码自定义过一定要确认数据库里的url_keyword列没有重复否则会出现两个链接互相覆盖的情况。迁移服务器时更要小心。除了数据库还要把上传的附件目录一起打包YOURLS 的二维码插件会生成图片文件存在本地目录里。数据库迁移后顺手检查一下所有短链接的 302 跳转是否符合预期别等到发出去几十条链接才发现目标地址全错了。4.4 短链滥用和暴力刷量自托管要自己扛用托管平台生成短链接服务商在安全方面是替你出手的自托管后防滥用这活儿就落在自己肩上了。最简单的一层防护是后台开启验证码功能不让不明来源的短链生成请求刷爆数据库。更严格一点可以对 Nginx 层做并发限制比如用limit_req模块限制每个 IP 每分钟的请求次数。我的配置是limit_req_zone $binary_remote_addr zoneshortlink:10m rate10r/m;然后把这条规则套到短链服务的 location 块里。这样就算有人在朋友圈传播了你的短链流量暴涨时服务器也不至于直接被打挂。对于需要 API 生成链接的场景务必用 YOURLS 提供的签名机制不要在 URL 里明文传密码。签名值由用户名加密码 MD5 后生成比裸传密码安全得多。如果发现某个短代码被大量爆破访问后台直接删除该链接或改成长链接目标即可风险控制灵活度极大。写在最后的小技巧上面五个平台我自己用得最多的是 YOURLS 和 Dub一个放在国内服务器主打稳定一个放在 Vercel 走海外链路。最后再分享一个小技巧短链接的域名建议用子域名而不是根域名。比如主站是example.com短链就用s.example.com或go.example.com这样万一短链服务出问题不会影响主站域名在搜索引擎里的信誉积累。而且子域名部署时从 DNS 解析到服务器配置都是独立的排查问题会清爽很多。做短链接这件事表面上是一个小工具实际牵扯到域名、服务器、HTTPS、防滥用这么多细节。希望这篇文章能帮你少踩几个坑顺利把自定义域名短链接跑起来。