所以我的朋友使用的是 Windows 10 计算机(不在我的本地网络上)。我在 Linux 机器上(Ubuntu 20.04)。
我想在我们的电脑上创建一个我们都可以访问的文件夹。目的是共享文件。
有没有简单的方法可以实现这一点?
答案1
有多种方法可以做到这一点。
除了 Dropbox、One Drive 之类的之外,还有一些解决方案可以让您自行开发等效产品 - 比如 Owncloud 和 Nextcloud。
或者,您可能要考虑使用 VPN 桥接您的网络,并使用 SMB(Windows 文件共享 - Linux 上的 SAMBA)或 NFS 之类的东西。(如果您有固定 IP 地址,严格来说 VPN 不是必需的,但它对您的数据安全大有裨益)
答案2
有两种方法可以做到这一点:
该文件夹托管在两台计算机上并同步。
除了常见的云服务(Dropbox 等)外,还有一些用于同步文件夹的程序没有使用云存储,例如 Syncthing 或 Resilio sync。后两者适用于 Windows 和 Linux(以及 macOS)。
优点:由于文件是本地文件,因此两台机器上的文件访问速度一样快。大多数此类同步程序都会自动通过 NAT 和防火墙,因此“不在同一网络”几乎无关紧要。
缺点:该文件夹占用所有相关机器的空间。更改需要一些时间才能显示出来。如果几个人同时编辑同一个文件,您最终会得到很多“myfile(冲突).ext”副本。
该文件夹托管在一台计算机上,并从另一台计算机上访问。
当涉及 Windows 计算机时,远程文件访问通常使用 SFTP(例如 sshfs)或 SMBv3(samba)进行。也可能使用 WebDAV。
上述协议只是典型的 TCP/IP 服务,可以使用“端口转发”跨 NAT 访问。但是,将两台机器连接到内部 VPN 会是更好的选择(例如 Tailscale 或 ZeroTier 或 Hamachi),这既是为了安全,也是为了使 NAT/防火墙穿越更加容易。
优点:如果文件夹很大,则只需要存储在一个系统上,从而可能节省磁盘空间。
缺点:需要快速的互联网连接(在两个系统上,两个方向!)否则会感觉非常迟钝。客户端必须在服务器计算机的操作系统上为其创建一个帐户。所有协议都需要端口转发等;SMBv3 几乎需要 VPN,因为否则它仍然是一种风险,许多 ISP 仍然直接阻止它。另一方面,SFTP(sshfs)需要 Windows 上的第三方客户端,它不像 SMBv3 那样集成得很好。
答案3
如果您想避免 WAN 流量,我建议:
如果您将文件保存在 Linux 上并且您的朋友想要访问,则可以使用 SFTP。如果您的朋友将文件保存在 Windows 上并且您想要访问,则可以使用 SAMBA。
如果您不在 VPN 中或在同一个 LAN 中,请使用类似 Dropbox 的共享,因为您必须关心在互联网上运行 SAMBA-SHARE 或 SFTP 的安全性。