在Linux系统中配置网络共享可以让多台设备便捷地访问同一份文件资源,常见的实现方案有Samba和NFS两种,分别适用于不同的使用场景。

Samba配置网络共享(跨系统适用)
Samba服务可以让Linux系统共享的文件被Windows、macOS等系统直接访问,适合混合系统的使用环境。
1. 安装Samba服务
首先根据系统的包管理器安装Samba相关组件,以Ubuntu/Debian系统为例,执行以下命令:
# 更新软件源 sudo apt update # 安装Samba服务 sudo apt install samba samba-common
2. 创建共享目录和设置权限
先创建需要共享的目录,然后设置对应的访问权限,避免后续出现权限不足的问题:
# 创建共享目录,路径可以自定义 sudo mkdir -p /home/share # 设置目录所有者为当前用户 sudo chown -R $USER:$USER /home/share # 设置目录读写权限 sudo chmod 777 /home/share
3. 修改Samba配置文件
Samba的主配置文件是/etc/samba/smb.conf,在文件末尾添加共享配置段:
# 备份原配置文件 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak # 编辑配置文件 sudo nano /etc/samba/smb.conf
在文件末尾添加以下内容:
[public_share] comment = Public Share Directory path = /home/share browseable = yes writable = yes guest ok = yes create mask = 0666 directory mask = 0777
4. 设置Samba用户密码并启动服务
如果需要限制访问用户,可以添加Samba用户,然后启动并设置服务开机自启:
# 添加当前用户为Samba用户,按提示设置密码 sudo smbpasswd -a $USER # 重启Samba服务 sudo systemctl restart smbd # 设置开机自启 sudo systemctl enable smbd
5. 客户端访问共享
Windows客户端可以在文件资源管理器地址栏输入\Linux_IPpublic_share访问,Linux客户端可以执行以下命令挂载:
# 安装Samba客户端工具 sudo apt install smbclient # 查看共享列表 smbclient -L //Linux_IP -U $USER # 挂载共享到本地目录 sudo mkdir -p /mnt/samba_share sudo mount -t cifs //Linux_IP/public_share /mnt/samba_share -o username=$USER
NFS配置网络共享(Linux系统间适用)
NFS是Linux系统原生的网络文件共享协议,性能比Samba更好,适合纯Linux环境使用。
1. 安装NFS服务
服务端和客户端都需要安装对应的NFS组件:
# 服务端安装 sudo apt install nfs-kernel-server # 客户端安装 sudo apt install nfs-common
2. 配置NFS共享目录
编辑NFS的配置文件/etc/exports,添加共享规则:
# 编辑配置文件 sudo nano /etc/exports
在文件中添加以下内容,其中*表示允许所有IP访问,也可以替换为指定网段如192.168.1.0/24:
/home/share *(rw,sync,no_subtree_check)
3. 启动NFS服务并导出共享
配置完成后启动服务并导出共享目录:
# 重启NFS服务 sudo systemctl restart nfs-kernel-server # 设置开机自启 sudo systemctl enable nfs-kernel-server # 导出共享目录 sudo exportfs -a
4. 客户端挂载NFS共享
Linux客户端执行以下命令挂载NFS共享:
# 创建本地挂载点 sudo mkdir -p /mnt/nfs_share # 挂载远程共享 sudo mount Linux_IP:/home/share /mnt/nfs_share # 查看挂载状态 df -h
两种方案对比
以下是两种网络共享方案的特点对比,可以根据实际需求选择:
| 方案 | 适用场景 | 优势 | 不足 |
|---|---|---|---|
| Samba | Windows、macOS、Linux混合环境 | 兼容性好,支持跨系统访问 | 性能略低于NFS |
| NFS | 纯Linux系统环境 | 原生协议,性能优异 | 不支持Windows、macOS原生访问 |
常见问题排查
- 如果客户端无法访问共享,先检查服务端防火墙是否开放对应端口,Samba默认端口是139、445,NFS默认端口是2049。
- 出现权限不足问题时,检查共享目录的本地权限和配置文件中的权限设置是否匹配。
- 挂载失败时可以查看
/var/log/syslog日志,定位具体的错误原因。