[Linux]Network Sharing

Networking Sharing

1 文件共享概述

在企业环境中,网络中的计算机通常不止一台。当需要在这些设备间传输数据时,相较于使用USB驱动器手动复制文件,利用网络文件共享进行数据传输通常是更为高效的方法。

简单文件共享工具:SCP命令

scp(Secure Copy)命令是一种简便的文件共享工具。它与cp命令相似,但允许通过网络在不同的主机间安全地复制文件。scp基于SSH协议工作,所有操作均享有与SSH相同的认证和安全保障。

  • 从本地主机复制文件到远程主机
1
$ scp myfile.txt username@remotehost.com:/remote/directory
  • 从远程主机复制文件到本地主机
1
$ scp username@remotehost.com:/remote/directory/myfile.txt /local/directory
  • 递归复制本地目录至远程主机
1
$ scp -r mydir username@remotehost.com:/remote/directory

2 文件同步工具:Rsync

除了scp之外,另一种用于在不同主机间复制数据的工具是rsync(远程同步)。虽然rsyncscp类似,但它具备一项显著的不同:rsync采用了一种特殊算法,该算法会预先检查目标位置是否已存在相同的数据,并仅传输差异部分。例如,在文件传输过程中若网络中断导致传输中途停止,rsync不会重新传输所有数据,而是只传输未完成的部分。

此外,rsync使用校验和验证所传输文件的完整性,这些优化使得rsync非常适合进行本地或远程目录同步、数据备份以及大量数据传输等操作。

常用rsync选项:

  • v - 详细输出

  • r - 递归进入子目录

  • h - 显示人类可读的输出

  • z - 压缩文件以便于传输,特别适用于速度较慢的连接

  • 在同一主机上同步文件

1
$ rsync -zvr /my/local/directory/one /my/local/directory/two
  • 从远程主机同步文件到本地主机
1
$ rsync username@remotehost.com:/remote/directory /local/directory
  • 从本地主机同步文件到远程主机
1
$ rsync /local/directory username@remotehost.com:/remote/directory

3 使用Python创建简易HTTP服务器

Python提供了一个极为便捷的工具,用于通过HTTP协议共享文件。这对于快速创建网络共享,使同一网络中的其他设备能够访问非常有用。只需导航至你希望共享的目录,并执行以下命令:

1
$ python -m http.server

这将启动一个基础的Web服务器,可以通过本地主机地址进行访问。获取运行此命令的机器的IP地址,在另一台设备上,通过浏览器访问http://IP_ADDRESS:8000来查看共享内容。若在本机访问,则只需在浏览器地址栏输入http://localhost:8000即可浏览可用文件。

4 使用NFS进行网络文件共享

在Linux环境中,标准的网络文件共享解决方案是NFS(Network File System)。通过NFS,服务器能够跨网络与一个或多个客户端共享目录和文件。

这里不讨论如何创建一个NFS服务器,简单介绍如何设置NFS客户端。

设置NFS客户端

首先,启动NFS客户端服务:

1
$ sudo service nfs-client start

然后,挂载远程NFS目录到本地文件系统:

1
$ sudo mount -t nfs server:/directory /mount_directory

自动挂载

如果频繁使用NFS服务器,并希望实现永久性挂载,直接编辑/etc/fstab文件可能导致开机时因无法连接至服务器而出现问题。为避免这种情况,建议配置自动挂载功能。这一功能可通过automount工具或较新版本Linux中的amd来实现。当访问特定目录下的文件时,自动挂载工具将查找远程服务器并自动完成挂载操作。

5 使用Samba实现跨平台文件共享

在计算技术发展的早期,Windows与Linux系统之间需要进行文件共享,这就催生了服务器消息块(Server Message Block, SMB)协议。该协议最初用于Windows操作系统间的文件共享(Mac系统也支持通过SMB共享文件),随后演变为更优化的通用互联网文件系统(Common Internet File System, CIFS)协议。

Samba是实现Linux系统中CIFS兼容性的实用工具集,除了文件共享外,还可以共享如打印机等资源。

创建Samba网络共享

以下步骤简要介绍了如何创建一个可供Windows机器访问的网络共享:

  1. 安装Samba

    更新软件包列表并安装Samba:

    1
    2
    $ sudo apt update
    $ sudo apt install samba
  2. 配置smb.conf

    Samba的配置文件位于/etc/samba/smb.conf,此文件定义了应共享的目录、访问权限及其他选项。默认的smb.conf文件包含大量注释示例,可以作为配置参考。

    1
    $ sudo vi /etc/samba/smb.conf
  3. 为Samba设置密码

    为用户添加Samba密码:

    1
    $ sudo smbpasswd -a [username]
  4. 创建共享目录

    1
    $ mkdir /my/directory/to/share
  5. 重启Samba服务

    1
    $ sudo service smbd restart

访问Samba共享

  • 从Windows访问

    在运行对话框中输入网络路径以访问共享:\\HOST\sharename

  • 从Linux访问Samba或Windows共享

    使用Samba包中的命令行工具smbclient访问任何Windows或Samba服务器:

    1
    $ smbclient //HOST/directory -U user

    连接到共享后,即可浏览和传输文件。

挂载Samba共享

为了更高效地管理文件,可以将网络共享挂载到本地系统:

1
$ sudo mount -t cifs servername:directory mountpoint -o username=user,password=pass

这种方法允许用户直接访问网络共享中的文件,而无需逐一传输,极大提高了工作效率。


[Linux]Network Sharing
https://erlsrnby04.github.io/2025/03/22/Linux-Network-Sharing/
作者
ErlsrnBy04
发布于
2025年3月22日
许可协议