7 linux nfs服务
2017-09-06 22:01:37 genglei1022 阅读数 216

一、NFS简介:

      NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件协定,有SUN公司开发。功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。

NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。

为了共享和加载NFS文件系统,下面的服务要一起工作:

* nfs - 启动相应RPC服务进程来服务对于NFS文件系统的请求.
* nfslock - 一个可选的服务,用于启动相应的RPC进程,允许NFS客户端在服务器上对文件加锁.
* portmap - Linux的RPC服务,它响应RPC服务的请求和与请求的RPC服务建立连接.

二、安装NFS服务:

     检查是否安装:    rpm -qa nfs-utils rpcbind  

             安装               yum -install -y  rpcbind 

                                    yum install  -y   nfs-utils

三、编辑配置文件:

            NFS默认配置文件路径是:/etc/exports文件默认是空的。

          /etc/exports配置文件的格式是:
          NFS共享的目录    NFS客户端地址(参数1,参数2,参数3 .........)

        例如:/srv/nfs  192.168.1.0/24 (rw,sync) 

         rw:read-write,可读写;

         ro:read-only,只读;

         sync:代表数据同步写入NFS服务器端的硬盘中;

         async:文件暂存于内存(是先写到缓存区,再写到磁盘里),而不是直接写入内存;

         no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

         root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

         all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

         anonuid:匿名用户的UID值,可以在此处自行设定。

         anongid:匿名用户的GID值。


四、 启动NFS服务

                 systemctl  restart nfs   或 service restart nfs 

                 systemctl  restart rpmbind 或 service restart  rpmbind 

                 systemctl stop firewalld  (关闭防火墙)

                 rpcinfo -p 192.168.1.59   #查看NFS服务向rpc注册的端口信息,主端口号是:111;

五、配置开机是否自启动

                 chkconfig nfs on

                 chkconfig rpcbind on
六、验证NFS服务端

                showmount -e 192.168.1.59  

                 显示如下就表示正确:

                Export list for 192.168.1.59:
                /srv/nfs 192.168.1.0/24


七、挂载,文件共享

           mount -t  nfs 192.168.1.59 :/srv/    /mnt 

八、查看是否挂载成功了

        df -h
      显示如下就表示正确:

      192.168.1.59 :/srv/  8.8G  1.5G  7.0G  18% /mnt




2018-05-07 01:08:45 qq_20332637 阅读数 77

Win7 旗舰版和企业版自带NFS客户端,打开控制面板找到“打开或关闭windows功能”。勾选NFS确定之后即可使用。
windows7 nfs

需要注意的是,win7没有windows server 2008和其他版本的一些服务,比如用户名映射,Active Directory 域服务,这必然导致权限问题,之后会讲解决办法。

打开cmd就可以挂载NFS了,我服务器用的VMware下的Cenos,共享了一个web目录,所有权限是nginx的权限uid=499 gid=498,这个一会会用到。服务器就共享了一个目录

#/etc/exports
/srv/www_root/ *(rw,async,insecure,anonuid=499,anongid=498,no_root_squash)

记得将linux 机器的防火墙关掉,否则连接不成功;也可以再防火墙中开通nfs 通讯的端口(本人暂时没有试验成功)

C:\Users\ares>mount -o anon mtype=soft lang=ansi \\192.168.137.10\srv\www_root\ g:\
g: 现已成功连接到 \\192.168.137.10\srv\www_root\

命令已成功完成。

C:\Users\ares>

“mount /?” 可以查看具体的选项。这里一定要用软装载模式(mtype=soft),因为NFS由于种种原因经常服务不可用如果硬装载就会导致资源管理器等停止响应,还可以指定创建新文件的模式(比如 fileaccess=777)。如上所示192.168.137.10这台服务器上的目录已经挂载到了g盘,cmd下继续输入mount命令查看已经挂载的文件系统

C:\Users\ares>mount

本地    远程                                 属性
-------------------------------------------------------------------------------
g:       \\192.168.137.10\srv\www_root\         UID=-2, GID=-2
                                                rsize=32768, wsize=32768
                                                mount=soft, timeout=0.8
                                                retry=1, locking=yes
                                                fileaccess=755, lang=ANSI
                                                casesensitive=no
                                                sec=sys

