Ubuntu Caddy 保姆级完整教程

一、安装 Caddy(官方源,Ubuntu20.04‑26.04 通用)

一条一条复制执行:

bash 复制代码
sudo apt update
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl

#导入密钥
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

#添加软件源
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list

sudo apt update
sudo apt install caddy

二、验证安装

复制代码
caddy version

输出版本号即为成功。

安装完成后 systemd 服务自动创建,服务名:caddy

三、修改 Caddyfile 配置(核心!适配 FRP‑TCP 隧道)

配置文件路径:/etc/caddy/Caddyfile

bash 复制代码
sudo nano /etc/caddy/Caddyfile

全部原有内容删掉,粘贴下面配置

ini 复制代码
test.example.com {
        tls {
                protocols tls1.2 tls1.3
        }
        reverse_proxy 127.0.0.1:8080 {
                header_up Host {host}
                header_up X-Real-IP {remote_host}
                header_up X-Forwarded-For {remote_host}
                header_up X-Forwarded-Proto https
        }
        header Strict-Transport-Security "max-age=31536000;"
}

⚠️这里 8080 = frp TCP 隧道 remotePort=8080 frps.toml 里必须注释掉 vhostHTTPPort = 8080,否则端口冲突!

保存退出: Ctrl+O →回车保存 →Ctrl+X退出 nano

四、常用 systemd 命令

bash 复制代码
# 启动
sudo systemctl start caddy

# 完全重启(停止再启动服务,证书申请卡住超时的时候用这个) 
sudo systemctl restart caddy

# 开机自启
sudo systemctl enable caddy

#检查配置有没有语法错误
caddy validate --config /etc/caddy/Caddyfile

# 重载配置(改完Caddyfile必须执行)
sudo systemctl reload caddy

# 停止
sudo systemctl stop caddy

# 查看服务状态
sudo systemctl status caddy

# 查看实时日志
journalctl -u caddy -f

✅Caddy 会自动申请 SSL 证书、自动把 http 跳转到 https、自动 90 天后续期证书,你完全不用管证书文件。

相关推荐
薛定谔的算法18 分钟前
前端视角秒懂:Java 和 Spring Boot 的关系,就像 JS 和 React
后端
颜进强28 分钟前
从零搭一套 WorkBuddy Skill 骨架:调接口 → 生成 HTML 报告的分层设计与流转拆解
前端·后端·ai编程
寒蝉12831 分钟前
从真实业务场景看缓存的代价
后端
深蓝AI32 分钟前
Agent 记忆层落地实战:抽取、整合、存储、检索,为什么大上下文窗口救不了你
后端·架构
steven15836 分钟前
第 17 章 组件与配置问题
后端
dkbnull40 分钟前
Spring Boot配置文件敏感信息加密解密
spring boot·后端
她的男孩43 分钟前
安全同事找我要"上周所有登录失败记录",我查完数据库:一条都没有
java·后端·架构
高级程序源1 小时前
django校企合作实习基地管理系统82506-计算机课程设计、毕业设计
vue.js·后端·python·mysql·django·课程设计·pygame
盖伦发发1 小时前
Redis 核心教学: 数据结构, 缓存设计, 分布式锁
java·redis·后端·软件工程