2025-04-14 · 9 分钟阅读

如何为您的截图设置 SFTP 上传(完整指南)

大多数截图工具会将您的图片上传到它们自己的云服务。您会得到一个链接,但您无法控制服务器。您无法选择域名。您无法设置访问控制。您无法保证该链接两年后仍然有效。而且,您将上传的每张图片都委托给第三方——包括可能包含敏感数据的截图。

SFTP 上传颠覆了这种模式。您的截图会上传到您自己的服务器,在您自己的域名下,由您自己控制。您决定谁可以访问它们。您决定它们保留多长时间。您控制从捕获到链接的整个链条。

本指南将详细介绍如何使用 MaxisnapMaxisnap

SFTP 设置截图上传,从服务器准备到配置,再到您的首次自动上传。如果您有网络服务器或 VPS,您可以在 15 分钟内完成设置并运行。

SFTP (SSH File Transfer Protocol) 通过加密的 SSH 连接传输文件。与其他上传方法相比,它具有以下几个优点:

  • 传输中加密 — 所有数据都通过 SSH 加密。与普通的 FTP 不同,您的截图在传输过程中不会被截获。
  • 服务器上无需额外软件 — 如果您的服务器运行 SSH(几乎所有 Linux 服务器都运行),SFTP 即可开箱即用。无需 FTP 守护程序,无需 Web 服务器 API 端点,无需额外配置。
  • 基于密钥的身份验证 — 您可以使用 SSH 密钥对而不是密码,这既更安全又更方便。
  • 标准协议 — SFTP 受到所有主流托管服务商、VPS 和云平台的支持。无厂商锁定。
  • 完全控制 — 您的服务器、您的域名、您的规则。截图是您文件系统上的常规文件。

Maxisnap 还支持 FTP、S3 兼容存储和 HTTP POST 上传。但对于大多数拥有自己服务器的用户来说,SFTP 是最简单、最安全的选择。 查看所有上传选项.

您需要什么

  • 具有 SSH 访问权限的服务器 — 任何 Linux VPS 都可以。DigitalOcean、Linode、Hetzner、AWS EC2 或您自己的硬件。您需要 SSH 访问权限和 Web 服务器(Nginx 或 Apache)来提供上传的图片。
  • 域名 — 可选但推荐。上传到 screenshots.yourdomain.com 的截图看起来比 IP 地址更专业。
  • Maxisnap Pro — SFTP 上传需要 Maxisnap Pro 许可证。免费版本包含完整的截图和标注功能。

步骤 1:准备您的服务器

如果您已经拥有一个具有 SSH 访问权限的 Web 服务器,请跳到步骤 2。否则,以下是最小设置:

在您的服务器上,为截图创建一个目录,并配置您的 Web 服务器以从该目录提供文件。

# Create the screenshot directory
sudo mkdir -p /var/www/screenshots
sudo chown $USER:$USER /var/www/screenshots
sudo chmod 755 /var/www/screenshots

如果您正在使用 Nginx,请添加一个服务器块(或向您现有站点添加一个位置):

