我是否可以通过网络将文件从本地计算机发送到本地计算机?(Linux 优先)
它必须使用网络,因为我的目标是检查传输速度。我没有使用两个不同的主机,因为我只有一台计算机。这个测试有任何意义吗?(或者 Linux 会很聪明,意识到它可以在本地复制文件,因为它们是同一个文件?)
答案1
也许可以使用类似以下命令安装虚拟机oracle 虚拟盒。
然后更改虚拟盒的network
设置以使用bridged adapter
,然后它将通过 dhcp 分配一个 ip(或者无论您以何种方式处理寻址,您都可以在您的网络上为其指定一个静态 ip)。
然后建立一个共享文件夹并传输文件。
我认为这应该会导致数据采用“风景路线”。您可以使用类似SCP来传输和测量速率——或许多其他方法。
对于您的设置来说,这可能也是一个有点极端的解决方案:)
答案2
网络通常由两个或多个节点组成,节点是发起、路由或终止数据的系统。虽然您的本地网络中可能有交换机或路由器,但这些设备本身不会发起或终止(有用的)大量数据。此外,虽然您可以将 Linux 系统设为多个网络的成员,但本质上,它会直接连接到每个单独的网络,因此,任何试图从一个网络地址到同一主机上存在的另一个网络地址建立网络连接的尝试,在设计上都会被操作系统内核路由回自身,甚至在到达 NIC 之前。
有一些方法可以欺骗系统,使其无法分辨它正在连接回自身,但这些技巧需要远程路由器或系统的参与来执行一种在小型办公室/家庭办公室网络设备上不常见的网络地址转换,尽管 Linux 可以做到这一点,但如果不遇到我上面提到的固有问题,就无法在一个系统上单独完成。
但是,主要问题是您对“测试网络”的要求没有定义。您要测试什么网络?是您的网络代码吗?据我所知,如果您的代码将通过环回地址 (127.0.0.1) 发送和接收数据,并且不关心数据包大小或流速等低级网络属性,那么它也可以在具有相同代码库的两个独立主机之间工作。但是,如果您希望测试的网络不仅仅包含代码,那么您必须定义该网络的具体组成,并且对于大多数可预见的情况,必须有第二个系统(Linux 机器可能是最便宜的)来代理测试网络的远端。