
lycheeverse/lycheeLychee 是一个用 Rust 编写的快速、异步、资源友好型链接检查器。该 Docker 镜像提供了一个便捷的方式来部署和运行 Lychee,用于检测 Markdown、HTML、reStructuredText 或任何其他文本文件及网站中的损坏超链接和邮件地址。
作为命令行工具、库和 GitHub Action 可用,Lychee 专为高效链接验证设计,适合集成到 CI/CD 流程、文档维护工作流或定期网站审计中。
bashdocker pull lycheeverse/lychee
latest:基于 Debian 的稳定版本(默认)latest-alpine:基于 Alpine 的轻量级版本v0.14.3):指定版本检查当前目录下所有支持文件中的链接:
bashdocker run --init -it --rm -w /input -v $(pwd):/input lycheeverse/lychee .
Windows PowerShell:
powershelldocker run --init -it --rm -w /input -v ${PWD}:/input lycheeverse/lychee .
bash# 检查单个文件 docker run --init -it --rm -v $(pwd):/input lycheeverse/lychee /input/README.md # 检查多个文件 docker run --init -it --rm -v $(pwd):/input lycheeverse/lychee /input/docs/*.md
bashdocker run --init -it --rm lycheeverse/lychee [***]
创建 docker-compose.yml 文件:
yamlversion: '3' services: lychee: image: lycheeverse/lychee volumes: - ./docs:/input working_dir: /input command: ["--format", "detailed", "."] environment: - GITHUB_TOKEN=${GITHUB_TOKEN} # 可选:设置代理 # - HTTP_PROXY=[***] # - HTTPS_PROXY=[***]
运行:
bashdocker-compose run --rm lychee
bashdocker run --init -it --rm -v $(pwd):/input lycheeverse/lychee --offline /input
bashdocker run --init -it --rm -v $(pwd):/input lycheeverse/lychee --include-mail /input/contacts.md
bashdocker run --init -it --rm -v $(pwd):/input lycheeverse/lychee --format json /input | jq '.'
创建 lychee.toml 配置文件:
tomlexclude = [ "[***]", "mailto:***" ] accept = ["200..=299", "403", "429"] timeout = 10
运行:
bashdocker run --init -it --rm -v $(pwd):/input lycheeverse/lychee --config /input/lychee.toml /input
bashdocker run --init -it --rm -e GITHUB_TOKEN=your_token_here lycheeverse/lychee [***]
| 参数 | 描述 | 示例 |
|---|---|---|
-a, --accept <CODES> | 接受的状态码范围 | --accept 200..=299,429 |
--archive <ARCHIVE> | 使用网页存档服务 | --archive wayback |
-b, --base-url <URL> | 解析相对链接的基础 URL | --base-url [***] |
--basic-auth <AUTH> | 基本认证信息 | --basic-auth [***] user:pass |
-c, --config <FILE> | 指定配置文件 | --config /input/lychee.toml |
--cache | 使用磁盘缓存 | --cache |
--cookie-jar <FILE> | 读取/存储 cookies 的文件 | --cookie-jar /input/cookies.txt |
-f, --format <FORMAT> | 输出格式 | --format json |
-E, --exclude-all-private | 排除所有私有 IP | --exclude-all-private |
--exclude <PATTERN> | 排除的 URL 模式(正则) | --exclude "[***]" |
-H, --header <HEADER> | 自定义请求头 | -H "User-Agent: Lychee/1.0" |
-i, --insecure | 允许不安全的 TLS 连接 | --insecure |
--include-fragments | 检查链接片段 | --include-fragments |
--include-mail | 检查邮件地址 | --include-mail |
--index-files <FILES> | 目录索引文件 | --index-files index.html,README.md |
--max-concurrency <NUM> | 最大并发请求数 | --max-concurrency 10 |
--max-redirects <NUM> | 最大重定向次数 | --max-redirects 5 |
-o, --output <FILE> | 输出到文件 | --output results.txt |
--offline | 离线模式,不检查网络链接 | --offline |
-p, --progress | 显示进度条 | --progress |
-q, --quiet | 静默模式,只输出错误 | --quiet |
-r, --retry <NUM> | 重试次数 | --retry 2 |
--retry-wait <SEC> | 重试等待时间(秒) | --retry-wait 10 |
-t, --timeout <SEC> | 超时时间(秒) | --timeout 15 |
-v, --verbose | 详细输出 | --verbose |
--user-agent <AGENT> | 用户代理字符串 | --user-agent "Lychee/Link-Checker" |
| 变量 | 描述 | 默认值 |
|---|---|---|
GITHUB_TOKEN | GitHub API 令牌(避免速率限制) | 未设置 |
HTTP_PROXY | HTTP 代理服务器 | 未设置 |
HTTPS_PROXY | HTTPS 代理服务器 | 未设置 |
NO_PROXY | 不使用代理的主机 | 未设置 |
GitHub 链接速率限制
--github-token 参数或 GITHUB_TOKEN 环境变量SSL/TLS 证书错误
-i, --insecure 参数禁用证书验证(仅测试环境)检查大型网站时性能问题
--max-concurrency,增加超时 --timeout,启用缓存 --cache邮件检查功能不工作
native-tls 特性,默认已启用容器内无法访问本地网络资源
--network=host(需谨慎)或正确配置端口映射Lychee 采用 MIT 许可证。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务