server {
    listen 80;
    server_name screenshots.yourdomain.com;

    root /var/www/screenshots;

    location / {
        try_files $uri =404;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

如果您正在使用 Apache,等效操作更简单 — 只需将 VirtualHost 指向该目录即可:

<VirtualHost *:80>
    ServerName screenshots.yourdomain.com
    DocumentRoot /var/www/screenshots
</VirtualHost>

使用 Let's Encrypt 添加 SSL(强烈推荐):

sudo certbot --nginx -d screenshots.yourdomain.com
# or for Apache:
sudo certbot --apache -d screenshots.yourdomain.com

步骤 2:设置 SSH 密钥认证(推荐)

您可以使用密码进行认证,但 SSH 密钥更安全,并且无需输入密码。如果您已经使用 SSH 密钥,请跳过此步骤。

在您的 Windows 机器上,打开 PowerShell:

# Generate an SSH key pair (if you don't have one)
ssh-keygen -t ed25519 -C "maxisnap-upload"

# Copy the public key to your server
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@your-server "cat >> ~/.ssh/authorized_keys"

测试连接:

ssh user@your-server "echo 'Connection successful'"

如果连接时没有要求密码,则密钥认证正在工作。

步骤 3:配置 Maxisnap

打开 Maxisnap 并导航到 设置 > 上传。选择 SFTP 作为上传协议并填写以下字段:

  • 主机: 您的服务器主机名或 IP 地址(例如, screenshots.yourdomain.com)
  • 端口: 22(默认 SSH 端口,如果您的服务器使用非标准端口,请更改)
  • 用户名: 您的 SSH 用户名
  • 认证: 密钥文件(选择您的私钥,通常是 C:\Users\YourName\.ssh\id_ed25519)或密码
  • 远程路径: /var/www/screenshots/ (您在步骤 1 中创建的目录)
  • URL 前缀: https://screenshots.yourdomain.com/ (文件可访问的公共 URL)

点击 测试连接 进行验证。Maxisnap 将尝试连接并写入一个测试文件。如果成功,您就可以上传了。

步骤 4:您的首次自动上传

按下 Ctrl+Alt+7 (Maxisnap 的自动上传热键)。选择屏幕的一个区域。Maxisnap 会捕获该区域,通过 SFTP 上传,并将可分享链接复制到您的剪贴板。

将该链接粘贴到浏览器中。您的截图应该会从您自己的域名加载。URL 将类似于:

https://screenshots.yourdomain.com/2025-04-14_143022.png

就是这样。从捕获到可分享链接,不到三秒钟,托管在您自己的服务器上。

文件命名和组织

Maxisnap 默认根据捕获时间戳生成文件名(例如, 2025-04-14_143022.png)。您可以在“设置”>“上传”>“文件名模式”中自定义命名模式。选项包括:

  • {datetime} — 完整时间戳(默认)
  • {date}/{datetime} — 组织到基于日期的子目录中
  • {random} — 用于不可链接 URL 的随机 8 字符字符串
  • {random}-{datetime} — 带有时间戳的随机前缀,用于唯一性和可查找性

对于注重安全性的设置,请使用 {random} 命名。这使得 URL 无法猜测——没有人可以通过递增时间戳来枚举您的截图。

高级:保护您的截图服务器

对于专业用途,请考虑以下额外的安全措施:

访问控制

默认情况下,您的截图可以通过 URL 公开访问。要限制访问,您有以下几种选择:

  • 随机文件名 — 没有确切链接,URL 无法猜测。简单但并非真正的安全措施。
  • Nginx 基本认证 — 为整个截图目录添加密码保护。适用于内部团队共享。
  • IP 白名单 — 将访问权限限制到您的办公室或 VPN IP 范围。
  • 签名 URL — 如果您使用 S3 兼容存储而不是 SFTP,您可以生成有时效的签名 URL。

自动清理

截图会随着时间积累。添加一个 cron 任务来删除旧文件:

# Delete screenshots older than 90 days
0 3 * * * find /var/www/screenshots -type f -mtime +90 -delete

带宽和存储

平均截图大小为 200-500 KB(PNG 格式)。每天 50 张截图,大约每天 10-25 MB,或每月 300-750 MB。大多数 VPS 套餐包含的存储和带宽远超此需求。截图托管并非资源密集型。

故障排除

“连接被拒绝”或超时: 验证您的服务器 SSH 端口是否开放(使用 sudo ufw status)。确保 SSH 服务正在运行(sudo systemctl status sshd).

“权限被拒绝”: 您的 SSH 用户需要对远程路径有写入权限。使用 ls -la /var/www/screenshots/检查所有权。该目录应由您的 SSH 用户或您的用户所属的组拥有。

上传成功但链接无效: 验证您的 URL 前缀是否与实际的公共 URL 匹配。检查您的 Web 服务器是否正在提供截图目录。尝试通过浏览器使用完整路径直接访问文件。

上传缓慢: SFTP 是加密的,与纯 FTP 相比会增加轻微开销。对于典型截图(200-500 KB),在任何合理的连接下,上传应在一秒内完成。如果上传持续缓慢,请检查您到服务器的网络连接。

SFTP 的替代方案

对于大多数拥有自己服务器的用户来说,SFTP 是最佳选择,但 Maxisnap 也支持其他协议:

  • S3 兼容存储 — AWS S3、DigitalOcean Spaces、Cloudflare R2、MinIO。最适合希望获得托管存储而无需维护服务器的团队。
  • HTTP POST — 上传到任何接受文件上传的 API 端点。最适合与自定义后端集成。
  • FTP — 传统协议,未加密。仅在 SFTP 不可用时使用。不建议用于敏感截图。

为什么自托管截图很重要

使用第三方截图服务意味着您将数据、正常运行时间和链接托付给他们。服务可能会关闭、 更改定价或被收购。链接会失效。数据政策会改变。

自托管截图消除了这些依赖。您的图片存储在您的服务器上,可通过您的域名访问,只要您愿意,它们就会一直在那里。对于 隐私敏感的截图、专业文档以及需要可靠工作的链接——自托管是正确的选择。这是开发者 选择 Maxisnap 而非 Monosnap.

下载 Maxisnap 并立即设置 SFTP 上传的关键原因之一。十五分钟后,您将拥有一个更快、更私密且完全由您控制的截图工作流程。

准备好尝试一款更好的截图工具了吗?

免费下载 Maxisnap,体验不同。

免费下载 Maxisnap