使用Samba或NFS实现文件共享

本文详细介绍了如何在Linux系统中重启smb服务并使其开机自启,配置firewalld防火墙以允许Samba和NFS服务,以及设置NFS文件共享、挂载和使用autofs实现动态挂载。

//重启服务并加入开机启动项

[root@localhost ~]# systemctl restart smb.service
[root@localhost ~]# systemctl enable smb.service
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.

//关闭iptables防火墙,添加到firewalld防火墙

[root@localhost ~]# iptables -F
[root@localhost ~]# iptables-save
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=samba
success
[root@localhost ~]# firewall-cmd --reload
success

//查看samba共享了哪些目录,可以使用smbclient命令来查看,-U:指定用户名称(用哪位用户挂载了Samba服务,就用哪位用户的身份进行查看);-L:列出共享清单

[root@localhost ~]# smbclient -U linuxprobe -L 192.168.95.128
Enter SAMBA\linuxprobe's password:


    Sharename       Type      Comment
    ---------       ----      -------
    database        Disk      Do not arbitrarily modify the database file
    IPC$            IPC       IPC Service (Samba 4.14.5)
SMB1 disabled -- no workgroup available

Linux挂载共享
//客户端操作
[root@localhost ~]# yum -y install cifs-utils
[root@localhost ~]# mkdir /database
[root@localhost ~]# mount -t cifs -o username=linuxprobe,password=Admin@123456,vers=2.0 //192.168.95.128/database /database
[root@localhost ~]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/sda3                  184G  5.6G  179G   4% /
devtmpfs                    16G     0   16G   0% /dev
tmpfs                       16G   88K   16G   1% /dev/shm
tmpfs                       16G  9.0M   16G   1% /run
tmpfs                       16G     0   16G   0% /sys/fs/cgroup
/dev/sda1                  297M  152M  146M  52% /boot
tmpfs                      3.2G  8.0K  3.2G   1% /run/user/0
//192.168.95.128/database   98G  5.4G   93G   6% /database

//设置开机自启
[root@localhost ~]# vim auth.smb
[root@localhost ~]# chmod 600 auth.smb
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Mar 11 08:28:47 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=924eec88-bdb2-4b5e-b3d2-e1b2e041f475 /                       xfs     defaults        0 0
UUID=14a09840-c0fe-4287-b65f-82347fdfb46b /boot                   xfs     defaults        0 0
UUID=a140d994-6f24-4d0f-9517-5c04a9209187 swap                    swap    defaults        0 0
//192.168.95.128/database                 /database               cifs  credentials=/root/auth.smb        0 0
[root@localhost ~]# mount -a
[root@localhost ~]# cd /database/
[root@localhost database]# ls
redme.txt //Windows共享时写入的文件

NFS(网络文件系统)

//将服务程序添加到firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables-save
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=nfs
success
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=rpc-bind
success
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=mountd
success

//建立NFS文件共享的目录,并设置足够的权限
[root@localhost ~]# mkdir /nfsfile
[root@localhost ~]# chmod -R 777 /nfsfile/
[root@localhost ~]# echo "Welcome to linuxprobe.com" > /nfsfile/readme

NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容

[root@localhost ~]# vim /etc/exports
/nfsfile 192.168.95.*(rw,sync,root_squash)
//重启服务加入开机自启
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl restart nfs-server
[root@localhost ~]# systemctl enable nfs-server
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.

//使用showmount命令查询NFS服务器的远程共享信息
-e:显示NFS服务器的共享列表
-a:显示本机挂载的文件资源的情况
-v:显示版本号

[root@localhost ~]# showmount -e 192.168.95.128
Export list for 192.168.95.128:
/nfsfile 192.168.95.*

//客户端操作
[root@localhost ~]# showmount -e 192.168.95.128
Export list for 192.168.95.128:
/nfsfile 192.168.95.*

[root@localhost ~]# mkdir /nfsfiles
[root@localhost ~]# mount -t nfs 192.168.95.128:/nfsfile /nfsfiles
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/sda3                184G  5.6G  179G   4% /
devtmpfs                  16G     0   16G   0% /dev
tmpfs                     16G   88K   16G   1% /dev/shm
tmpfs                     16G  9.0M   16G   1% /run
tmpfs                     16G     0   16G   0% /sys/fs/cgroup
/dev/sda1                297M  152M  146M  52% /boot
tmpfs                    3.2G   12K  3.2G   1% /run/user/0
192.168.95.128:/nfsfile   98G  5.4G   93G   6% /nfsfiles

