惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
IT之家
IT之家
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
The GitHub Blog
The GitHub Blog
宝玉的分享
宝玉的分享
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
博客园 - 【当耐特】
I
Intezer
Recorded Future
Recorded Future
C
Cisco Blogs
Know Your Adversary
Know Your Adversary
T
Threat Research - Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V2EX - 技术
V2EX - 技术
L
Lohrmann on Cybersecurity
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Tenable Blog
U
Unit 42
Google Online Security Blog
Google Online Security Blog
Attack and Defense Labs
Attack and Defense Labs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
SecWiki News
SecWiki News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
MongoDB | Blog
MongoDB | Blog
博客园 - 司徒正美
博客园_首页
N
News | PayPal Newsroom
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
Project Zero
Project Zero
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
Schneier on Security
Schneier on Security
V
Vulnerabilities – Threatpost

繁星点点

最新轻量级龙虾部署教程 通过netboot.xyz重装系统 giffgaff卡保号教程 Llinux系统中全新透明代理方案(可代理所有出站流量) tailscale开启子网路由常见的坑 OpenWrt固件编译 解决UFW和Docker的问题 使用PGP的非对称算法加密文件 NSSM工具把任意exe程序注册为Windows后台服务 轻量级简约端口转发rinetd 安卓IDE的安装和使用 IP信息查询网站汇总 热点共享代理教程 SSH使用密钥认证登录详细解释 Debian系统公网IP出口切换指南,适用多IP服务器 Windows系统安装Scoop包管理器 安卓Flutter开发学习笔记 使用手机搭建节点服务端 关于github提交记录泄露真实邮箱的处理办法 anytls协议部署教程 通过gitlab流水线自动备份仓库 通过CF-Workers代理访问网站 低配机器使用alpine系统跑docker 端口敲门教程 3x-ui面板通过api管理示例 nmap端口扫描 数据库常用命令 snap和winget包管理器 Git推送GitHub常用命令 😩😩😩学不完,根本学不完😩😩😩 使用CDN后获取访客真实IP 一些用于网络测试的下载测速文件 纯v6网络访问v4站点最简单的方法 服务器配置SSH密钥登录 windows重装系统教程 Docker部署哪吒监控 Github-Actions默认用户变量GITHUB_TOKEN的提权语法 给站点套CFT的一些坑 解决CF反代Docker失效的问题 使用py3快速启动一个文件上传和下载的接口 ios系统最新免拔卡使用tiktok方法 clash手搓配置最全协议示例详解 为IP地址申请免费证书并开启HTTPS 实用网站收藏 纯CSS实现剧透效果 在CloudflareWAF中屏蔽国内浏览器 网络安全之百度URL欺骗漏洞分析和复现 超级强大的ansible批量管理主机运维工具使用教程 收集整理的最新的常用VPS脚本工具 无法注册TG账号和国内号码接收不到验证码详细解决方案 国内环境安装xui面板 免费接码网站合集 完整的网络状态码列表 关于xui面板报错无法监听127.0.0.1:62789的问题 Xboard面板常见问题 项目编译构建文档 ios最新美区ID注册方法 V2board前后端分离 Markdown语法教程 Github加速 Docker镜像加速和离线安装 Liunx配置wrap 代理工具和SSH工具推荐 常用代码记录
caddy给域名用上ECH加密
2025-04-24 · via 繁星点点

caddy2.10.0正式版本 已经加入了ECH的支持

要使用caddy自动配置ech则需要编译cloudflare dns插件,用于caddy自动添加DNS记录

编译caddy并加入cloudflare DNS插件的支持

1:一键安装go环境

bash <(curl -sSL https://cdn.jsdelivr.net/gh/sky22333/shell@main/go.sh)

2:下载xcaddy

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

3:编译带cloudflare dns插件的caddy

xcaddy build --with github.com/caddy-dns/cloudflare

此时你的当前目录会生成一个已经包含了cloudflare dns插件的caddy二进制文件

debug模式测试运行

创建/etc/caddy/Caddyfile文件,并写入以下文件

{
    debug
    dns cloudflare xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    ech ech.example.com

    log {
        output stdout
        format console
        level DEBUG
    }
}

test.example.com {
    root * /tmp
    file_server browse
    encode zstd gzip
}

配置说明

dns cloudflare这个配置填CF的区域 DNS API 令牌

ech ech.example.com替换你的任意二级域名,并且解析到你的IP,用于发布ECH公钥,或者第三方提供的ECH配置服务域名也行。

test.example.com替换你的域名,并且解析到你的IP,不要开小黄云

root * /tmp这个配置代表以网页浏览文件的形式,浏览你服务器的/tmp目录,这里只是测试为了方便起服务

启动caddy

sudo ./caddy run --config /etc/caddy/Caddyfile --adapter caddyfile

不出意外的话就启动成功了,然后可以访问你的域名看下是否能成功访问

并且/root/.local/share/caddy目录会生成一个锁文件,如果需要重新部署则需要删除这个目录

CF里也会自动添加一个类型为HTTPS的解析记录

检查ech是否配置成功

dig test.example.com TYPE65

执行这个命令后,在输出的信息里可以看到有如下类似的信息就代表启用成功

ech=AEr+DQBGlwAgACBVSsnixVAfd/Ca9HP9JTf2O+B1kynOkZIwAMASDASDQABAAIASDASDADHw9lY2guZXhhbXBsZS5jb20AAA==

生产环境

移动二进制文件

mv ~/caddy /usr/bin/caddy

创建系统服务配置

touch /etc/systemd/system/caddy.service

写入配置

[Unit]
Description=Caddy Web Server
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Wants=network-online.target

[Service]
User=root
Group=root
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

管理命令

# 重新加载 systemd 配置
sudo systemctl daemon-reexec
sudo systemctl daemon-reload

# 启动 Caddy
sudo systemctl start caddy

# 设置开机启动
sudo systemctl enable caddy

# 查看运行状态
sudo systemctl status caddy

生产环境反代配置示例

{
	dns cloudflare xxxxxxxxxxxxxxxxxxxxx
	ech ech.example.com
}

test.example.com {
	reverse_proxy localhost:8080
}

重新部署记得删除:/root/.local/share/caddy锁文件,和CF里的HTTPS解析记录