网络设置

网络设置

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

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

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

答案1

网络设置

使用标准设置将台式机和笔记本电脑连接到 WiFi 路由器。这意味着任何计算机都可以通过 WiFi 或以太网电缆连接。但是,如果您稍后将一台(或两台)计算机从 WiFi 切换到以太网电缆(或反之亦然),该计算机的本地 IP 地址可能会发生变化。这将影响文件共享设置。

要检查两台计算机是否已连接,请测试您是否可以从两台计算机访问互联网。

选修的:在路由器设置中,查看分配给台式机和笔记本电脑的本地 IP 地址。这些地址可能看起来像 192.168.0.100 或 192.168.1.199。如果路由器中有永久分配这些特定 IP 地址的选项,您可以这样做。


Windows → Ubuntu

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

在此处输入图片描述

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

您可能还想选中另外两个框“允许其他人在此文件夹中创建和删除文件”。这将允许您(桌面 Windows 用户)在此文件夹中创建和删除文件。

“Guest Access”复选框的含义不言而喻。如果您的 Windows 用户 ID 与 Ubuntu 用户 ID 不完全相同,这可能会很有用。

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

在此处输入图片描述

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

第2步。右键单击“公共”文件夹,打开其属性窗口。转到权限选项卡,确保它如下所示:

在此处输入图片描述

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

在此处输入图片描述

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

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

步骤3.转到台式电脑上的 Windows 并打开Windows资源管理器,点击旁边的三角形网络在左侧面板上。从下拉列表中,您应该能够选择运行 Ubuntu 的笔记本电脑的名称

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

以下是包含更多详细信息的分步指南。


Ubuntu → Windows

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

第2步Ctrl++在 Ubuntu 笔记本电脑中打开终端并输入:AltT

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。

在台式机和笔记本电脑上执行以下操作以确保安装了 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为实际路径。

或者,如果您知道笔记本电脑的本地 IP 地址,则可以将其替换laptop_name.local为笔记本电脑的本地 IP 地址。

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

SSH 密码

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

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

请注意,在网络在 Nautilus 的左侧面板上,以 开头laptop_user_id。右键单击它并选择“添加书签”,以便在桌面的 Nautilus 中为您的笔记本电脑的主文件夹创建永久书签。

请参阅此页面查看图片来自旧版本。

现在笔记本电脑

按照与上面桌面相同的流程进行。

答案2

我将提出一些与 SAMBA 不完全一样但可能更适合其他用例的替代方案。

HTTP 服务器

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

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

ifconfig

在包含要传输的文件的目录中创建服务器。使用Python 3(Ubuntu 20.04 及更高版本上的默认 Python):

python3 -m http.server 8080

或者在 Python 2 中:

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 [email protected]

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

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

sudo apt-get install ssh

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

rsync -av [email protected]:/full/path/to/remote/directory .

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

rsync -av '[email protected]:/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/en-us/windows-server/storage/nfs/nfs-overview但我猜微软必须对其自己的 SMB 协议提供更好的支持。

SCP

这通过 SSH 进行,因此您需要在远程机器上登录。

一旦能够使用 SSH,您就可以使用 scp 复制单个文件,如下所示:

scp username@remote-hostname:/path/to/remote/src path/to/local/dest
scp path/to/local/src username@remote-hostname:/path/to/remote/dest 

SSH文件系统

这也适用于 SSH,因此再次需要 SSH 登录。

使用 SSHFS,您可以通过 SSH 创建一个挂载。有点像 NFS,但更容易设置,但可能更慢:

sudo sshfs username@remote-hostname:/path/to/remote/src path/to/local/dir

path/to/local/dir现在包含相同的内容/path/to/remote/src并自动同步。

蓝牙

这也值得思考!如今,蓝牙似乎几乎在每个非嵌入式设备上都可用,有时我们甚至会忘记它。

我成功地在两台 Ubuntu 23.10 ThinkPad 机器之间发送了文件。这并不奇怪,因为您无法浏览另一台计算机上的文件,只能将特定文件发送到另一台计算机。但它很方便。

配对后,从发送方单击要发送到的已连接设备:

在此处输入图片描述

然后出现以下界面并选择要发送的本地文件:

在此处输入图片描述

然后接收者会看到这个:

在此处输入图片描述

一旦接收方接受,文件就会出现在~/Downloads下。

答案3

更新:这里有很多适合各种用例的替代方案https://stackoverflow.com/questions/12905426/what-is-a-faster-alternative-to-pythons-http-server-or-simplehttpserver?rq=1


sudo apt-get install servefile

服务文件非常适合随意分享,它在端口 8080 上运行一个 http 服务器(除非 -p <港口> 已指定),因此它可以进行通信快速地使用任何带有浏览器的设备。

例子:

  • 服务文件文件名# 仅提供文件


我获得 3 个 URL,因为我有来自 3 个不同 LAN 的 3 个 IP,通常您只会获得 1 个,但能向您显示这一点真是太棒了。

  • 服务文件-u〜/图片 # 让你上传文件到图片文件夹

上传文件

  • 服务文件-l〜/图片 # 提供文件夹的内容

文件夹的内容

  • 服务文件-tc gzip〜/图片 # 从任意文件或文件夹构建一个 tar 文件并即时压缩

在此处输入图片描述

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

相关内容