linuxserver/swagSWAG(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验证)。您可以使用我们的duckdns镜像来更新duckdns.org上的IP。http验证,路由器互联网侧的端口80应转发到此容器的端口80dns验证,请确保将您的凭据输入到/config/dns-conf下相应的ini文件(或某些插件的json文件)中
yoursubdomain.duckdns.org,将SUBDOMAINS变量留空)*.yoursubdomain.duckdns.org,将SUBDOMAINS变量设置为wildcard)--cap-add=NET_ADMIN是fail2ban修改iptables所必需的[***]访问默认主页(默认情况下禁用通过端口80的http访问,您可以通过编辑/config/nginx/site-confs/default.conf中的默认站点配置来启用它)。/config/log/letsencrypt下的日志,了解续订失败的原因。建议在docker参数中输入您的电子邮件,以便在这种情况下收到Let's Encrypt的过期通知。SWAG默认包含许多Certbot插件,但并非所有插件都能包含。 如果您需要未包含的插件,最快的获取方法是使用我们的Universal Package Install Docker Mod。
在容器上设置以下环境变量:
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文件位于并从此仓库导入。add_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-full***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
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务