Answers:
Windows与这有什么关系?我不是要与Windows计算机共享...
没错,这可能会造成混淆。因此,让我首先澄清一下这些术语:
Windows共享文件和打印机的方式称为SMB。来自SAMBA项目的人员已经实现了Microsoft的所有Linux协议和规范。因此,Ubuntu支持与Windows相同类型的文件共享,即Samba。
您可以使用SAMBA在Linux机器之间共享文件。实际上,如果您有一个朋友(而不是其Windows计算机),则可能更希望这样做。
或者,您可以使用Linux共享文件的方式,即NFS(网络文件系统)- 上一个问题的答案解释了如何做到这一点。(但这是技术性的)
因此,当“共享选项”对话框要求您安装软件包时,实际上并没有安装任何Microsoft软件或类似的软件。继续做下去,这是绝对安全的。
附录:
您可以按照Salih Emin的说明尝试仅启用共享。如果它不起作用,您将收到一个简单的警告,然后可以根据需要执行Salih描述的步骤。我已经在全新安装和最新的系统上进行了尝试,确实需要这样做。
目前,Lucid中有一个小错误,该错误已在Launchpad中列出:bug#536766。此错误不会提示用户安装完成文件共享设置所需的必要软件包。在解决此问题之前,这里有一个快速的解决方法。
您需要安装libapache2-mod-dnssd并重新启动。单击此链接进行安装,或在软件中心中找到libapache2-mod-dnssd。
安装完成后,转到系统→首选项→个人文件共享,然后选中“在网络上共享公共文件”框。
完成所有操作后,您应该就能查看网络上所有允许在“公用”文件夹中共享公用文件的其他计算机。只需单击位置→网络,您将在其中看到所有可用的计算机及其共享的公用文件夹。
双击服务器图标将在桌面上安装相关的公用文件夹。
通过链接文字
您可以简单地在linux机器上运行一个simpleHTTP服务器,然后在另一台机器上访问它。
脚步 :
python -m SimpleHTTPServer
ifconfig
。您在文件夹中获取所需的文件以进行下载。
python3 -m http.server
我相信这就是SAMBA软件包的内容,或者至少是其描述的一部分。另外,您可以尝试使用“偏好设置”->“文件共享”,我相信它使用了不同的机制。尽管安装了Samba是一件方便的事情。
如果您想在Ubuntu中无缝集成,并且对Windows兼容性不感兴趣,那么SSH是您的重中之重。
您可能需要使用以下命令安装SSH服务器:
sudo apt-get install openssh-server
从客户端上的文件管理器应用程序,您可以使用以下方法访问服务器:
sftp://servername.local
要从终端或以编程方式访问文件,请使用sshfs
来在客户端的文件系统中创建安装点。
scp
和(甚至更好)rsync
。
对于纯Linux网络,我发现SSHFS是本机的,稳定的并且非常快。我有两台Xubuntu计算机(18.04)通过SSH共享/ home文件夹。
这是设置此sshfs的方法,并在重启后使用fstab自动重新连接而无需提供密码。非常感谢serverfault用户kubanczyk在远程挂起/恢复后如何重新连接。
对于要连接的计算机,我将使用“本地计算机-surfbox”,对于要连接的计算机,将使用“远程计算机-devbox”。
将下面的“ remoteuser”替换为您在远程计算机上登录的用户名,将“ localuser”替换为您在本地计算机上登录的用户名。要验证用户名echo $USER
,请在远程和本地计算机上输入终端。
另外,请检查您的userID或groupID,它们都应为1000。
组ID:id -g localuser
用户ID:id -u localuser
hostname -I
我将对本地计算机('surfbox')使用192.168.1.150,对远程计算机('devbox')使用192.168.1.151
sudo apt install sshfs fuse ssh
创建组: sudo groupadd fuse
将localuser添加到组: sudo usermod -a -G fuse $user
在fstab中挂载时,我们将需要此选项
编辑/etc/fuse.conf
您的命令行编辑器。之前删除#标签user_allow_other
并保存。
提示时不要提供密码。只需按Enter键即可。
ssh-keygen -t rsa -C youremail@example.com
密钥存储在本地计算机主目录/.ssh文件夹中
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
系统将提示您输入远程计算机上远程用户的密码。现在,本地计算机公钥已添加到远程计算机上的文件〜/ .ssh / authorized_keys中。
选择对您的远程计算机有意义的任何名称。
sudo mkdir /mnt/devboxhome
sshfs的语法是
sshfs [user@]host:[directory] mountpoint [options]
我们用
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
示例:假定“ steve”是本地和远程计算机上的用户名
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
由于已将公共RSA密钥转移到远程计算机,因此不会提示您输入远程用户密码。
您将得到一条警告,指出该机器不受信任,并提示是否应添加该机器。将远程计算机添加为受信任的计算机。
现在,在本地计算机上的终端中,您可以在/ mnt / devboxhome下列出远程计算机/ home目录。
cd /mnt/devboxhome
ls
或使用Nautilus浏览目录。大。
我们将在/ etc / fstab中添加一个条目以实现此目的。您将需要本地计算机用户ID或组ID-如果错过了此信息,请参阅介绍。使用命令行编辑器编辑/ etc / fstab并将这两行添加到/ etc / fstab的末尾
# Mount devbox at boot
remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
ServerAliveCountMax
连续的ping操作失败,请重新连接。以史蒂夫身份登录本地和远程计算机的用户将具有:
steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
重要说明:远程目录后的斜杠:steve@192.168.1.151:/ home / steve /
保存/ etc / fstab并...
现在,您应该能够访问本地计算机/ mnt / devboxhome中的远程计算机/ home目录。在Nautilus中,您可以将该文件夹拖到位置栏。
在远程计算机上再次执行相同的步骤,以共享本地计算机的/ home目录。
我共享文件的方式:
sudo npm install -g http-server
转到您要共享的文件夹,打开终端并运行以下命令:
http-server -o
您将能够使用该命令的输出提到的IP地址访问同一网络中所有计算机中的该文件夹。
zx81roadkill是正确的,请使用“ sshfs”。Samba是废话,NFS是垃圾。从我在加利福尼亚的计算机到阿根廷的计算机,Sshfs完全可用。它是完全安全的,它和其他任何东西一样快(我有一个千兆位线)。
与Samba和NFS相比,Sshfs相对较新,但是远远优于这两个。这是一个运行它的示例(假设您已经安装了所有软件包)
# mount "username"'s home directory on "machine"
mkdir -p /tmp/my_mount ; sshfs username@machine: /tmp/my_mount
# mount the root directory on "machine" (note: if "username" on "machine"
# can't write to the file, neither will you. You have "username"'s privs
mkdir -p /tmp/my_mount ; sshfs username@machine:/ /tmp/my_mount
# mount the directory "Videos" on "username"'s account on "machine"
mkdir -p /tmp/my_mount ; sshfs username@machine:Videos /tmp/my_mount
输入密码后,/ tmp / my_mount将包含“计算机”上“用户名”的所有文件。不要为Samba或NFS烦恼。它们只是配置或设置过程中毫无意义的痛苦。
卸载:
fusermount -u /tmp/my_mount
如果失败(出于任何原因):
umount -f /tmp/my_mount
通过安装点发送的所有数据均已加密。为什么这不是在远程机器上进行挂载的标准方法,却不是完全可以接受的方法,这对我来说还是个谜。就简单性而言,它远远优于其他任何方法。
如果您需要原始速度,那that肿的垃圾Samba可能会做到这一点,或者是NFS。我不知道,100 MB / s +对我而言已经足够了。