如何通过局域网共享文件?


65

我有一台台式机(Ubuntu 13.04和Win 7 Home Premium)和一台笔记本电脑(Ubuntu 12.04),都具有WiFi适配器。我也有一个连接到互联网WiFi路由器,两台计算机都可以访问。

我想使用WiFi (与Windows 7上的Homegroup类似,但不使用以太网电缆)在台式机和笔记本电脑之间共享文件。我该如何设置?

我想使用两个操作系统共享文件,如果任何人都有关于与任何一个操作系统共享文件的信息,请回答!



1
这不是重复的,因为它询问在Ubuntu和Windows以及Ubuntu和Ubuntu计算机之间的文件共享。请注意,桌面同时具有Ubuntu和Windows。当它启动到Ubuntu且笔记本电脑具有Ubuntu时,您便具有Ubuntu到Ubuntu的文件共享。
user68186

Answers:


77

网络设置

使用标准设置将台式机和笔记本电脑都连接到WiFi路由器。要检查两台计算机是否都已连接,请测试您是否可以从两台计算机上访问Internet。

可选:在路由器设置中,查看分配给台式机和笔记本电脑的本地IP地址。这些可能看起来像192.168.0.100或192.168.1.199。如果存在在路由器中永久分配这些特定IP地址的选项,则可以执行此操作。


Windows→Ubuntu

步骤1在笔记本电脑上,创建要共享的文件夹。可能会有一个名为“公共”的文件夹,如果需要,请选择该文件夹。右键单击文件夹图标,然后选择“共享选项”。将打开一个新窗口:

在此处输入图片说明

选中“共享此文件夹”框。

您可能还需要选中其他两个框“允许其他人在此文件夹中创建和删除文件”。这将使桌面Windows用户可以在此文件夹上创建和删除文件。

“来宾访问”复选框不言自明。如果您的Windows用户ID与Ubuntu用户ID不完全相同,这可能会很有用。

它可能会告诉您未安装共享服务:

在此处输入图片说明

单击“安装服务”,并在提示时提供笔记本电脑用户帐户的密码,以使其安装软件。系统可能会提示您安装更多软件,例如libpam-smbpass。安装所有软件。它将要求您重新启动服务,然后单击“是”。

步骤2.右键单击打开“公共”文件夹的属性窗口。转到权限选项卡,并确保它看起来像这样:

在此处输入图片说明

单击“更改附带文件的权限”按钮,并确保它看起来像这样:

在此处输入图片说明

现在,您应该能够在Windows资源管理器中的笔记本电脑的“公共”文件夹中编辑在ubuntu中创建的文件。

但是,如果您在Windows中创建文件并将其放置在便携式计算机的“公用”文件夹中,则当您进入便携式计算机时可能无法打开该文件。这是因为Windows和Ubuntu不了解彼此的文件所有权和权限。因此,在Ubuntu笔记本电脑中,Windows创建的文件归“ Nobody”所有。您必须以管理员身份打开Nautilus,并在笔记本电脑中更改所有权和读写权限。

步骤3.转到台式计算机上的Windows并打开Windows资源管理器,单击左侧面板上网络旁边的三角形。从下拉列表中,您应该能够选择运行Ubuntu的便携式计算机的名称

现在,您应该可以在Windows资源管理器中的笔记本电脑上查看共享文件夹(例如“公共”)。单击“公共”文件夹,然后查看文件夹中的文件。您应该能够将文件从Ubuntu的Public文件夹复制到Windows本地文件夹。

这是逐步指南,其中包含更多详细信息。


Ubuntu→Windows

步骤1使用Windows可用的方法设置Windows文件夹共享。请按照上面Windows部分的链接中的步骤进行操作。

步骤2通过按Ctrl+ Alt+ 在Ubuntu笔记本电脑中打开终端,T然后输入:

sudo -H gedit /etc/samba/smb.conf

并查找行:

;   name resolve order = lmhosts host wins bcast

并编辑它看起来像这样

   name resolve order = bcast lmhosts host wins 

注意,没有;在编辑行的开头。保存文件并退出gedit。输入以下两行(一次一行)以停止和启动samba:

sudo stop smbd
sudo start smbd

步骤3在笔记本电脑上,打开Nautilus,打开文件浏览器,然后单击左侧面板上的“ 网络 ”。单击“浏览网络”,单击Nautilus主网络窗口中的图标,然后找到Windows桌面和共享文件夹。确认您可以从该文件夹复制文件,也可以向该文件夹复制文件。

使用Nautilus浏览共享时,请参阅“无法从服务器检索共享列表”错误,以供编辑smb.conf时参考。


Ubuntu→Ubuntu

将桌面启动到Ubuntu。

在台式机和笔记本电脑上,执行以下操作以确保安装了ssh-server:

通过按Ctrl+ Alt+ 打开终端T并输入

sudo apt-get install openssh-server

出现提示时输入密码。输入密码时,光标不会移动。这很正常。

如果尚未安装ssh-server,则将安装它。如果已经安装,它将什么都不做。

桌面优先:

打开Nautilus,然后找到菜单项“其他位置”。在底部找到“连接到服务器”:

sftp连接[7]

在服务器地址下输入:

sftp://laptop_user_id@laptop_name.local/home/laptop_user_id

