跳转到内容

SFTP 文件传输映射

SFTP 是基于 SSH 的安全文件传输协议。Linux 与 macOS 默认就有 SSH 服务——启用后直接穿透即可。本页主要面向 Windows 用户,因为 Windows 需要先额外装上 OpenSSH 服务端。

OpenSSH 是最常见的 SSH/SFTP 服务端软件。微软为 Windows 7 以上的系统都提供了它,Windows 10 1803+ 更可以一键安装。按你的系统版本选下面对应的标签页:

这类较新的系统自带 OpenSSH 服务端组件,只需要开启即可。两种开启方式,任选一种。

方法 A:PowerShell(推荐,最快)

Section titled “方法 A:PowerShell(推荐,最快)”

管理员身份打开 PowerShell(打开终端速查),三条命令搞定安装、开机自启与防火墙放行:

Terminal window
# 安装
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# 设为开机自启 + 立刻启动
Set-Service -Name sshd -StartupType Automatic
Start-Service sshd
# 防火墙放行 22
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
  1. 打开「设置」→「应用
  2. 转到「应用和功能」→ 点「可选功能
  3. 点「添加功能
  4. 搜索 SSH,勾选「OpenSSH 服务器」(注意不是 OpenSSH 客户端),点安装

装完会自动注册为系统服务,但默认不会启动——继续看下面的「启动 OpenSSH 服务」。

上面用 PowerShell 装的已经启动好了,跳过本节即可。走图形界面装的,服务默认不会自动启动:

  1. Win + R,输入 services.msc 回车
  2. 找到「OpenSSH SSH Server
  3. 只用一次就点「启动此服务」;想让它开机自启,双击该项、把「启动类型」改成「自动

不管哪个版本、哪种装法,最后都用这条命令确认:

Terminal window
Get-Service sshd

Status 一栏输出 Running 就说明服务已经跑起来了。

SFTP 用 Windows 账号登录:

  • 用户名 = Windows 账户名(如 aliceMicrosoftAccount\me@outlook.com
  • 密码 = Windows 登录密码

在这台 Windows 的桌面客户端「内网穿透」页点「+ 新建映射」,弹窗顶部选「SSH」预设——SFTP 与 SSH 共用 22 端口,选它就对了:

桌面客户端新建映射弹窗:顶部一排服务预设,其中有 SSH

字段 填什么
映射名称 sftp
协议 TCP(选预设后自动选好)
本地地址 127.0.0.1
本地端口 22

创建完成后,强烈建议马上到客户端左侧「安全」分组里开启:

  • 访问规则」——限制谁能连到这个入口
  • 爆破防护」——挡住针对 SSH 的密码撞库

提交后得到一个公网入口,TCP 映射的入口是「域名:端口」形式,形如 k7p2mfa9.beesdc.com:43892,远程端口由服务器自动分配。

Terminal window
sftp -P 43892 alice@k7p2mfa9.beesdc.com

进入 sftp 提示符后常用命令:

命令 含义
pwd / lpwd 远端 / 本地当前目录
ls / lls 远端 / 本地文件列表
get <远端文件> 下载到本地当前目录
put <本地文件> 上传到远端当前目录
get -r <远端目录> 递归下载整个目录
bye 退出

主流图形化 SFTP 客户端都支持:

客户端 平台
FileZilla Win / macOS / Linux
Cyberduck Win / macOS
WinSCP Win
Termius 全平台 + 移动

连接参数:

  • 协议:SFTP
  • 主机k7p2mfa9.beesdc.com(蜻蜓分配的入口域名)
  • 端口43892(蜻蜓分配的入口端口)
  • 用户名 / 密码:Windows 账户名 / 密码
  • SFTP 走加密,CPU 和本地上行带宽都可能成为瓶颈
  • 需要更高带宽时,可升级套餐或加购带宽
  • 大文件优先用 get -r / put -r 批量传,比逐个文件传更高效