坦克网盘v1.2.8开发计划

作者:

SMB协议

文章概述

该文章介绍了坦克网盘目前支持的FTP和WebDav协议以及Windows系统下需要进一步提供功能支持的情况。作者提到了SMB协议的介绍和发展历程,并表示下一个版本的坦克网盘将加入SMB 3.0的支持。在Windows上使用坦克网盘时,可以暂时利用第三方FTP客户端配合使用,如FileZilla、WinSCP等。此外,文章还介绍了一些WebDav客户端,如RaiDrive、Altap Salamander等。最后,作者建议用户根据自身需求选择合适的客户端进行文件共享和访问。

关键要点

1.坦克网盘v1.2.8计划添加SMB 3.0协议支持。

2.目前Windows系统自带FTP网络映射功能存在缺陷。

3.SMB协议是微软和英特尔在1987年制定的协议,主要用于Microsoft网络的通讯。

4.SMB协议分为多个版本,其中SMB 3.0是最常用的版本。

5.可以利用第三方FTP客户端或WebDAV客户端来配合使用坦克网盘。

问题

目前坦克网盘支持 FTP 协议和 WebDav 协议共享文件,这两个协议在类 Unix 系统上有比较好的生态支持,并且体验也比较好。如果想在 Windows 系统上使用坦克网盘则需要进一步提供功能支持。

windows 系统虽然自带了 FTP 网络映射,但目前在 windows 10 上测试过程中发现,自带的 FTP 网络映射功能不能够完全可用。比如重命名,上传文件名乱码等,这些我们是通过 Wireshark 这个应用捕捉分析出来的。根据这个情况来看,微软并不想对 FTP 支持投入太多资源,而是把资源都用到自己家的共享协议 SMB 上面了。

SMB(Server Message Block)通信协议是微软和英特尔在1987年制定的协议,主要是作为Microsoft网络的通讯协议,它是当今世上网络文件系统协议两极之一的存在。 SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)1。SMB协议可以实现相邻网络中间的计算机中文件的共享功能,该协议包含两部分分别是服务器端和客户端,它通过网络中的TCP、NetBEUI等通信协议建立会话连接,然后用户可以通过该协议的客户端发起文件共享请求,并通过服务器接收到的请求将文件发送给用户来实现文件的共享。

分析

我们需要在 Windows 上面实现良好的用户体验,就需要实现 SMB 协议,这个协议实现起来有一定难度,所以会需要一段时间。我们会从多个 SMB 协议版本中选择:

SMB(Server Message Block)协议是用于在局域网(LAN)上提供文件共享、打印服务和其他网络资源访问的一种网络协议。自其诞生以来,SMB协议经历了多个版本的发展,每个版本都在功能、性能、安全性和跨平台支持等方面有所改进。以下是SMB协议的主要版本及其详细信息:

  1. SMB 1.0 (CIFS):

    • 起源:最初由IBM和微软共同开发,最初版本在1980年代推出,称为“文件服务协议”(File Service Protocol, FSP)或“微软网络客户/服务器协议”(Microsoft Networking Client/Server Protocol)。后来演变为Server Message Block (SMB)。
    • 标准化:随着互联网的普及,SMB被标准化为Common Internet File System (CIFS),这是SMB 1.0的一种变体,旨在适应互联网环境。
    • 端口:主要使用TCP端口139和445(CIFS)。
    • 特点:基本文件共享功能,包括文件和打印机共享,以及远程过程调用(RPC)支持。安全性相对较弱,依赖于NT LAN Manager (NTLM)身份验证和不加密的明文传输。
    • 局限性:缺乏现代安全特性,性能优化不足,跨平台支持有限。
  2. SMB 2.0:

    • 发布:首次随Windows Vista和Windows Server 2008推出。
    • 改进:大幅优化了性能,减少了网络通信量,增强了规模可扩展性。引入了新的操作码、多通道支持、大容量文件传输优化、延迟打开、 leases(租约)、目录缓存等特性。
    • 安全:继续使用NTLMv2和Kerberos身份验证,但未引入新的安全机制。
  3. SMB 2.1:

    • 发布:作为Windows 7和Windows Server 2008 R2的一部分。
    • 改进:进一步提升了性能,增加了对BranchCache分布式缓存的支持,以及对文件操作的信用控制(credit-based flow control)。
  4. SMB 3.0:

    • 发布:随Windows 8和Windows Server 2012发布。
    • 重大更新:引入了多项关键新功能,包括:
      • SMB Direct:利用RDMA(Remote Direct Memory Access)技术实现低延迟、高带宽传输。
      • SMB Multichannel:支持通过多个网络路径并行传输数据,提高可用性和带宽利用率。
      • SMB Encryption:提供了端到端的加密,增强数据在传输过程中的安全性。
      • SMB Scale-out:支持群集共享卷(Cluster Shared Volumes, CSV)和透明 failover,允许在集群环境中无缝迁移文件服务。
      • SMB Directory Leasing:减少客户端与服务器的交互次数,提高文件夹导航性能。
    • 安全:除了SMB Encryption外,还支持Kerberos AES-256加密和签名。
  5. SMB 3.02:

    • 发布:作为Windows 8.1和Windows Server 2012 R2的更新。
    • 改进:小幅度更新,优化了部分功能和错误修复。
  6. SMB 3.1.1:

    • 发布:随Windows 10和Windows Server 2016推出。
    • 新增:支持Pre-Authentication Integrity(PAI),增强了身份验证阶段的安全性。提高了加密算法的性能,支持AES-128-GCM和AES-256-GCM。
  7. SMB 3.1.1+:

    • 后续发展:微软继续在后续的Windows版本中对SMB 3.1.1进行维护和增强,如Windows 11和Windows Server 2022,引入了额外的安全增强和性能优化。