laptop_user_id您在笔记本电脑上为其创建的用户ID 在哪里。您可以通过whoami在终端中输入找到用户ID 。这laptop_name是您在安装Ubuntu时为笔记本电脑提供的名称。

如果要共享桌面的第二个硬盘驱动器中的分区,请在“服务器地址”下输入:

sftp://desktop_user_id@desktop_name.local/path/to/the/mount/point/of/the/partition/in/second/hard/drive

替换path/to/.../drive为实际路径。

或者,如果您知道便携式计算机laptop_name.local的本地IP地址,则可以用便携式计算机的本地IP地址替换。

Connect。您将看到一个密码对话框:

SSH的密码

输入与laptop_user_id相关联的密码,然后选择是否要记住该密码。再次单击Connect

现在,您应该会看到笔记本电脑的主文件夹。

请注意,Nautilus左侧面板上的Network(网络)下有一个以开头的新条目laptop_user_id。右键单击它,然后选择“添加书签”以在台式机的Nautilus中为笔记本电脑的主文件夹创建永久书签。

有关旧版本的图片请参见此页面

现在的笔记本电脑

遵循与上面的桌面相同的过程。


我将尝试Ur方法,并将回复U,直到此为止,非常感谢U的回答!-to user68186
Gaurav

2
:)完成后,我按照U所说的那样在笔记本电脑中安装了SSH,并完成了工作,现在我可以在我的台式机中看到我的笔记本电脑,在我的笔记本电脑中看到我的台式机了。
Gaurav

2
@Gaurav Samba是在后台运行的服务。该名称没有图形用户界面。这就是为什么您在Dash中找不到它的原因。您陷入哪一步?您可以从Ubuntu中查看Windows中的共享文件夹吗?您可以从Windows中查看Ubuntu中的共享文件夹吗?
2013年

1
对于从Ubuntu到Ubuntu的注释,“连接到服务器”输入框现在显示在“其他位置”页面的底部,以获取(Nautilus)文件的最新版本,并且很容易被忽略-askubuntu.com/a/851681
bonger

1
@bonger谢谢!我已经更新了文字和图片以反映所做的更改。
user68186

3

我将提出一些看起来不像SAMBA的替代方案,但对于其他用例可能会更好。

HTTP服务器

HTTP是用于访问常规网站的协议,因此每个操作系统都必须实施它!

在源计算机上找到您的IP,例如192.168.0.10。在Ubuntu上:

ifconfig

在包含要传输的文件的目录中创建服务器:

python -m SimpleHTTPServer 8080

在接收方计算机上,打开浏览器,然后访问:

192.168.0.10:8080

现在,您可以浏览目录到所需的文件。

我不确定这种方法是否快速/健壮,但是它是最简单的设置和便携式方法之一。

在以下网址讨论了更快的替代方法:https//stackoverflow.com/questions/12905426/what-is-a-faster-alternative-to-pythons-simplehttpserver

同步

在两台Ubuntu计算机之间,这是一个不错的选择:https : //en.wikipedia.org/wiki/Rsync

首先,请确保可以从一台计算机到另一台计算机进行SSH:

ssh server-username@192.168.0.10

如果您想保持密码私密,可以为该用户创建一个新帐户。

您可能需要在服务器和客户端上运行:

sudo apt-get install ssh

然后,一旦您成功登录,要将文件从服务器复制到客户端,只需执行以下操作:

rsync -av server-username@192.168.0.10:/full/path/to/remote/directory .

https://unix.stackexchange.com/questions/308810/copying-multiple-files-using-rsync-over-ssh所述,可以一次复制多个目录:

rsync -av 'server-username@192.168.0.10:/full/path/to/remote/directory "/full/path/to/remote/directory with space"' .

这是最低的公分母方法:最健壮,高效,广泛可用的Linux,并且安全性取决于众所周知的文件权限+用户方案。

在Windows上,这可能并不容易:

NFS

还是主要针对两台Ubuntu计算机,这是Linux的SAMBA,具有内置在Linux内核中的支持:https : //en.wikipedia.org/wiki/Network_File_System

基本上,它允许您mount从客户机上的服务器到文件夹。

设置和故障排除可能比困难一些rsync,但绝对可行,这是一篇好文章:https : //www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on- ubuntu-16-04

也许还有一些Windows实现:https : //docs.microsoft.com/zh-cn/windows-server/storage/nfs/nfs-overview,但我猜想Microsoft必须为其自身的SMB协议提供更好的支持。


1
sudo apt-get install servefile

servefile非常适合临时共享,它在端口8080上运行http服务器(除非指定了-p < port >),因此它可以通过浏览器与任何设备快速通信。

例子:

  • servefile filename#只提供文件


    我有3个URL,因为我有来自3个不同LAN的3个IP,通常您只会得到1个,但这真是棒极了。

  • servefile -u〜/ Pictures #让我们将文件上传到Pictures文件夹

    上传文件

  • servefile -l〜/ Pictures #服务文件夹的内容

    文件夹内容

  • servefile -tc gzip〜/ Pictures #从任何文件或文件夹构造一个tar文件,并即时对其进行压缩

    在此处输入图片说明

顺便说一句,通过这种方法,我达到了1Gbps的传输速度(LAN的最大速度)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.