linux服务器间的文件共享

在Linux服务器之间配置共享文件,通常可以采用两种主要的方法:网络文件系统(NFS)和Samba。

一、NFS

1、安装NFS服务
在服务端和客户端上都需要安装NFS服务。使用以下命令安装NFS和相关的工具
在Debian/Ubuntu系统上

#更新软件包列表
sudo apt update
#安装NFS服务器和客户端软件包:nfs-kernel-server提供了NFS服务器的功能,nfs-common包含了NFS客户端和服务器都需要的通用工具和库。
sudo apt install nfs-kernel-server nfs-common

Red Hat/CentOS系统上

yum install -y nfs-utils rpcbind

2、配置防火墙(如果服务器配置了防火墙)
NFS所需端口(通常为111和2049)
对于使用ufw防火墙的Debian/Ubuntu系统,可以使用以下命令:

sudo ufw allow 111/tcp
sudo ufw allow 111/udp
sudo ufw allow 2049/tcp
sudo ufw allow 2049/udp
sudo ufw reload

对于使用firewalld防火墙的Red Hat/CentOS系统,可以使用以下命令:

sudo firewall-cmd --add-port=2049/tcp --permanent
sudo firewall-cmd --add-port=2049/udp --permanent

sudo firewall-cmd --reload

对于iptables防火墙的Red Hat/CentOS系统:

sudo iptables -A INPUT p tcp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 2049 -j ACCEPT
sudo service iptables save
sudo service iptables restart

3、配置共享目录
创建要共享的目录

mkdir /home/share

编辑 /etc/exports 文件,添加共享目录和访问权限,

#其中 192.168.1.191/24 是允许访问NFS服务的网段,rw 表示读写权限,sync 表示数据同步写入磁盘
/home/share 192.168.1.191/24(rw, sync)

#或者 *:表示所有网络中的客户端都可以访问这个共享目录
/home/share *(rw,sync)

4、使配置的共享目录生效

sudo exportfs -a

5、启动NFS服务
在Debian/Ubuntu系统上,可以使用以下命令

sudo systemctl start nfs-kernel-server
#设置NFS服务为开机自启动
sudo systemctl enable nfs-kernel-server

在Red Hat/CentOS系统上,可以使用以下命令

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

6、检查NFS服务状态
在Debian/Ubuntu系统上

sudo systemctl status nfs-kernel-server

在Red Hat/CentOS系统上

sudo systemctl status nfs-server

7、客户端挂载共享

#/home/share 是共享目录   /home/share1 客户端挂载目录
sudo mount -t nfs 服务器IP地址:/home/share /home/share1

8、验证是否挂在共享

#查看挂载的文件系统
df -h

二、Samba

1、安装
在Debian/Ubuntu上安装

sudo apt-get update
sudo apt-get install samba

在CentOS/RHEL上安装

sudo yum install samba

2、设置防火墙(如果有防火墙的话)
开放Samba服务需要用到的端口(139和445)
对于使用firewalld防火墙的Red Hat/CentOS系统,可以使用以下命令:

firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=139/udp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --zone=public --add-port=445/udp --permanent
firewall-cmd --reload

使用iptables防火墙的Red Hat/CentOS系统

sudo iptables -A INPUT -p tcp --dport 137 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 138 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 139 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 445 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4

对于使用ufw防火墙的Debian/Ubuntu系统,可以使用以下命令:

sudo ufw allow 139/udp
sudo ufw allow 445/tcp
sudo ufw reload

3、配置Samba服务端
编辑/etc/samba/smb.conf文件,在文件末尾添加一个名为myShare共享目录的配置,

[myShare]
    comment = Shared Directory
    path = /home/share
    browseable = yes
    read only = no
    guest ok = yes

path 指向你想要共享的目录,browseable 表示该共享是否可在网络邻居中看到,guest ok 表示是否允许匿名访问,read only 表示是否只读

4、创建用户

sudo useradd share   # 创建用户share
sudo smbpasswd -a share   # 为新用户share设置密码

5、创建共享目录并设置权限

sudo mkdir -p /home/share
sudo chmod -R 777 /home/share

6、启动
在Debian/Ubuntu系统,可以使用以下命令:

sudo systemctl start smbd
sudo systemctl enable smbd

Red Hat/CentOS系统

sudo systemctl start smb
sudo systemctl enable smb

7、客户端挂载共享

#192.168.1.191 服务器ip地址  myShare 共享目录名称  username是用于访问共享的用户名
smbclient //192.168.1.191/myShare -U username

也可以

#/home/share是本地挂载点  username和password是用于访问共享的用户名和密码。
sudo mount -t cifs //192.168.1.191/myShare /home/share -o username=用户名,password=密码

8、验证挂载‌

#查看挂载情况
df -h

三、NFS和Samba的区别

1、协议与应用场景‌
‌NFS‌:是TCP/IP协议集提供的一种子协议,主要用于Linux/Unix主机之间的文件共享,局域网内使用较多,设置简单且已成为Linux/Unix的标配‌
‌Samba‌:是一种基于SMB/CIFS协议的文件共享解决方案,支持在Windows、Linux、Unix等多种操作系统之间实现文件共享,包括文件、打印机等,实现跨平台共享‌

‌2、工作效率与兼容性‌
‌NFS‌:工作效率高,更简洁、方便且原生支持UNIX/LINUX系统,兼容性在UNIX/LINUX环境中更好‌
‌Samba‌:由于需要兼容Windows系统,配置相对复杂,但能与Windows系统紧密集成

3、优势
Samba‌主要优势在于其灵活的访问控制机制,支持基于用户和组的权限设置
NFS的主要优势在于其高性能和可扩展性,特别是在大型分布式系统中,NFS可以轻松地实现文件共享和访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值