目前,SMB 3.x系列是广泛部署的标准,尤其是在Windows环境中。鉴于SMB 1.0的安全风险和性能限制,许多现代操作系统已经默认禁用或移除了对SMB 1.0的支持,推荐用户升级到SMB 3.x及以上版本以获得更好的安全性和性能。同时,由于SMB 3.x的诸多增强功能,它也被越来越多的非Windows平台(如Linux通过Samba项目)所支持,实现了跨平台的文件共享兼容性。

临时解决方案

根据研究,我们决定实现 SMB 3.0 这个版本。也就是说,下一个版本的坦克网盘将会加入 SMB 3.0 的支持。这样会使体验更加好。 对于目前在Windows上使用坦克网盘的时候,虽然官方没有实现 FTP 完全功能支持,我们也可以暂时利用第三方客户端配合使用,比如:

FTP Windows客户端是指那些在Microsoft Windows操作系统上运行,用于连接FTP(File Transfer Protocol)服务器、管理和传输文件的专业软件。以下是一些常见的FTP Windows客户端:

  1. FileZilla

    • 免费开源的跨平台FTP/SFTP/FTPS客户端。
    • 支持多标签界面,方便同时管理多个连接。
    • 提供拖放功能、断点续传、目录同步、书签管理等功能。
    • 可自定义界面布局和颜色方案。
    • 支持队列管理、过滤设置和站点管理器。
  2. WinSCP

    • 免费的图形化SFTP和SCP客户端,同时也支持FTP。
    • 内建文本编辑器,可直接在远程服务器上编辑文件。
    • 提供同步功能、书签管理和会话保存。
    • 集成公钥/私钥认证和密码管理器。
    • 支持脚本自动化和命令行操作。
  3. Cyberduck

    • 免费的FTP/SFTP/FTPS/WebDAV/Amazon S3客户端,适用于Windows和macOS。
    • 界面简洁直观,支持浏览器式文件浏览。
    • 提供历史记录、书签、同步和拖放功能。
    • 支持Finder集成(仅macOS)和多种云存储服务。
  4. CuteFTP

    • 商业FTP客户端,提供专业版和家庭版。
    • 支持FTP/SFTP/FTPS,具有强大的文件传输和管理功能。
    • 提供安全连接、自动恢复、任务调度和目录同步。
    • 内建HTML编辑器,支持直接编辑远程文件。
  5. SmartFTP

    • 功能强大的FTP/SFTP/FTPS/WebDAV/Amazon S3客户端。
    • 支持多窗口界面、颜色自定义和拖放操作。
    • 提供同步、任务计划、脚本编写和远程文件搜索功能。
    • 支持TLS/SSL加密和代理连接。
  6. Transmit

    • 专为macOS设计的FTP/SFTP/FTPS客户端(非Windows,但在此列出以供参考)。
    • 拥有美观的用户界面和高效的文件传输性能。
    • 支持双窗格浏览、同步、拖放、标签页和远程编辑。
    • 集成云存储服务支持,如Amazon S3、Google Cloud Storage等。
  7. IIS7服务器管理工具

    • 支持FTP客户端批量操作,适用于Windows和Linux系统。
    • 提供批量上传下载、在线解压缩、文件查找和在线编辑功能。
    • 支持同时远程操作多台服务器,适合机房管理、运维工作等场景。
  8. 8UFTP

    • 提供免费版和专业版,支持FTP/SFTP/FTPS。
    • 提供文件预览、拖放、同步、任务计划等功能。
    • 支持文件过滤、速度限制和自定义命令。
  9. FTPRush

    • 功能全面的FTP客户端,支持FTP、FTPS和SFTP。
    • 提供多线程传输、文件同步、任务计划和脚本支持。
    • 支持文件和目录的拖放操作,以及FTP URL解析。
  10. FireFTP

    • 原为Firefox浏览器插件,提供轻量级FTP功能(注:由于Firefox插件生态的变更,FireFTP可能不再维护或不再适用于最新版本的Firefox)。

