SWAG(Secure Web Application Gateway,前身为letsencrypt,与Let's Encrypt™无关联)是一个安全Web应用网关,它设置了Nginx Web服务器和反向代理,支持PHP,并内置Certbot客户端,可自动完成免费SSL服务器证书的生成和更新过程(支持Let's Encrypt和ZeroSSL)。它还包含用于入侵防御的fail2ban。
URL为yoursubdomain.duckdns.org,SUBDOMAINS可以是www,ftp,cloud(用于HTTP验证)或wildcard(用于DNS验证)。您可以使用我们的https://hub.docker.com/r/linuxserver/duckdns/%E6%9D%A5%E6%9B%B4%E6%96%B0duckdns.org%E4%B8%8A%E7%9A%84IP%E3%80%82http验证,路由器互联网侧的端口80应转发到此容器的端口80dns验证,请确保将您的凭据输入到/config/dns-conf下相应的ini文件(或某些插件的json文件)中
yoursubdomain.duckdns.org,将SUBDOMAINS变量留空)*.yoursubdomain.duckdns.org,将SUBDOMAINS变量设置为wildcard)--cap-add=NET_ADMIN是fail2ban修改iptables所必需的https://example.com访问默认主页(默认情况下禁用通过端口80的http访问,您可以通过编辑/config/nginx/site-confs/default.conf中的默认站点配置来启用它)。/config/log/letsencrypt下的日志,了解续订失败的原因。建议在docker参数中输入您的电子邮件,以便在这种情况下收到Let's Encrypt的过期通知。SWAG默认包含许多Certbot插件,但并非所有插件都能包含。 如果您需要未包含的插件,最快的获取方法是使用我们的https://github.com/linuxserver/docker-mods/tree/universal-package-install%E3%80%82
在容器上设置以下环境变量:
yamldocker run -d \ --name=swag \ --cap-add=NET_ADMIN \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e URL=example.com \ -e VALIDATION=http \ -e SUBDOMAINS=www, `#可选` \ -e CERTPROVIDER= `#可选` \ -e DNSPLUGIN=cloudflare `#可选` \ -e PROPAGATION= `#可选` \ -e EMAIL= `#可选` \ -e ONLY_SUBDOMAINS=false `#可选` \ -e EXTRA_DOMAINS= `#可选` \ -e STAGING=false `#可选` \ -e DISABLE_F2B= `#可选` \ -e SWAG_AUTORELOAD= `#可选` \ -e SWAG_AUTORELOAD_WATCHLIST= `#可选` \ -p 443:443 \ -p 80:80 `#可选` \ -p 443:443/udp `#可选` \ -v /path/to/swag/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/swag:latest
在/config/dns-conf/<plugin>.ini中设置所需的凭据(通常可在插件文档中找到)。
建议先使用STAGING=true获取证书,以确保插件正常工作。
dhparams.pem提供。docker exec -it swag htpasswd -c /config/nginx/.htpasswd <username>.htpasswd添加多个用户:密码。对于第一个用户,使用上述命令,对于其他用户,使用不带-c标志的上述命令,因为-c会强制删除现有.htpasswd并创建新文件/config/nginx/site-confs/default.conf。您可以随意修改此文件,也可以向此目录添加其他conf文件。但是,如果删除default文件,容器启动时将创建一个新的默认文件。/config/nginx/proxy_confs下的README.md文件。预设的conf文件位于并从https://github.com/linuxserver/reverse-proxy-confs%E5%AF%BC%E5%85%A5%E3%80%82add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";
这将"请求"Google等不要索引和列出您的站点。使用此选项时要小心,因为如果您在希望出现在搜索引擎上的站点上保留此行,最终会被除名-v /path-to-swag-config:/swag-ssl),在其他容器中,使用证书位置/swag-ssl/keys/letsencrypt//config下的SWAG文件夹etc(即-v /path-to-swag-config/etc:/swag-ssl),在其他容器中,使用证书位置/swag-ssl/letsencrypt/live/<your.domain.url>/(这更安全,因为第一种方法与其他容器共享整个SWAG配置文件夹,包括www文件,而第二种方法只共享ssl证书)cert.pem、chain.pem、fullchain.pem和privkey.pem,由Certbot生成,供nginx和各种其他应用使用privkey.pfx,一种Microsoft支持的格式,通常由dotnet应用(如Emby Server)使用(无密码)priv-fullchain-bundle.pem,捆绑私钥和fullchain的pem证书,供ZNC等应用使用/config/fail2ban/jail.local.conf文件,而是创建同名的.local文件并编辑这些文件,因为.conf文件在操作和过滤器更新时会被覆盖。.local文件将附加.conf文件中的内容(即nginx-http-auth.conf --> nginx-http-auth.local)docker exec -it swag fail2ban-client status检查哪些jail处于活动状态docker exec -it swag fail2ban-client status <jail name>检查特定jail的状态docker exec -it swag fail2ban-client set <jail name> unbanip <IP>解除IP禁令此镜像支持QUIC(也称为HTTP/3),但必须在每个代理conf和默认conf中显式启用,因为如果启用了监听器但不暴露443/UDP,可能会中断某些浏览器的连接。
要启用QUIC,请将443/UDP暴露给您的客户端,然后取消注释所有活动代理conf以及默认conf中的QUIC监听器,并重启容器。
您还应该取消注释ssl.conf中的Alt-Svc头,以便浏览器知道您提供QUIC连接。
建议增加主机上的UDP发送/接收缓冲区,方法是设置net.core.rmem_max和net.core.wmem_max sysctl。建议值为4-16Mb(4194304-***字节)。要在重启之间保持持久性,请使用/etc/sysctl.d/。
linuxserver/letsencrypt镜像迁移请按照此博客文章上的说明进行操作。
bashdocker run -d \ --name=swag \ --cap-add=NET_ADMIN \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e URL=example.com \ -e VALIDATION=http \ -e SUBDOMAINS=www, `#可选` \ -e CERTPROVIDER= `#可选` \ -e DNSPLUGIN=cloudflare `#可选` \ -e PROPAGATION= `#可选` \ -e EMAIL= `#可选` \ -e ONLY_SUBDOMAINS=false `#可选` \ -e EXTRA_DOMAINS= `#可选` \ -e STAGING=false `#可选` \ -e DISABLE_F2B= `#可选` \ -e SWAG_AUTORELOAD= `#可选` \ -e SWAG_AUTORELOAD_WATCHLIST= `#可选` \ -p 443:443 \ -p 80:80 `#可选` \ -p 443:443/udp `#可选` \ -v /path/to/swag/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/swag:latest
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务