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 天后续期证书,你完全不用管证书文件。

相关推荐
tntxia1 小时前
Docker权限的问题
后端
明月_清风1 小时前
看完这段关于"全插件化架构"的技术分析后,我整理了一份笔记
前端·后端
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 7 章 AOP 思想与实现 阅读笔记 14
spring boot·笔记·后端
她的男孩2 小时前
我把管理系统接给AI,它改条数据都要先问我
java·后端·架构
元界metalite2 小时前
SpringBoot分页接口怎么设计-pageSize不设上限会发生什么
后端
IT爱学堂3 小时前
Go开发疑难杂症终结者通关指南
后端
大勇前进3 小时前
从10分钟到10秒:一个真实慢查询的SQL Server优化全记录
后端
站大爷IP3 小时前
被Python异步坑了三年,才搞懂await和create_task的区别
后端
大白803 小时前
你的数据库密码还在用明文?SQL Server 凭据管理的 3 种现代方案
后端