此外,Windows系统本身也内置了命令行FTP客户端,可通过cmdPowerShell访问,适用于需要进行简单文件传输或自动化脚本任务的用户。

以上列举的FTP客户端涵盖了免费、开源、商业以及跨平台等多种类型,用户可以根据自身需求(如功能、界面、价格、平台兼容性等)选择合适的FTP客户端软件。

因为坦克网盘也支持WebDav协议,所以也可以利用WebDav客户端配合使用,上面的一些软件支持 FTP 的同时也支持 WebDav。下面列出一些 WebDav 客户端,比如:

WebDAV(Web Distributed Authoring and Versioning)是一种基于HTTP/HTTPS协议的网络文件访问协议,允许用户在远程服务器上进行文件的创建、修改、删除等操作。以下是一些适用于Windows平台的WebDAV客户端软件:

  1. RaiDrive:

    • 专门将WebDAV、FTP、SFTP等远程存储挂载为本地磁盘的工具。
    • 易于配置,支持将多个远程存储映射为不同的驱动器。
    • 提供直观的文件管理界面,如同操作本地文件一样便捷。
  2. Altap Salamander:

    • 强大的双面板文件管理器,支持WebDAV、FTP、SFTP等协议。
    • 提供丰富的文件操作功能,如复制、移动、压缩、搜索等。
    • 支持文件预览、脚本自动化、插件扩展。
  3. BitKinex:

    • 一体化的FTP/SFTP/FTPS/WebDAV客户端,具有直观的用户界面。
    • 支持多窗格浏览、文件同步、任务计划和脚本编写。
    • 提供拖放操作、书签管理、文件过滤等功能。
  4. NetDrive:

    • 将WebDAV、FTP、SFTP等远程存储映射为本地硬盘驱动器的应用。
    • 支持多账户、多服务器管理,可同时挂载多个远程存储。
    • 提供自动登录、后台传输、文件同步等功能。
  5. Mountain Duck:

    • 类似RaiDrive,将WebDAV、SFTP、Amazon S3等存储挂载为本地磁盘。
    • 无缝集成到Windows Explorer,提供快速访问远程文件的能力。
    • 支持密码管理器集成、文件锁定、自动重连等功能。
  6. AnyClient:

    • 跨平台的FTP/SFTP/FTPS/WebDAV客户端,提供简洁的界面。
    • 支持多标签浏览、书签管理、拖放操作、文件搜索。
    • 提供文件加密、代理支持、自动重连等功能。
  7. File Explorer (Windows):

    • Windows自带的文件管理器(Explorer)已内置WebDAV支持。
    • 只需输入WebDAV服务器地址即可将其作为网络位置添加。
    • 直接在文件资源管理器中进行文件的浏览、编辑、复制等操作。
  8. WebDAV Mini-Redirector:

    • Windows系统内置的WebDAV客户端组件,支持命令行和API访问。
    • 可通过映射网络驱动器的方式访问WebDAV服务器。

以上列举的WebDAV客户端覆盖了从专业的文件管理器到专用的驱动器映射工具,用户可根据自身需求选择合适的客户端进行WebDAV服务的访问和管理。如果您偏好使用熟悉的文件资源管理器操作,可以直接使用Windows自带的File Explorer或通过映射网络驱动器来访问WebDAV服务器。对于更高级的用户或特定应用场景,可以选择功能更丰富、支持更多定制选项的专业客户端软件。

总结

坦克网盘v1.2.8版本会添加 SMB 3.0 协议的支持,在还没有实现前,我们依然可以利用第三方软件来配合使用。