我有一个相当大的文件,我想在同一网络上的两个 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
您现在可以像浏览任何其他文件夹一样浏览共享。