面向互联网的 Web 应用会持续遭到 SQL 注入、凭据滥用和已知漏洞模式的探测。SafeLine 是一款 GPL-3.0 授权的自托管 WAF 以 Docker Compose 栈的形式运行,先过滤 HTTP/S 流量,再将放行的请求转发到源站。它的 免费个人版 最多支持 10 个应用。
本教程涵盖安装过程以及三个需要特别注意的方面:反向代理架构的选择、当 SafeLine 位于 Nginx Proxy Manager 等既有代理之后时的 Docker 网络配置,以及安装后可运行的一条验证命令,用于确认 WAF 确实在拦截攻击。
简短版本
- 使用 Docker Compose 在 Linux VPS 上安装 SafeLine。可以使用一行命令安装脚本,或选择手动 Docker Compose 方式,在启动整个栈之前先检查 Compose 定义和环境配置。
- 在安装之前先确定反向代理架构:SafeLine 作为唯一代理、SafeLine 位于既有 Nginx Proxy Manager 之后,或 SafeLine 与 Caddy 共用同一台服务器。每种形态都需要不同的端口分配和 X-Forwarded-For 设置。
- 安装完成后,通过向受保护的 URL 发送一条 curl SQL 注入探测请求来验证 WAF。在均衡(Balanced)或严格(Strict)模式下,返回 403 响应并在攻击事件(Attack Events)中出现对应记录即可确认拦截生效。在监控(Monitor)模式下,即便响应可能仍然成功,对应事件也能确认检测已生效。
- 免费个人版最多支持 10 个应用以及核心检测引擎。地域封锁、攻击日志导出和外部通知需要 Lite 版;更强的攻击检测和负载均衡需要 Pro 版。
开始之前:前提条件与本教程涵盖的内容
本教程假设你有一台可以通过 SSH 以 root 或 sudo 权限登录的 Linux VPS,并且已安装 Docker。完成后,你将拥有一个正常运行、至少保护一个站点的 SafeLine 实例,以及一条随时可重复运行的验证命令。
你需要:
- 一台 Linux VPS。下面的命令假设系统为带 systemd 的 Debian 或 Ubuntu 类系统;在其他发行版上请核对软件包名和服务名。
- 根据官方部署要求,至少需要 1 vCPU、1 GB RAM 和 5 GB 磁盘,参见 官方部署要求。为在生产环境中留出实际余量,本指南推荐 2 vCPU、4 GB RAM 和 20 GB 磁盘。
- Docker 20.10.14 或更高版本,以及 Docker Compose 2.0 或更高版本。
- 一颗支持 SSSE3 的 x86_64 CPU;可用以下命令验证:
lscpu | grep ssse3而不要想当然地认为该指令集已存在。 - 如果你打算通过公网 HTTPS 暴露受保护的应用,需要一个 DNS 指向 VPS 公网 IP 的域名或子域名。
- 与所选拓扑相匹配的端口。形态 A 和形态 C 通常将 80 和 443 端口交给 SafeLine,而形态 B 将这些端口留给 Nginx Proxy Manager,并为 SafeLine 分配另一个监听端口,例如 10080。
- root 或 sudo 权限。
在 VPS 服务商的防火墙或安全组中,只开放所选拓扑所需的公网端口。将 SSH 和 TCP 9443 限制为可信的管理来源。在形态 B 中,对公网 IPv4 和 IPv6 关闭 TCP 10080,并在每种拓扑中都将 8080 等后端端口保持为私有。直接访问 10080 会绕过 NPM,并使 X-Forwarded-For 的信任边界失效。
注意: 对于手动 ARM64 部署,请设置
ARCH_SUFFIX=-arm。SafeLine 的 官方部署文档 指出 ARM 需要 Pro 授权,且个人版不支持 ARM。使用个人版请选择 x86_64 VPS。
开始之前先验证 Docker:
docker --version
docker compose version
两条命令都应返回已安装的版本号。只有当 Docker 为 20.10.14 或更高、Docker Compose 为 2.0.0 或更高时才继续;否则请在安装 SafeLine 之前先升级。
先确定你的反向代理架构
全新的 VPS 可以让 SafeLine 直接独占 80 和 443 端口。而已经运行 Nginx Proxy Manager、Caddy 或应用自带 Nginx 的 VPS 则不行,架构决策决定了首次启动时是顺利安装还是端口冲突。一开始就把这一点定对,剩下的部署就只是按部就班。
三种形态:
- 形态 A,SafeLine 作为唯一的反向代理。 SafeLine 独占 80 和 443 端口,并为受保护的应用管理 TLS。 当前的 CE 版本 包含免费证书(Free Cert)工作流,同时仍保留手动上传证书的方式;请在所安装的版本中核对具体的证书选项。后端运行在非公开端口上,由 SafeLine 路由至该端口。
- 形态 B,SafeLine 位于 Nginx Proxy Manager(NPM)之后。 NPM 保留 80 和 443 端口并处理 SSL。SafeLine 监听 10080 端口(仅 HTTP,因为 NPM 已经终结了 TLS)。NPM 将流量转发给 SafeLine,SafeLine 再转发给后端。当 NPM 已经部署时,这是一种常见配置。
- 形态 C,SafeLine 与 Caddy 并存。 Caddy 的自动 HTTPS 会与 SafeLine 争抢 443 端口。一种可行的安排是把 80 和 443 端口交给 SafeLine,并将 Caddy 移到一个非公开的内部 HTTP 端口(例如 8080),用于 SafeLine 到 Caddy 再到应用的跳转。
| 形态 | 占用 443 端口 | SSL 管理 | 复杂性 | 最适合 |
|---|---|---|---|---|
| A,仅 SafeLine | SafeLine | 在 SafeLine 内部 | 低 | 全新 VPS 或愿意迁移 |
| B,位于 NPM 之后 | NPM | 在 NPM 中(Let's Encrypt) | 中 | 已有 NPM 部署 |
| C,与 Caddy 并存 | SafeLine | 在 SafeLine 内部 | 中高 | 想要保留的既有 Caddy |
核心要点: 对于全新 VPS,形态 A 最简单;当 NPM 已在运行时,形态 B 是正确选择;形态 C 需要有意为 Caddy 重新分配端口。
在你的 VPS 上安装 SafeLine
安装本身是最简单的部分。SafeLine 提供两种安装方式:一种是从 waf.chaitin.com 拉取远程脚本的自动化安装程序,另一种是手动 Docker Compose 方式,让你在运行之前先检查所有内容。选择符合你安全策略的那一种。
步骤 1:确认 Docker 已就绪
重新检查 Docker 版本以及 Docker 守护进程是否在运行:
docker --version
docker compose version
sudo systemctl status docker
预期输出中包含 active (running) 表示 Docker 守护进程正常。如果没有运行,用以下命令启动: sudo systemctl start docker 并用以下命令设置开机自启: sudo systemctl enable docker.
步骤 2:运行 SafeLine 安装程序
有两种子方式。选择其中之一。
步骤 2a,自动安装。 以 root 权限运行安装程序:
sudo bash -c "$(curl -fsSLk https://waf.chaitin.com/release/latest/manager.sh)" -- --en
脚本会询问将 SafeLine 数据目录放在何处,拉取 Docker 镜像并启动整个栈。安装完成后,运行 sudo docker exec safeline-mgt resetadmin 来获取或重置管理员凭据,具体见 官方部署指南。请妥善保存生成的凭据。
注意: 该命令以 root 身份从 waf.chaitin.com 下载并执行一个远程 shell 脚本。官方的一行命令包含
curl -k,它会禁用 TLS 证书校验。请在执行前审查下载的脚本,如果该风险不可接受,请改用步骤 2b。SafeLine 也可作为 Cloudzy 一键部署使用,但该镜像使用/opt/safeline,/opt/safeline/.env,以及/opt/safeline/docker-compose.yml。请勿原样使用本指南的/data/safeline路径在 Cloudzy 镜像上直接套用。
步骤 2b,手动 Docker Compose 安装。 下载并检查官方 Compose 文件,然后启动整个栈:
sudo mkdir -p /data/safeline
cd /data/safeline
sudo wget -O /data/safeline/compose.yaml "https://waf.chaitin.com/release/latest/compose.yaml"
POSTGRES_PASSWORD="$(openssl rand -hex 32)"
sudo tee .env >/dev/null <<EOF
SAFELINE_DIR=/data/safeline
IMAGE_TAG=latest
MGT_PORT=9443
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
SUBNET_PREFIX=172.22.222
IMAGE_PREFIX=chaitin
ARCH_SUFFIX=
RELEASE=
REGION=-g
MGT_PROXY=0
EOF
unset POSTGRES_PASSWORD
# Also adjust SUBNET_PREFIX if your VPS already uses 172.22.222.0/24.
sudo chmod 600 /data/safeline/.env
sudo docker compose up -d
之后 docker compose up -d 完成后,列出正在运行的容器以确认:
sudo docker compose ps
你应能看到 safeline-mgt、safeline-detector、safeline-tengine、safeline-pg、safeline-fvm、safeline-luigi 和 safeline-chaos 等容器。如果有任何容器显示为 Exited,请参见步骤 3 了解两个最常见的原因。
步骤 3:解决常见安装错误
有两种错误出现得足够频繁,值得单独用一个步骤来说明。
子网重叠。 如果安装失败并报 Pool overlaps with other one on this address space,说明默认的 SafeLine 子网与既有的 Docker 网络冲突。正如一篇 SafeLine 安装故障排查指南所述,可通过编辑以下文件来解决: /data/safeline/.env:
sudo nano /data/safeline/.env
# Find the line:
# SUBNET_PREFIX=172.22.222
# Change to an unused range, for example:
# SUBNET_PREFIX=172.30.30
sudo docker compose -f /data/safeline/compose.yaml down
sudo docker compose -f /data/safeline/compose.yaml up -d
IPv6 解析器错误。 如果 safeline-tengine 崩溃并报 nginx: [emerg] invalid IPv6 address in resolver,请先检查解析器文件并确定由谁管理它:
readlink -f /etc/resolv.conf
cat /etc/resolv.conf
不要直接编辑 /etc/resolv.conf 如果它是由 systemd-resolved、NetworkManager 或 VPS 服务商生成的。请在管理它的服务配置中修正格式错误的 nameserver 值,重新生成解析器文件,然后重启 Tengine:
sudo docker restart safeline-tengine
步骤 4:访问管理面板
SafeLine 的管理面板通过 HTTPS 监听 TCP 9443。不要让这个管理端口对整个互联网开放。请将其限制为可信的来源地址或 VPN,或者封锁公网访问并改用 SSH 隧道:
ssh -L 9443:127.0.0.1:9443 USER@SERVER_IP
打开 https://localhost:9443 通过隧道访问。首次访问时出现自签名证书警告属正常现象;继续之前请确认 SSH 连接确实连到了目标服务器。
如果你丢失了初始凭据,可从宿主机重置管理员密码:
sudo docker exec safeline-mgt resetadmin
该命令会打印出可用于重新登录的管理员凭据。
为你的架构配置 SafeLine
SafeLine 现在已经在运行,但还没有保护任何东西。在管理面板的“应用”(Applications)页面,你需要告诉 SafeLine 要保护哪些站点,以及将清洗后的流量转发到何处。配置方式会因你先前选择的架构而不同,因此每种形态都有各自的小节。只需按照与你配置相符的那一节操作即可。
形态 A:SafeLine 作为唯一的反向代理
在形态 A 中,SafeLine 直接监听 80 和 443 端口,并将清洗后的流量转发到运行在非公开端口上的后端应用。在管理面板中:
- 导航至 应用(Applications),然后添加应用(Add Application).
- 将监听端口设为 443 并启用 SSL。使用你所安装的 SafeLine 版本中提供的证书工作流。 当前的 CE 版本 包含免费证书(Free Cert)的申请和续期处理,同时仍保留手动上传证书的方式。
- 将上游(upstream)设为
http://127.0.0.1:8080。如果后端运行在 Docker 中,请只将其端口发布到回环地址,例如"127.0.0.1:8080:8080"写在该服务的 ports 部分中。避免使用写死的容器 IP,例如172.17.0.5因为容器被重建时该 IP 可能会改变。 - 保存该应用。SafeLine 会立即开始监听 443 端口,并将清洗后的流量转发到后端。
- 确认你域名的 DNS A 记录指向 VPS 公网 IP,且 80 和 443 端口可从外部访问。
如果 443 端口已被其他进程占用,SafeLine 的容器将无法绑定,管理面板会在该应用上显示错误。在添加应用之前,请先停止冲突的进程,或改用其他端口。
形态 B:SafeLine 位于 Nginx Proxy Manager 之后
形态 B 让 NPM 继续做它已经在做的事(占用 80 和 443、处理 Let's Encrypt),并把 SafeLine 作为其后专门的安全层插入进来。流量路径为:客户端,然后是 NPM(443 端口,TLS 终结),然后是 SafeLine(10080 端口,HTTP),最后是后端应用。
在 SafeLine 管理面板中:
- 应用(Applications),然后添加应用(Add Application)。 将监听端口设为 10080 并关闭 SSL(NPM 已经终结了 TLS)。
- 按照形态 A 中的说明,将上游设为应用的内部地址。
- 保存该应用。
在 Nginx Proxy Manager 中:
- Hosts,然后 Proxy Hosts,然后 Add Proxy Host。
- Details 标签页:设置域名、方案(scheme)
http,以及转发端口 10080。如果 NPM 直接运行在宿主机上,请使用127.0.0.1作为转发主机名。如果 NPM 在 Linux 上运行于 Docker 中,127.0.0.1会指向 NPM 容器本身,而非 VPS 宿主机。请添加 Docker 的 host-gateway 映射 到 NPM 的 Compose 服务中,然后使用host.docker.internal作为转发主机名:
extra_hosts:
- "host.docker.internal:host-gateway"
在 NPM 的 Compose 目录中,运行 sudo docker compose up -d 以便用新的主机映射重建该容器。
- SSL 标签页: 申请 Let's Encrypt 证书,强制 SSL,并启用 HTTP/2。
- 对于 X-Forwarded-For,请让 NPM 的 Advanced 标签页保持为空。在 当前的 NPM 模板中,Advanced 内容是在 server 作用域插入的,按照 NGINX 的继承规则,不会覆盖自动生成的 location 级别请求头。生成的 location 会发送:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
第二条指令会将 NPM 观察到的地址作为请求头中最右侧的值追加进去。
- 保存该 Proxy Host。
回到 SafeLine,只有在确认了实际生效的请求头链之后,再配置源 IP 提取。 SafeLine 9.3.1 引入了灵活的 XFF 提取功能,可选择方向和索引。
- 设置(Settings),然后 Advanced,然后 Real IP from Header。将请求头名称设为
X-Forwarded-For. - 使用从请求头末尾开始的自定义提取方式,选中 NPM 追加的最右侧地址。具体的索引标签因版本而异,因此请在 Logs,然后 Access 中验证结果。如果所安装的版本早于 9.3.1,请先升级再按此拓扑操作。
- 如果 Cloudflare 或其他 CDN 位于 NPM 之前,请先将 NPM 配置为只信任该服务商公布的代理 IP 段,这样 NPM 追加的地址才可信。在检查并测试实际的请求头链之前,不要选择固定位置。
- 保存并重新加载该应用。
从 VPS 之外的机器测试该配置:
curl -H "X-Forwarded-For: 1.2.3.4" "https://yourdomain.com/"
SafeLine 的访问日志应显示你真实的公网地址,而不是 1.2.3.4 或 NPM 的网桥地址。
通过将后端监听端口保持为私有,防止用户绕过 SafeLine。对于 Docker Compose 后端,只将端口发布到回环地址:
ports:
- "127.0.0.1:8080:8080"
对于直接运行在宿主机上的服务,将其配置为监听 127.0.0.1:8080 而不是 0.0.0.0:8080。从 VPS 之外的机器验证这两个内部端口:
curl --connect-timeout 5 "http://YOUR_VPS_PUBLIC_IP:10080"
curl --connect-timeout 5 "http://YOUR_VPS_PUBLIC_IP:8080"
这些 TCP 连接应当被拒绝或超时。出现 HTTP 错误或 "Empty reply from server" 仍然意味着该端口可从公网访问,必须加以保护。如果无法绑定回环地址,请针对实际的网络接口、Docker 网络和目标容器编写专门的防火墙规则,而不要套用通用的 DOCKER-USER 规则。
形态 C:SafeLine 与 Caddy 配合
在形态 C 中,SafeLine 占用 80 和 443 端口;Caddy 移到一个非公开的内部 HTTP 端口。流量路径为:客户端,然后是 SafeLine(443,TLS),然后是 Caddy(8080,内部 HTTP),最后是应用后端。
编辑 /etc/caddy/Caddyfile:
:8080 {
bind 127.0.0.1
reverse_proxy 127.0.0.1:3000
}
那位 :8080 站点块是关键所在:Caddy 现在监听一个内部 HTTP 端口,而不再与 SafeLine 争抢 443。其中的 bind 127.0.0.1 一行让该监听端口仅限于 VPS 本地。用以下命令重新加载 Caddy: sudo systemctl reload caddy 并用以下命令确认: sudo ss -ltnp | grep -E ':(443|8080)' Caddy 已绑定到 8080 而非 443。
在 SafeLine 中,添加一个监听 443 并启用 SSL 的应用,然后将上游设为 http://127.0.0.1:8080。X-Forwarded-For 设置可以保持默认的网络连接选项,因为 Caddy 位于 SafeLine 之后,而非之前。
选择防护模式并验证 WAF 正在拦截攻击
SafeLine 有三种防护模式,决定当引擎将某个请求判定为恶意时会发生什么。合适的初始模式取决于具体应用;而验证步骤在任何模式下都相同。
防护模式:监控(Monitor)、均衡(Balanced)、严格(Strict)
SafeLine 中的每个应用都有各自的防护模式设置,可在以下位置配置: 应用(Applications),然后你的应用,然后防护模式(Protection Mode):
- 监控(Monitor)。 SafeLine 会记录本应拦截的请求,但并不真正拦截。对于带有丰富输入表单的复杂生产应用(论坛、带所见即所得字段的管理后台、接受自由格式 JSON 负载的 API),这是最安全的起点。先以监控模式运行几天,查看攻击事件页面,确认对真实用户没有误报,再提升到均衡模式。
- 均衡(Balanced)。 默认模式。SafeLine 的 厂商在 GitHub 上公布的数据 显示均衡模式的检出率为 71.65%、准确率为 99.45%、误报率为 0.07%。严格模式据称检出率为 76.17%、准确率为 99.38%、误报率为 0.22%。这些是厂商自报的结果,而非独立基准测试,且 README 并未说明所用数据集为 WAF-Eval。请将其视为产品间的对比数据,而非有保证的生产环境性能。
- 严格(Strict)。 更激进的规则集,采用更严格的启发式判断,以及上面所示的检出率与误报率权衡。在均衡模式干净运行一两周、你对自己的流量有所了解之后,值得一试。
建议:对于没有实时流量可打扰的全新部署,选择均衡模式。对于已有的生产应用,先以监控模式运行几天,在攻击事件日志中查找误报,调整好例外规则后再提升到均衡模式。在均衡模式运行一两周、你了解了自己的流量之后,值得尝试严格模式。
用 curl SQLi 测试验证 WAF
在认定安装完成之前的最后一步,是确认 WAF 确实拦截了攻击。从 VPS 之外的任意机器,对你受保护的站点运行一个无害的 SQL 注入探测:
curl -i "https://yourdomain.com/?id=1%20and%201=2%20union%20select%201"
这是 SafeLine 公布的 SQL 注入测试向量。在均衡或严格模式下,应返回 403 状态和 SafeLine 的拦截响应。在监控模式下,请求应被记录但不被拦截。HTTP 版本和具体的响应正文可能有所不同,因此请通过攻击事件中对应的记录来确认结果。
然后通过步骤 4 中的受限访问方式打开管理面板,进入 Logs,然后 Attack Events。你应能看到一条新记录,其时间戳吻合、攻击类型为 SQL Injection、源 IP 与你运行 curl 的机器一致,并在请求详情中显示违规的查询字符串。点击进入该事件,可查看 SafeLine 捕获的完整请求和响应。
如果 curl 请求返回 200 OK,请结合攻击事件日志来解读结果:
- 如果有对应的 SQL Injection 事件,说明该应用很可能处于监控模式;只记录不拦截是预期行为。
- 如果没有对应事件,请确认 DNS 解析到了目标 VPS,核对 SafeLine 的监听和上游配置,并将请求时间与 SafeLine 的访问日志对照。
- 还要确认防护已启用,且没有任何 IP 白名单、自定义放行规则或路径例外覆盖了该测试请求。
核心要点: 如果 curl 探测返回 403 并显示 SafeLine 拦截页面,且攻击事件中出现攻击类型为 SQL Injection 的记录,则说明 WAF 正在正确拦截流量。
免费版涵盖哪些内容,哪些需要付费版
免费个人版足以保护大多数单 VPS 部署。当你需要运维类功能(通知、日志导出、地域封锁)或超出 10 个应用的上限时,付费版才开始变得重要。
以下明细来源于 CyberServal 定价页面:
- 个人版,免费。 最多 10 个应用。包含语义检测引擎(SQLi、XSS、命令注入、路径遍历、SSRF、XXE、CRLF)、限速、机器人 CAPTCHA 挑战、针对自动化爬虫的动态 HTML/JS 加密、Web ACL 规则以及证书管理。 当前的 CE 版本 还包含免费证书(Free Cert)的申请和续期处理。
- Lite 版,$10/月或 $100/年。 增加地域封锁、威胁情报 IP 库、Discord 和 Telegram 通知集成、攻击日志导出,并将应用上限提高到 20。
- Pro 版,$100/月或 $1,000/年。 增加更强的攻击检测、按服务和全局的配置、自定义拦截页面、上游负载均衡、主从节点同步以及不限数量的应用。请参见 当前的定价表 了解变动。
- Ultimate 版,价格面议。 为企业量身定制的条款,提供跨渠道的一对一支持和定制功能开发。
SafeLine 在其本地 Compose 栈内部处理和存储应用数据。不过, 当前的 CE 版本发行说明 提到了威胁情报共享(Threat Intelligence Sharing),因此运维人员在把该部署视为零出站之前,应先检查所安装版本的 UEP、隐私和共享控制项,并观察其出站连接。
接下来做什么
安装已完成,WAF 也已验证。几项后续任务有助于保持部署的健康状态。
- 对于任何带有丰富用户输入的生产应用(论坛、管理后台、自由格式 API),请将防护模式设为 显示器 运行三到七天,每天查看攻击事件页面,在调整好所有误报后再提升到均衡模式。
- 在 Lite 版中,设置 Discord 或 Telegram 通知集成,让攻击告警在管理面板之外也能触达你。
- 安排每月一次的维护窗口。升级前,请先备份 SafeLine 的数据和环境配置,阅读 当前的发行说明,并对你所安装的版本使用官方支持的升级流程。不要只依赖
docker compose pull随后docker compose up -d,因为 Compose 定义或所需的环境变量可能在不同版本之间发生变化。Cloudzy 一键部署的用户应从/opt/safeline开始,并遵循市场镜像的说明。 - 订阅 SafeLine 发行版页面 以获取安全补丁通知,并订阅 项目仓库 以跟踪问题。
如果你还没有用于此次部署的 VPS,SafeLine 可作为一键部署使用,位于 Cloudzy 的应用市场。配备 4 GB RAM 的套餐可提供本指南推荐的实用余量;请重新查看 当前的定价表 在发布时于 Cloudzy 上,因为套餐规格可能会更改。一键镜像使用 /opt/safeline 和 /opt/safeline/docker-compose.yml,因此架构和管理面板方面的说明同样适用,但本指南中的 /data/safeline 命令并不能完全照搬。
常见问题
SafeLine WAF 是取代 Nginx Proxy Manager,还是两者同时运行?
当 SafeLine 作为唯一的反向代理部署时,它可以取代 Nginx Proxy Manager。不过,它并不一定要取代 NPM。一种常见配置是让 NPM 在前面负责 SSL 和路由,并把 SafeLine 作为其后专门的安全层。两种方式都可行;选择取决于你是想用一个工具同时完成两项工作,还是用两个各自擅长的工具分别做好一项工作。
免费版是否足以保护单个 WordPress 站点或小型 SaaS?
就防护而言,足够。免费个人版包含语义检测引擎、限速、机器人 CAPTCHA 挑战和动态 HTML/JS 加密,这些都是单个站点的核心防御手段。付费版增加了地域封锁、攻击日志导出、外部通知、更高的应用上限、更强的检测和负载均衡等运维功能。是否需要付费版取决于所需的功能和应用数量,而不仅仅是流量大小。
SafeLine 能在 1 GB RAM 的 VPS 上运行吗?
SafeLine 的 官方最低要求 为 1 GB RAM。这对于测试或极轻量的工作负载可能已经足够,但生产环境的承载能力取决于流量、启用的功能和日志保留。对于小型生产部署,2 vCPU 和 4 GB RAM 是一个较为保守的起点;请监控内存使用,并根据实测负载扩容。
为什么 ARM64 需要付费授权?
SafeLine 的 官方部署文档 指出 ARM 部署需要 Pro 授权,且个人版不支持 ARM。如果你想使用个人版,请选择 x86_64 VPS;如果你必须使用 ARM,请为 Pro 授权做好预算。
长亭科技会从我的 SafeLine 实例接收哪些数据?
具体的出站数据会因版本和启用的功能而异。 当前的 CE 版本发行说明 提到了威胁情报共享,而所安装的版本可能还会提供 UEP 或其他共享控制项。请检查这些设置以及你所安装版本的发行说明,然后在网络层面验证出站流量。SafeLine 的本地容器负责处理应用数据,但仅凭这一点并不能证明拒绝 UEP 就能阻止每一次出站请求。