UID和GID都是-2,这样肯定导致权限的问题,到G:\ 随便创建一个新文件,然后回到192.168.137.10上 ll 查看这个文件,会发现uid和gid是一个很大的数值,修改windows客户端的uid和gid就能解决问题,但是win7没有用户名映射,Active Directory 域服务,这时候只有修改注册表才能解决这个问题。找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default,添加两个REG_DWORD值,我的服务端用的是nginx所以填的nginx的uid和gid,也可以省事直接填root(uid=gid=0),重启计算机使其生效,再执行mount命令uid和gid就变成了注册表中设置的值,毕竟不是windows server,只能设置单一的权限。

我直接把以前所有win7上的网站都考了过去 

返回linux查看权限

爽啊确实是nginx的权限,这次不用在本机和测试机维护两份相同的代码了,最重要的是新挂载的G:\在使用上和本地文件系统没有任何区别!随便选一个文件或目录点击右键有一个“NFS属性”标签可以修改文件或目录的模式。在windows管理工具中还有一个“Network File System 服务(NFS)”的东东,里面有个帮助文档可以看看。

在windows下除了不能动态修改uid和gid还有一个问题,不支持utf8编码!如果linux用的GB2312的话通过 ”mount -o lang=gb2312-80“ 可以解决,utf8我还真不知道怎么办。另外svn的状态图标也不能显示,隐藏文件总是会显示出来。相对于这些缺点,我想NFS的一个重要优点就是可以跨网段,局域网跨系统还是不要用这个了,可以用Samba,这里有详细安装配置过程http://linux.vbird.org/linux_server/0370samba.php 。

如果用的VMware实现共享还有一种更好的方式,给VMware设置共享文件夹,linux访问共享文件夹不仅不会乱码而且不会有权限问题,因为默认共享文件都是0777权限,而且好像只能属于root用户。首先在虚拟机中安装VMwareTools,然后WMware中设置一个共享文件夹(比较简单就不罗嗦了),设置完之后共享文件夹已经挂载到 /mnt/hgfs/ 目录中了,可以很自然的想到这种共享方式速度最快。
安装VMWare Tools需要注意的问题请看这里

2015-08-25 22:39:00 weixin_30790841 阅读数 0

Windows 7中加入了NFS 客户端功能,可以通过控制面板中的“程序和功能”->“打开和关闭Windows功能”-> "NFS服务"
来开启,当然默认下Telnet客户端也是无效的,也可以在这里打开。安装完成后,就可以在Windows的命令行窗口中通过mount
以及showmount命令使用NFS的共享了。

C:\>showmount /?
用法: showmount -e [server]
showmount -a [server]
showmount -d [server]

C:\>mount /?
用法: mount [-o options] [-u:username] [-p:] <\\computername\sharename>

-o rsize=size 设置读取缓冲区的大小(以 KB 为单位)。
-o wsize=size 设置写入缓冲区的大小(以 KB 为单位)。
-o timeout=time 设置 RPC 调用的超时值(以秒为单位)。
-o retry=number 设置软装载的重试次数。
-o mtype=soft|hard 设置装载类型。
-o lang=euc-jp|euc-tw|euc-kr|shift-jis|big5|ksc5601|gb2312-80|ansi
指定用于文件和目录名称的编码。
-o fileaccess=mode 指定文件的权限模式。
这些模式用于在 NFS 服务器上创建的
新文件。使用 UNIX 样式模式位指定。
-o anon 作为匿名用户装载。
-o nolock 禁用锁定。
-o casesensitive=yes|no 指定在服务器上执行区分大小写的文件查找。
-o sec=sys|krb5|krb5i

简单的例子:
C:\Windows\SUA\bin>showmount -enfs_serv1
导出列表在nfs_serv1:
/vol/volz 所有计算机
/vol/volx 所有计算机
/vol/Do_NOT_Delete 所有计算机
/vol/vol7 所有计算机
/vol/vol0 nfs_cli1
/vol/vol0/home 所有计算机
/vol/isan 所有计算机
/vol/vsc 所有计算机
/vol/nfs_smvi nfs_cli1
/vol/vol_t1 所有计算机

C:\>mount \\nfs_serv1\vol\vol0 Z:
Z: 现已成功连接到 \\nfs_serv1\vol\vol0

