在一个家庭中共享驱动器/文件夹 - 但在不同的家庭中?

在一个家庭中共享驱动器/文件夹 - 但在不同的家庭中?

我有一个局域网,里面有几台 Ubuntu 机器。我弟弟也有一个局域网,里面有几台 Linux 机器。
我们想要在彼此之间共享一些文件夹,并拥有完全的读/写访问权限。怎么做?

特别的挑战是,我们不住在同一栋房子里。我们甚至不在同一个国家!

我猜我们需要设置某种私人虚拟网络,这样即使中间有两个 ISP,机器基本上也在同一个 LAN 上。

我们如何才能实现这一点?我们需要什么软件/硬件?

我们都有稳定的 DSL 线路。我们都有仅支持 Linux 的家庭 LAN。我们需要某种 SSL 证书吗?域名?我不知道。我只知道 NFS 是方式 复杂的适合我的技能水平。

更新:根据 Bodhi 的建议使用 sshfs,我可以立即让我自己的 LAN 上的机器之间运行该程序。到目前为止一切顺利!但:

  1. 我弟弟如何从他的局域网访问我家局域网中的机器?首先,我猜我需要为我的家安排一个 DynDNS 名称,因为 ISP 分配的 IP 地址会随时间而变化。但这无法帮助他找到我局域网上的某台特定机器。他该怎么做?
  2. 有没有指南可以解释“使用 ssh 密钥并禁用密码验证”的步骤?我猜我需要生成一组私钥/公钥,并将公钥给他?但是任何拥有该密钥的人都可以访问我的机器吗?这是如何工作的?

当上述问题解决后,我就可以互换我们的角色,以同样的方式访问他的机器。

答案1

堡垒/跳跃主机

您可以将 LAN 上的一台主机配置为跳转主机或 ssh 堡垒。您的兄弟将直接通过 ssh 连接到此主机,然后他可以从这台机器通过 ssh 连接到您网络的其余部分。他还可以使用 SCP 将文件复制到您的网络或从此主机复制文件,然后根据需要移动它们。

一篇优秀的堡垒主机文章

连接选项

  1. 公共 IP - 您可以通过 ISP 将公共/浮动 IP 地址连接到路由器以允许连接。您还可以在某处设置具有浮动 IP 地址的云实例,并将其用作堡垒主机。也许每月 30 美元可以购买一个实例,您也可以将其用于其他用途。从您的 ISP 获取公共 V4IP 可能会更贵。设置完成后,您可以使用像 openvpn 这样的 VPN(非常便宜和可靠)从两个站点到此主机,从本质上将其变成私有网络之间的路由器。

    OpenVPN 站点 2 站点

  2. IPv6 - 根据您的 ISP,您可能已经运行双栈,或者同时运行 IPv4 和 IPv6。虽然您的 IPv4 地址是私有且动态的,但您的 IPv6 地址可能与您的帐户相关联,因为 IPv6 的全部意义在于解决世界上没有 IPv4 公共地址的事实,并允许每个人为每个设备拥有一个唯一的地址。由于您提到您正在使用 DSL,因此您可能无法使用此功能。但是,如果您正在运行双栈,那么您已经有一个 V6 唯一地址,并且只要您的 ISP 允许 v6 通过其互联网网关返回到您的路由器,就应该能够通过路由器的地址提供端口转发访问。这是一个选项,但您可能会发现这需要付出巨大的努力才能开始,甚至可能根本不可能。

    Ubuntu IPv6 VPN 教程

  3. Hamachi - (logmein.com) 提供用于完成此类任务的工具,而且价格不贵。如果您想花点小钱设置并忘掉它,那么这个绝对值得一看。他们基本上为您管理上述 VPN 设置并保持其正常运行。如果您不介意为解决方案付费,那么它效果很好,尽管使用他们的免费组件,某些基本功能可能对您有用。

    Hamachi Site 2 网站教程

  4. DynDNS - 对我来说,这是魔法,但您实际上是将网关设备从互联网上的任意点桥接到静态名称,并允许流量使用名称和路由(而不是公共 IP 地址)通过网关。您将此名称注册到第三方服务器/服务,以将动态连接通告给您,因为您正在启动与此第三方端点的连接,并允许流量转换回您的网络。请谨慎使用此类设置,因为您实际上是在向全世界开放您的 LAN,并且很有可能随着时间的推移受到潜在攻击者的骚扰。

    OpenSwan VPN 教程

安全

确保你正在自己和外界之间运行某种类型的防火墙。你的 LAN 机器上的防火墙应该被视为网关防火墙的次要部分,并且不应该是唯一的安全层。这可以是一台充当网关和 LAN 其余部分之间的防火墙的机器,或者至少是网关设备上禁用的端口和协议的列表。

Ubuntu 作为网关路由器/防火墙教程


还有一件事我要指出,如果您使用的是 DSL,您的连接可能会定期失败。DSL 有 ADHD,大约每天会掉线一次。如果连接确实断开,请务必通过 cron 设置某些内容以“踢出”您的连接,否则您的兄弟每次需要访问时都会打电话给您,让您重置调制解调器。

祝您狩猎愉快!

答案2

这可能不是你想要的。这不会直接连接你的局域网。但专注于“我们想要彼此共享一些文件夹,并拥有完全的读/写访问权限。怎么做?”,这是一个可行的、简单的方法:

您可以使用不受空间限制的 Dropbox 替代方案,例如 Syncthing、Bittorrent Sync 或 AeroFS。以下是这三种方案的描述:点对点 (P2P) 同步和共享 Ubuntu

简而言之,它们都会同步所有文件夹。我不确定是否有可能只同步其中的一部分。它们都没有空间限制(硬盘除外)。但您需要在所有机器上安装它,或者至少在您的 LAN 中的一台机器和您兄弟的 LAN 中的一台机器上安装它。在 LAN 中,您可以使用 SMB 共享或任何您喜欢的方式。Syncthing 也是开源的。

答案3

您是否了解过 box.net、Google Drive、iCloud 等云服务?它们都提供某种文档共享和协作支持。

它们都具有某种工作流程,这使得它们不如将文件夹放在本地文件系统上自然。但是,此工作流程解决了共享远程文件系统的基本问题:网络延迟。使用任何同步服务,如果你们俩决定同时编辑文档,则只有你们中的一个人可以保留你们的编辑。

相关内容