[root@localhost ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Mar 11 08:28:47 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=924eec88-bdb2-4b5e-b3d2-e1b2e041f475 /                       xfs     defaults        0 0
UUID=14a09840-c0fe-4287-b65f-82347fdfb46b /boot                   xfs     defaults        0 0
UUID=a140d994-6f24-4d0f-9517-5c04a9209187 swap                    swap    defaults        0 0
192.168.95.128:/nfsfile                   /nfsfiles               nfs     defaults        0 0

autofs自动挂载服务在用户需要使用该文件系统时采取动态挂载,节约网络资源和服务器的硬件资源
autofs主配置文件种写"挂载目录 子配置文件"的格式进行填写。挂载目录是设备挂载的上一级目录。子配置文件需要自定义
[root@localhost ~]# vim /etc/auto.master
#
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
/misc   /etc/auto.misc
/media  /etc/iso.misc

//子配置文件中,应按照"挂载目录 挂载文件类型及权限 :设备名称"格式进行填写
[root@localhost ~]# vim /etc/iso.misc
ios -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
[root@localhost ~]# systemctl start autofs.service
[root@localhost ~]# systemctl enable autofs.service
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
一. Samba 简介 SambaSMB是其缩写) 是一个网络服务器,用于LinuxWindows共享文件之用;Samba 即可以用于WindowsLinux之间的共享文件,也一样用于LinuxLinux之间的共享文件;不过对于LinuxLinux之间共享文件有更好的网络文件系统NFSNFS也是需要架设服务器的; 大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统其它Linux的Sabmba 服务器; 我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说FTP是不一样的。 二. Samba的几个套件,安装及简单配置 sambasamba-client, samba-common 一句 sudo apt-get install samba samba-client 就能全部装上 启动samba也很简单: sudo /etc/init.d/samba start 设置samba的密码, 可以先添加samba用户, 必须是系统用户。 smbpasswd -a yourname 三. 互访 1)windows访问ubuntu windows访问ubuntu很简单, 先在ubuntu上设置共享目录即可, 鼠标右键点目录,选择sharing options, 够选share this folder,需要的话也可以够选下面的allow write 这时在windows的网络邻居中的网络中查找就能找到共享目录了,通过//host也行 2)ubuntu访问windows 第一种:在ubuntu的网络中直接浏览访问 位置->网络,点击界面中windows网络->workgroup,在workgroup组中就可以看到windows计算机名,双击会弹出输入用户名密码的对话框,将我们上面设置smb的用户名密码输入就可以进行访问。 第二种:用ubuntu 系统自带的连接到服务器功能访问 位置->连接到服务器,在服务类型中选择“windows共享”,在服务器中输入windows计算机的ip地址计算机名,点击连接,这样在系统桌面中就会显示一个连接到windows 计算机的文件卷,里面就是windows计算机的共享目录了。 同样在访问的时候要输入smb的用户名密码。 第三种:用mount’挂载windows的共享目录到本地磁盘 首先要在ubuntu系统中建立一个挂载点,在这里我们建立的挂在点为 /mnt/wind 同样在保证网络连接正常,且windows中有共享目录的前提下,进行一下操作 以windows的ip为192.168.0.1,共享文件夹为share为例 命令如下: mount -t smbfs –o username=wangyh,password=123456 //192.168.0.1/share /mnt/wind 有是这样在访问的时候会出现中文乱码的问题,这样我们可以按下面命令来执行,可以解决这个问题 mount -o smbfs -o iocharset=uft8,codepage=cp936,clmask=777,fmask=777,userneme=wangyh,password=123456 //192.168.0.1/share /mnt/wind 注解:usenamepassword都为smb的用户密码,如果要详细了解mount命令,使用man mount在终端查看详细用法 第四种:使用smbclient 命令 一般来讲先列出所有共享目录,命令如下: smbclient –L //192.168.0.1/ -U yourname 输入smb的密码后,将看到共享目录列表。 假设进入共享目录share,命令如下: smbclient //192.168.0.1/share -U yourname 之后将看到一个smb:> 已经进入了smb模式,有些像ftp,敲help可以查看相关命令,get,put可以下载上传文件。 五. 小结 以上几步,对于简单使用ubuntuwindows的文件共享于互访已经足够,更详细的资料可以参考:http://linux.vbird.org/linux_server/0370samba.php#server_pkg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值