需要注意的是,mount point和Linux和UNIX有所不同,不是使用一个目录作为挂载点,而是使用一个未使用的盘符。
例如上例中的"Z:"。这样就可以通过Z:盘访问你的共享了。非常方便。比起CIFS的方式更加快捷。

使用完后,可以用umount命令卸载共享。
C:\Users\leiz>umount

用法: [-f] <-a | drive_letters | network_mounts>

-a 删除所有 NFS 网络装入点
-f 强制删除 NFS 网络装入点

C:\Users\leiz>umount Z:

正在断开 Z: \\nfs_serv1\vol\vol0
连接上存在打开的文件和/或未完成的目录搜索。

要继续此操作吗? (Y/N) [N]:y

命令已成功完成。

C:\Users\leiz>mount

本地 远程 属性
-------------------------------------------------------------------------------
Z: \\10.128.132.175\vol\vol0 UID=-2, GID=-2
rsize=32768, wsize=32768
mount=soft, timeout=1.6
retry=1, locking=yes
fileaccess=755, lang=GB2312-80
casesensitive=no
sec=sys

转载于:https://www.cnblogs.com/xmnn1990/p/4758919.html

2019-03-22 22:39:40 weixin_33860528 阅读数 2

在前面介绍了怎么在Windows server 2016中搭建DHCP服务, 我们今天介绍如何在Linux / CentOS 7操作系统中搭建DHCP服务?
跟在Windows server 2016中差不多,接下来我们一步一步来
1.打开CentOS7 的服务器,首先确定IP地址,通过“ifconfig”查询本机的IP地址
Linux / CentOs 7搭建DHCP服务
通过查询只发现Mac地址,并未发现IP地址
2.我们通过更改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33来修改IP地址,使用vim编辑器打开
Linux / CentOs 7搭建DHCP服务

3.更改配置文件,如图
Linux / CentOs 7搭建DHCP服务
以上没有勾选解释的保持默认就好,子网掩码NETMASK=加子网掩码,网关GATEWAY=加网关地址就好,修改完成之后,保存退出就好。
4.重启网卡服务
Linux / CentOs 7搭建DHCP服务
5.重启网卡之后,再次通过ifconfig ens33查看ens33的IP地址
Linux / CentOs 7搭建DHCP服务
6.接下来挂载系统盘,安装dhcp软件包
Linux / CentOs 7搭建DHCP服务
7.编写dhcp的配置文件
Linux / CentOs 7搭建DHCP服务
Linux / CentOs 7搭建DHCP服务
Linux / CentOs 7搭建DHCP服务
只修改划线的,保存退出就好,其他的尽量不要修改,否则会导致dhcp服务可能会启动失败
Linux / CentOs 7搭建DHCP服务
没报错误就表示启动成功
Linux / CentOs 7搭建DHCP服务
接下来验证DHCP分配的地址
Linux / CentOs 7搭建DHCP服务
Linux / CentOs 7搭建DHCP服务
Linux / CentOs 7搭建DHCP服务
通过验证,IP获取成功
linux主机可以通过“dhclient -d ens33”可以为主机重新获取新的IP地址;
通过“dhclient -r ens33”释放IP地址;
通过“hostnamectl -set hostname 主机名”可以永久使用主机名;
使用“bash”命令立即生效;
通过“route add default gw IP地址”添加默认网关;
通过“route del default gw IP地址”删除默认网关。
通过“traceroute IP地址”可以测试从当前主机到目的主机经过的网络节点
通过查看“/etc/resolv.conf”了解本机的默认DNS地址,对该文件的修改保存退出后会立即生效,不用重启系统(这是获取IP地址的linux主机自动获取的DNS服务器地址)
Linux / CentOs 7搭建DHCP服务
linux操作主机默认最多三个DNS服务器地址(第三个以后会被忽略)优先使用第一个DNS地址。
通过“netstat -anpt”查看网络连接情况
Linux / CentOs 7搭建DHCP服务
Windows主机通过“ipconfig /renew”可以为主机重新获取新的IP地址 通过“ipconfig /release” 释放IP地址;
通过“tracert IP地址”可以测试从当前主机到目的主机经过的网络节点;
通过“route print”查看路由表
Linux / CentOs 7搭建DHCP服务
希望我们可以在学习的道路上共同进步!!!

转载于:https://blog.51cto.com/14157628/2367594

没有更多推荐了,返回首页