局域网上的快速文件共享

局域网上的快速文件共享

我有一个相当大的文件,我想在同一网络上的两个 Linux 机器之间共享。我对 scp 有点熟悉,但是如何在主机上配置它?也就是说,主机如何允许客户端连接?或者,当您使用 scp 或 ssh 登录时,由于您使用用户名和密码登录,因此只需使用主机上的用户名和密码?

也就是说,只需使用现有的用户/密码登录主机?

如果可能的话,我对类似于 Windows 文件共享的 GUI 感兴趣。

答案1

快速而肮脏方法是打开发送端的传入连接端口,然后将接收方连接到该端口上的发送方,然后通过该连接发送文件。这将是在 LAN 内传输数据的最快方法,因为没有通常与 SSH 相关的加密、传输和其他开销。但请记住,此过程不会使用任何身份验证和加密机制。当您在 LAN 内受信任的主机之间传输文件时,这很有用。

在发送方:

nc -l <port> < /file/to/be/sent

例如:

nc -l 5000 < /home/user/test

在接收方:

nc <sender_ip> <port> > /where/to/be/saved

例如:

nc 192.168.0.5 5000 > /home/myself/new_file

答案2

我会考虑使用硝基共享。NitroShare 是一个简单的文件共享 GUI 程序。可以使用

sudo add-apt-repository ppa:george-edison55/nitroshare
sudo apt-get update
sudo apt-get install nitroshare

您可以从桌面菜单(对于 Unity 来说为 Dash)启动它,程序将在系统托盘中打开。它需要在发送文件的计算机和接收文件的计算机上打开。

答案3

SCP 使用与 SSH 相同的凭证工作。

如果您可以使用以下命令从主机 A 通过 SSH 连接到主机 B:

ssh username@hostb

那么将文件从主机 A SCP 传输到主机 B 的命令将是:

scp /path/to/file username@hostb:/path/to/destination

如果您对 GUI 感兴趣,可以尝试使用默认文件(nautilus)-> 前往 -> 输入位置...并输入:

sftp://root@hostb/path/to/destination

我知道这不是 SCP,但还是相当容易。或者你可以看看 Filezilla。

答案4

最简单(设置和使用)的解决方案之一是 NFS。NFS 是客户端-服务器模型,因此一台机器必须是服务器,而另一台机器必须是客户端

配置设置

要共享的文件夹 -> 您要共享的文件夹的路径

server-ip-address -> 托管共享文件夹的计算机的 IP

client-ip-address -> 访问共享文件夹的机器的 IP 地址(使用网络地址如 192.168.1.0 允许任何机器访问)

服务器

sudo apt-get install nfs-kernel-server
echo '/<folder-to-share>/ <client-ip-address>/255.255.255.0(rw,no_root_squash,no_subtree_check,sync)' | sudo tee --append /etc/exports

客户

sudo apt-get install nfs-common
echo '<server-ip-address>:<folder-to-share> /media/share        nfs rw,hard,intr 0 0' | sudo tee --append /etc/fstab
sudo mount /media/share

您现在可以像浏览任何其他文件夹一样浏览共享。

相关内容