温馨提示×

centos文件共享怎样实现

小樊
55
2025-09-20 02:14:00
栏目: 智能运维

一、使用Samba实现CentOS文件共享(适用于Windows/Linux跨平台共享)
Samba是CentOS上最常用的文件共享服务,支持与Windows、Linux、macOS等系统无缝通信,以下是详细配置步骤:

1. 安装Samba及相关组件

通过YUM/DNF包管理器安装Samba主程序、客户端工具及通用配置文件:

sudo yum install samba samba-client samba-common -y  # CentOS 7
sudo dnf install samba samba-client samba-common -y  # CentOS 8/Stream

安装完成后,Samba服务不会自动启动,需后续手动开启。

2. 创建共享目录并设置基础权限

选择需要共享的目录(如/srv/samba/my_share),创建目录并赋予初始权限(生产环境建议细化权限,避免过度开放):

sudo mkdir -p /srv/samba/my_share
sudo chmod -R 777 /srv/samba/my_share  # 临时开放所有权限(测试用)

注意chmod 777仅为测试方便,正式环境中应根据用户需求设置最小权限(如770)。

3. 配置Samba共享参数

编辑Samba主配置文件/etc/samba/smb.conf(建议先备份):

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf

在文件末尾添加共享定义(以my_share为例):

[my_share]
    comment = My Personal Shared Folder  # 共享描述
    path = /srv/samba/my_share           # 共享目录路径
    browseable = yes                     # 是否允许浏览
    writable = yes                       # 是否可写
    valid users = user1 user2 @mygroup   # 允许访问的用户/组(需提前创建)
    create mode = 0664                   # 新建文件权限
    directory mode = 0775                # 新建目录权限

关键参数说明

  • valid users:限制访问用户,提升安全性(避免使用guest ok = yes开放匿名访问);
  • create mode/directory mode:控制共享内文件的默认权限。

4. 创建Samba专用用户并设置密码

Samba用户需为系统用户,且需通过smbpasswd命令添加Samba密码:

sudo useradd user1  # 创建系统用户(若不存在)
sudo smbpasswd -a user1  # 添加Samba用户并设置密码

输入密码后,该用户即可通过Samba访问共享。

5. 启动Samba服务并设置开机自启

启动Samba核心服务(smb)及NetBIOS服务(nmb,可选,用于Windows网络发现):

sudo systemctl start smb
sudo systemctl enable smb  # 开机自启
sudo systemctl start nmb   # 可选
sudo systemctl enable nmb  # 可选

通过systemctl status smb命令检查服务状态,确保无报错。

6. 配置防火墙放行Samba流量

若系统启用了firewalld防火墙,需添加Samba服务规则:

sudo firewall-cmd --permanent --add-service=samba  # 永久放行
sudo firewall-cmd --reload                         # 重新加载规则

若使用iptables,需手动添加端口137-139(UDP/TCP)和445(TCP)规则。

7. 测试Samba共享访问

  • Linux客户端:使用smbclient命令测试连接:
    smbclient //localhost/my_share -U user1
    
    输入密码后,若进入共享目录,说明配置成功。
  • Windows客户端:在文件资源管理器输入\\<CentOS_IP>\my_share,输入Samba用户名和密码即可访问。

8. 常见问题排查

  • 无法连接:检查防火墙是否放行Samba服务,或通过telnet <IP> 445测试端口连通性;
  • 权限不足:确保共享目录权限正确(如chown -R user1:user1 /srv/samba/my_share),且SELinux未阻止访问(临时关闭测试:setenforce 0)。

二、使用NFS实现CentOS文件共享(适用于Linux/Unix系统间共享)
NFS(Network File System)是Linux/Unix系统间的原生共享协议,传输效率高,但不支持Windows系统(需安装NFS客户端)。

1. 安装NFS服务及客户端

在服务端安装nfs-utils(含NFS服务)和rpcbind(RPC端口映射工具):

sudo yum install nfs-utils rpcbind -y  # CentOS 7
sudo dnf install nfs-utils rpcbind -y  # CentOS 8/Stream

安装完成后,启动rpcbind(NFS依赖)和服务端服务:

sudo systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl start nfs-server
sudo systemctl enable nfs-server

2. 创建共享目录并设置权限

选择共享目录(如/mnt/nfs_share),创建目录并设置权限:

sudo mkdir -p /mnt/nfs_share
sudo chmod -R 777 /mnt/nfs_share  # 临时开放权限(测试用)

注意:生产环境中建议将共享目录所有者设置为特定用户(如chown -R nfsuser:nfsuser /mnt/nfs_share)。

3. 配置NFS共享规则

编辑/etc/exports文件(定义共享目录及访问权限):

sudo nano /etc/exports

添加以下内容(以/mnt/nfs_share为例,允许192.168.1.0/24网段访问):

/mnt/nfs_share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)

参数说明

  • rw:允许读写;
  • sync:同步写入磁盘(避免数据丢失);
  • no_root_squash:允许root用户访问(谨慎使用,若不需要可改为root_squash);
  • no_subtree_check:禁用子树检查(提升性能)。

4. 启用NFS共享

导出共享目录,使配置生效:

sudo exportfs -ra

通过showmount -e localhost命令查看已共享的目录,确认配置正确。

5. 配置防火墙放行NFS流量

NFS需要开放多个端口(1112049等),可通过firewalld添加服务规则:

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

6. 客户端挂载NFS共享

在客户端安装nfs-utils

sudo yum install nfs-utils -y  # CentOS 7
sudo dnf install nfs-utils -y  # CentOS 8/Stream

创建挂载点(如/mnt/nfs_client),并挂载共享目录:

sudo mkdir -p /mnt/nfs_client
sudo mount 192.168.1.100:/mnt/nfs_share /mnt/nfs_client  # 替换为服务端IP

可选:将挂载信息添加到/etc/fstab文件,实现开机自动挂载:

192.168.1.100:/mnt/nfs_share /mnt/nfs_client nfs defaults 0 0

安全提示

  • 无论是Samba还是NFS,均需限制访问IP范围(如192.168.1.0/24),避免暴露在公网;
  • 生产环境中避免使用guest ok = yes(Samba)或rw(NFS)开放匿名访问,建议通过用户认证控制权限;
  • 定期检查共享目录权限及服务日志,及时发现异常访问。

0