[Linux]Network Sharing
Networking Sharing
1 文件共享概述
在企业环境中,网络中的计算机通常不止一台。当需要在这些设备间传输数据时,相较于使用USB驱动器手动复制文件,利用网络文件共享进行数据传输通常是更为高效的方法。
简单文件共享工具:SCP命令
scp
(Secure Copy)命令是一种简便的文件共享工具。它与cp
命令相似,但允许通过网络在不同的主机间安全地复制文件。scp
基于SSH协议工作,所有操作均享有与SSH相同的认证和安全保障。
- 从本地主机复制文件到远程主机
1 |
|
- 从远程主机复制文件到本地主机
1 |
|
- 递归复制本地目录至远程主机
1 |
|
2 文件同步工具:Rsync
除了scp
之外,另一种用于在不同主机间复制数据的工具是rsync
(远程同步)。虽然rsync
与scp
类似,但它具备一项显著的不同:rsync
采用了一种特殊算法,该算法会预先检查目标位置是否已存在相同的数据,并仅传输差异部分。例如,在文件传输过程中若网络中断导致传输中途停止,rsync
不会重新传输所有数据,而是只传输未完成的部分。
此外,rsync
使用校验和验证所传输文件的完整性,这些优化使得rsync
非常适合进行本地或远程目录同步、数据备份以及大量数据传输等操作。
常用rsync
选项:
v
- 详细输出r
- 递归进入子目录h
- 显示人类可读的输出z
- 压缩文件以便于传输,特别适用于速度较慢的连接在同一主机上同步文件
1 |
|
- 从远程主机同步文件到本地主机
1 |
|
- 从本地主机同步文件到远程主机
1 |
|
3 使用Python创建简易HTTP服务器
Python提供了一个极为便捷的工具,用于通过HTTP协议共享文件。这对于快速创建网络共享,使同一网络中的其他设备能够访问非常有用。只需导航至你希望共享的目录,并执行以下命令:
1 |
|
这将启动一个基础的Web服务器,可以通过本地主机地址进行访问。获取运行此命令的机器的IP地址,在另一台设备上,通过浏览器访问http://IP_ADDRESS:8000
来查看共享内容。若在本机访问,则只需在浏览器地址栏输入http://localhost:8000
即可浏览可用文件。
4 使用NFS进行网络文件共享
在Linux环境中,标准的网络文件共享解决方案是NFS(Network File System)。通过NFS,服务器能够跨网络与一个或多个客户端共享目录和文件。
这里不讨论如何创建一个NFS服务器,简单介绍如何设置NFS客户端。
设置NFS客户端
首先,启动NFS客户端服务:
1 |
|
然后,挂载远程NFS目录到本地文件系统:
1 |
|
自动挂载
如果频繁使用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机器访问的网络共享:
安装Samba
更新软件包列表并安装Samba:
1
2$ sudo apt update
$ sudo apt install samba配置
smb.conf
Samba的配置文件位于
/etc/samba/smb.conf
,此文件定义了应共享的目录、访问权限及其他选项。默认的smb.conf
文件包含大量注释示例,可以作为配置参考。1
$ sudo vi /etc/samba/smb.conf
为Samba设置密码
为用户添加Samba密码:
1
$ sudo smbpasswd -a [username]
创建共享目录
1
$ mkdir /my/directory/to/share
重启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 |
|
这种方法允许用户直接访问网络共享中的文件,而无需逐一传输,极大提高了工作效率。