WEBKT

Raspberry Pi搭建SFTP服务器,手机同步文件全攻略:安全、便捷、可控

138 0 1 0

想拥有一个安全、私密的个人云存储? Raspberry Pi + SFTP 就能满足你!本文将手把手教你如何在树莓派上搭建SFTP服务器,并通过手机App实现文件同步,告别第三方云盘的各种限制。

为什么选择 Raspberry Pi + SFTP?

  • 安全至上: SFTP (SSH File Transfer Protocol) 基于SSH协议,所有数据传输都经过加密,有效防止数据泄露,相比传统的FTP协议安全性更高。
  • 完全掌控: 数据存储在自己的树莓派上,完全掌控数据安全和隐私,不用担心第三方云盘的审查和风险。
  • 经济实惠: Raspberry Pi 价格低廉,功耗低,适合长期运行,相比购买云存储服务,长期来看更划算。
  • 高度定制: 可以根据自己的需求进行配置和优化,例如设置用户权限、限制带宽等,打造个性化的文件同步方案。
  • 学习乐趣: 在搭建和配置过程中,可以学习到Linux系统管理、网络安全等知识,提升技术能力。

FTP vs SFTP:安全性是关键

FTP (File Transfer Protocol) 是一种古老的文件传输协议,数据传输过程中不加密,容易被窃听和篡改。SFTP 则基于 SSH (Secure Shell) 协议,所有数据都经过加密,安全性更高。因此,在安全性要求较高的场景下,强烈建议使用 SFTP。

简单来说,FTP就像在明处说话,而SFTP就像加密通话,安全性差异一目了然。

准备工作

  • Raspberry Pi: 建议使用 Raspberry Pi 3B+ 或更新型号,性能更好。
  • 安装Raspberry Pi OS: 推荐使用Raspberry Pi OS Lite版本,占用资源更少。
  • 网络环境: 确保 Raspberry Pi 可以连接到互联网,并且手机可以访问到 Raspberry Pi 的IP地址。
  • SSH客户端: 用于远程连接到 Raspberry Pi,例如 PuTTY (Windows) 或 Terminal (macOS/Linux)。
  • SFTP客户端App: 用于手机端连接SFTP服务器,例如 FileZilla (Android) 或 FE File Explorer (iOS)。

搭建SFTP服务器

1. 更新系统

首先,通过SSH客户端连接到 Raspberry Pi,并更新系统软件包:

sudo apt update
sudo apt upgrade

2. 安装OpenSSH服务器

Raspberry Pi OS 默认已经安装了 OpenSSH 服务器,如果没有安装,可以使用以下命令安装:

sudo apt install openssh-server

3. 配置SSH服务器

编辑SSH服务器配置文件 /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

找到以下几行,并进行相应的修改:

  • Port 22: 可以修改SSH端口,增加安全性,例如修改为 Port 2222注意: 修改端口后,需要重启SSH服务。
  • PermitRootLogin no: 禁止root用户通过SSH登录,增加安全性。
  • PasswordAuthentication no: 禁止密码登录,强制使用密钥登录,安全性更高。 注意: 设置密钥登录前,请确保已经配置好密钥。
  • AllowUsers your_username: 允许指定用户通过SSH登录,例如 AllowUsers pi your_username

保存并关闭文件,然后重启SSH服务:

sudo systemctl restart ssh

4. 创建SFTP用户

为了安全起见,建议创建一个专门用于SFTP的用户:

sudo adduser sftpuser

按照提示设置密码和其他信息。

5. 限制SFTP用户权限

为了防止SFTP用户访问其他目录,需要限制其权限。首先,创建一个用于存放SFTP文件的目录:

sudo mkdir /home/sftpuser/data
sudo chown sftpuser:sftpuser /home/sftpuser/data

然后,修改SSH服务器配置文件 /etc/ssh/sshd_config,添加以下内容:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
  • ChrootDirectory /home/sftpuser: 将SFTP用户的根目录限制为 /home/sftpuser,用户只能访问该目录及其子目录。
  • ForceCommand internal-sftp: 强制使用SFTP协议。
  • AllowTcpForwarding no: 禁止TCP转发,增加安全性。
  • X11Forwarding no: 禁止X11转发,增加安全性。

保存并关闭文件,然后重启SSH服务:

sudo systemctl restart ssh

6. 配置防火墙

如果启用了防火墙,需要允许SSH端口通过。例如,如果使用ufw防火墙,可以使用以下命令:

sudo ufw allow 2222/tcp  # 假设SSH端口修改为2222
sudo ufw enable

7. 手机App配置

打开手机上的SFTP客户端App,例如 FileZilla 或 FE File Explorer,按照以下信息进行配置:

  • 主机: Raspberry Pi 的IP地址。
  • 端口: SSH端口,默认为22,如果修改过,需要填写修改后的端口。
  • 用户名: SFTP用户的用户名,例如 sftpuser
  • 密码: SFTP用户的密码。

连接成功后,就可以在手机上访问 Raspberry Pi 上的文件了,可以进行上传、下载、删除等操作。

优化和安全建议

  • 使用密钥登录: 相比密码登录,密钥登录安全性更高,可以有效防止暴力破解。
  • 定期更新系统: 及时更新系统软件包,修复安全漏洞。
  • 监控SSH日志: 定期检查SSH日志,发现异常登录行为。
  • 使用 fail2ban: fail2ban 可以自动屏蔽恶意IP地址,防止暴力破解。
  • 配置自动备份: 定期备份重要文件,防止数据丢失。
  • 限制带宽: 可以使用 tc 命令限制SFTP用户的带宽,防止占用过多网络资源。

优点和缺点

优点:

  • 安全可靠: SFTP协议加密传输,数据存储在自己的设备上,安全性更高。
  • 完全掌控: 可以根据自己的需求进行配置和优化,打造个性化的文件同步方案。
  • 经济实惠: Raspberry Pi 价格低廉,功耗低,适合长期运行。

缺点:

  • 需要一定的技术基础: 搭建和配置过程需要一定的Linux系统管理知识。
  • 需要自行维护: 需要自行维护服务器,例如更新系统、监控日志等。
  • 依赖网络环境: 手机和 Raspberry Pi 需要在同一网络环境下才能进行文件同步。

总结

使用 Raspberry Pi 搭建 SFTP 服务器,并通过手机App实现文件同步,是一种安全、便捷、可控的个人云存储方案。虽然需要一定的技术基础和维护成本,但相比第三方云盘,可以更好地保护个人隐私和数据安全。希望本文能帮助你搭建自己的私有云,享受安全便捷的文件同步体验!

树莓派玩家 Raspberry PiSFTP服务器文件同步

评论点评