两台linux 系统之间的NFS共享

本文详细介绍了在CentOS 7系统上搭建NFS服务的过程,包括服务端和客户端的配置步骤,解决防火墙问题,以及如何进行挂载和开机启动设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ENV:

[test@nfs-s ~]$ cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 
[test@nfs-s ~]$ uname -r
3.10.0-514.el7.x86_64


[test@nfs-c ~]$ cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 
[test@nfs-c ~]$ uname -r
3.10.0-514.el7.x86_64

nfs-c 为nfs的客户端,nfs-s为nfs的服务端

实验只有操作过程,没有nfs的工作原理,哪想了解工作原理,请自行百度或google。

实验系统为最小化安装,并没有nfs组件,在系统上安装nfs-utils服务组件

[root@nfs-s ~]# yum -y install nfs-utils

[root@nfs-c ~]# yum -y install nfs-utils

服务端操作:

[root@nfs-s ~]# mkdir /public
[root@nfs-s ~]# chmod -Rf 777 /public
[root@nfs-s ~]# vi /etc/exports
/public 192.168.56.*(rw,sync,root_squash)

[root@nfs-s ~]# systemctl restart rpcbind
[root@nfs-s ~]# systemctl enable rpcbind
[root@nfs-s ~]# systemctl start nfs-server
[root@nfs-s ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
配置NFS服务程序配置文件的参数:
    参数 	                作用
    ro 	                只读
    rw 	                读写
    root_squash 	当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
    no_root_squash 	当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
    all_squash 	        无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
    sync 	        同时将数据写入到内存与硬盘中,保证不丢失数据
    async 	        优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

客户端操作:

[root@nfs-c ~]# showmount -e 192.168.56.6
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

这个错误是因为服务端没有把防火墙关闭,centos7之后防火墙不再使用iptables ,而是使用firewalld,要在服务端操作:

[root@nfs-s ~]# iptables -F
[root@nfs-s ~]# service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
[root@nfs-s ~]# systemctl disable iptables
Failed to execute operation: No such file or directory

centos7之后不再使用iptables,要使用firewalld

[root@nfs-s ~]# systemctl stop firewalld
[root@nfs-s ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

继续客户端:

[root@nfs-c ~]# showmount -e 192.168.56.6
Export list for 192.168.56.6:
/public 192.168.56.*
[root@nfs-c ~]# mkdir /mnt/public
[root@nfs-c ~]# mount -t nfs 192.168.56.6:/public /mnt/public //临时挂载,要想开机启动,加入fstab中实现
[root@nfs-c ~]# vi /etc/fstab 
192.168.56.6:/public /mnt/public nfs defaults 0 0

查看下挂载:

[root@nfs-c ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/cl-root    17G  1.3G   16G   8% /
devtmpfs              910M     0  910M   0% /dev
tmpfs                 920M     0  920M   0% /dev/shm
tmpfs                 920M  8.4M  912M   1% /run
tmpfs                 920M     0  920M   0% /sys/fs/cgroup
/dev/sda1            1014M  139M  876M  14% /boot
tmpfs                 184M     0  184M   0% /run/user/1000
192.168.56.6:/public   17G  1.3G   16G   8% /mnt/public

 

两台 Linux 系统之间实现文件互相访问,有多种方法可以实现,具体选择取决于使用场景、网络环境以及对性能和安全性的要求。以下是几种常见且实用的方案: ### 1. 使用 `scp` 命令进行安全复制 `scp`(secure copy)命令可以在本地与远程主机之间安全地复制文件,基于 SSH 协议加密传输,适用于一次性或脚本中调用的文件传输需求。 ```bash # 将本地文件复制到远程Linux系统 scp /path/to/local/file user@remote_host:/path/to/remote/directory # 从远程Linux系统复制文件到本地 scp user@remote_host:/path/to/remote/file /path/to/local/directory ``` 此方式适合小规模文件传输,并确保数据在传输过程中的安全性[^2]。 --- ### 2. 配置 `rsync` 实现高效同步 `rsync` 是一个快速、多功能的文件同步工具,支持增量备份和远程同步,非常适合定期同步两个 Linux 系统之间的文件。 ```bash # 从本地同步到远程系统 rsync -avz /path/to/local/dir user@remote_host:/path/to/remote/dir # 从远程系统同步到本地 rsync -avz user@remote_host:/path/to/remote/dir /path/to/local/dir ``` 参数说明: - `-a`:归档模式,保留权限、时间戳等属性; - `-v`:显示详细信息; - `-z`:压缩传输数据以提高效率。 该方式适合需要频繁更新或大量数据同步的场景。 --- ### 3. 搭建 NFS(Network File System)共享目录 NFS 是一种分布式文件系统协议,允许一台 Linux 系统将某个目录挂载为远程系统的本地目录,实现透明访问。 #### 在服务端配置 NFS 共享: 编辑 `/etc/exports` 文件,添加如下内容: ``` /path/to/shared_directory client_ip(rw,sync,no_subtree_check) ``` 然后重启 NFS 服务: ```bash sudo systemctl restart nfs-kernel-server ``` #### 在客户端挂载 NFS 共享: ```bash sudo mount remote_host:/path/to/shared_directory /mnt/local_mount_point ``` 这种方式适合局域网内长期稳定的文件共享需求,具有高性能和低延迟的特点。 --- ### 4. 使用 Samba 实现跨 Linux 系统访问 虽然 Samba 主要用于 Linux 与 Windows 之间的文件共享,但也可以用于 LinuxLinux 系统之间的文件访问。Samba 提供了 CIFS/SMB 协议的支持,用户可以通过图形界面或命令行访问共享资源。 #### 安装并配置 Samba: 在服务端安装 Samba 并配置共享目录: ```bash sudo apt install samba sudo nano /etc/samba/smb.conf ``` 添加如下配置段落: ``` [shared] path = /path/to/shared_directory available = yes valid users = user read only = no browsable = yes ``` 重启 Samba 服务后,在客户端使用以下命令挂载: ```bash sudo mount -t cifs //remote_host/shared /mnt/local_mount_point -o user=username,password=password ``` 该方式适合希望通过标准网络协议实现共享的场景,尤其适用于混合操作系统环境[^3]。 --- ### 5. 利用 SSHFS 挂载远程文件系统 SSHFS(SSH Filesystem)是一个基于 FUSE 的文件系统模块,它允许将远程 Linux 系统的目录挂载为本地文件系统的一部分,所有操作均通过 SSH 加密通道完成。 #### 安装并使用 SSHFS: ```bash sudo apt install sshfs sshfs user@remote_host:/remote/path /local/mount/point ``` 卸载时使用: ```bash fusermount -u /local/mount/point ``` 该方式适合需要实时访问远程文件系统并且注重安全性的场景,特别适合开发调试和临时性任务。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值