Caddy 安装与反向代理配置
概述
本文介绍如何在 Debian/Kali Linux 系统上安装 Caddy 并配置反向代理,实现无域名纯 IP 访问本地服务。
安装 Caddy
安装步骤(Debian/Kali Linux 通用)
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
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 apt update
sudo apt install caddy
常规配置
sudo vim /etc/caddy/Caddyfile
:80 {
handle_path /downloads/* {
root * /var/www/downloads
file_server browse
}
root * /var/www/html
file_server
}
基础反向代理配置
目标:将 localhost:3000 代理到外部 IP 访问
无域名纯 IP 反代配置(HTTP only)
http://<你的IP> {
reverse_proxy localhost:3000
}
注意:
- 必须加
http:// 前缀,否则 Caddy 会尝试申请 HTTPS 证书,无域名时会失败
- 替换
<你的IP> 为你实际的服务器 IP,比如 http://192.168.1.100
重启 Caddy 服务
sudo systemctl restart caddy
放行防火墙端口
浏览器访问测试
使用非标准端口配置
如果不想使用 80 端口(如权限问题),可以配置其他端口:
http://<你的IP>:8080 {
reverse_proxy localhost:3000
}
访问地址:
HTTPS 到 HTTP 反向代理配置
推荐配置方案
http://192.168.1.100:8080 {
reverse_proxy https://localhost:9392 {
transport http {
tls_insecure_skip_verify
}
}
}
配置说明:
http://192.168.1.100:8080:局域网设备通过 HTTP 访问
reverse_proxy https://localhost:9392:后端是 OpenVAS 的 HTTPS 服务
tls_insecure_skip_verify:跳过自签名证书验证(必须添加)
重启服务并放行端口
sudo systemctl restart caddy
sudo ufw allow 8080
访问测试
浏览器打开:
http://192.168.1.100:8080
配置对比
Caddy vs Nginx 特性对比
| 特性 |
Caddy |
Nginx |
| 配置简洁性 |
✅ 一行搞定 |
❌ 多行配置 |
| 自动 HTTPS |
✅(但无域名时不可用) |
❌ 需手动配置 |
| 无域名 HTTP 反代 |
✅ 支持 |
✅ 支持 |
OpenVAS 代理配置总结
| 项目 |
说明 |
| OpenVAS 默认地址 |
https://127.0.0.1:9392(自签名证书) |
| Caddy 反代 |
支持 HTTPS 后端,需加 tls_insecure_skip_verify |
| 无域名访问 |
只能用 http://<IP>:端口 访问 |
| 局域网支持 |
✅ 完全支持 |
故障排查
检查服务监听状态
检查 Caddy 服务状态
sudo systemctl status caddy
sudo journalctl -u caddy -f
注意事项
- 无域名配置:必须使用
http:// 前缀,避免 HTTPS 证书申请失败
- 端口选择:可以使用任何未被占用的端口
- 防火墙配置:确保相应端口在防火墙中放行
- 自签名证书:对于 HTTPS 后端服务,需要添加
tls_insecure_skip_verify 跳过证书验证