SWAG(Secure Web Application Gateway,前身为letsencrypt,与Let's Encrypt™无关联)是一个集成Nginx Web服务器、反向代理、PHP支持、Certbot客户端及fail2ban入侵防护的安全Web应用网关。Certbot客户端可自动完成免费SSL服务器证书(Let's Encrypt和ZeroSSL)的生成与续期流程,为Web应用提供安全访问能力。
yoursubdomain.duckdns.org,子域名可设为www,ftp,cloud(HTTP验证)或wildcard(DNS验证)/config/dns-conf目录下对应插件的ini(或部分插件的json)文件中填入凭据
wildcard)--cap-add=NET_ADMIN参数,确保fail2ban能修改iptables规则[***]访问默认主页(HTTP访问默认禁用,可编辑/config/nginx/site-confs/default.conf启用)SWAG内置多种Certbot插件,若需额外插件,可通过以下步骤安装:
使用Universal Package Install Docker Mod,设置容器环境变量:
yamlDOCKER_MODS=linuxserver/mods:universal-package-install INSTALL_PIP_PACKAGES=certbot-dns-<插件名>
在/config/dns-conf/<插件名>.ini中填入插件所需凭据(参考插件文档)
建议先设置STAGING=true测试插件功能,确认正常后再正式申请证书
容器启动时会检测URL和子域名变化,自动吊销旧证书并生成新证书
docker exec -it swag htpasswd -c /config/nginx/.htpasswd <用户名>(首次创建用户,-c为创建文件)docker exec -it swag htpasswd /config/nginx/.htpasswd <用户名>(不含-c,避免覆盖现有文件)可通过LDAP进行安全和访问控制,需配合独立镜像linuxserver/ldap-auth与LDAP服务器通信。容器提供可配置的示例ldap.conf文件
/config/nginx/site-confs/default.conf,可修改此文件或添加其他.conf文件至该目录。若删除default.conf,容器启动时会自动生成新文件/config/nginx/proxy_confs目录,参考该目录下README.md启用方法。预设配置来源于reverse-proxy-confs仓库在站点配置的server块中、ssl.conf引用行上方添加:
nginxadd_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";
可请求搜索引擎不索引站点,注意:长期启用会导致站点从搜索引擎中移除
需暴露80端口并配置相应重定向规则
容器自动生成其他应用(如Emby、Znc)所需的证书文件,包括:
cert.pem、chain.pem、fullchain.pem、privkey.pemprivkey.pfx(Windows/.NET应用支持,无密码)priv-full***bundle.pem(私钥与证书链捆绑,适用于Znc等应用)/config目录挂载至其他容器(如-v /path-to-swag-config:/swag-ssl),证书路径为/swag-ssl/keys/letsencrypt//config/etc目录(如-v /path-to-swag-config/etc:/swag-ssl),证书路径为/swag-ssl/letsencrypt/live/<your.domain.url>/(仅共享证书,不暴露完整配置)容器默认启用5个fail2ban jail:
docker exec -it swag fail2ban-client statusdocker exec -it swag fail2ban-client status <jail名称>docker exec -it swag fail2ban-client set <jail名称> unbanip <IP>/config/fail2ban/jail.local(而非.conf文件,.conf会在更新时被覆盖,.local文件优先级更高).conf同名的.local文件(如nginx-http-auth.conf对应nginx-http-auth.local),.local内容会追加至.confapp.subdomain.conf.sample重命名为app.subdomain.conf)不会自动更新,需手动对比新示例文件调整从旧版linuxserver/letsencrypt镜像迁移,请参考***博客指南
bashdocker run -d \ --name=swag \ --cap-add=NET_ADMIN \ -e PUID=1000 \ # 用户ID,默认1000 -e PGID=1000 \ # 组ID,默认1000 -e TZ=Etc/UTC \ # 时区,如Asia/Shanghai -e URL=yourdomain.url \ # 主域名 -e VALIDATION=http \ # 验证方式:http或dns -e SUBDOMAINS=www, `# 可选,子域名列表,逗号分隔` \ -e CERTPROVIDER= `# 可选,证书提供商,默认Let's Encrypt` \ -e DNSPLUGIN=cloudflare `# 可选,DNS验证插件,如cloudflare` \ -e PROPAGATION= `# 可选,DNS传播等待时间(秒)` \ -e EMAIL= `# 可选,接收证书通知的***` \ -e ONLY_SUBDOMAINS=false `# 可选,是否仅为子域名生成证书` \ -e EXTRA_DOMAINS= `# 可选,额外域名,逗号分隔` \ -e STAGING=false `# 可选,是否使用测试环境(避免证书申请限制)` \ -p 443:443 \ # HTTPS端口 -p 80:80 `# 可选,HTTP端口(用于验证或重定向)` \ -v /path/to/appdata/config:/config \ # 配置文件挂载路径 --restart unless-stopped \ # 重启策略 lscr.io/linuxserver/swag:latest
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429