在Ubuntu下搭建文件服务

在Ubuntu下搭建NFS文件服务,NFS是一种通用的网络文件系统。可以在计算机中很方便的挂载,读取或者写入。如果需要HTTP协议进行读写文件,那么可以参考这里

Ubuntu版本号:19.04

1、安装NFS服务

apt install nfs-kernel-server

2、编辑导出规则

nano /etc/exports

NFS3.x示例:

/srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)

NFS4.x示例:

/srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)

其中常用的几个设置:

参数作用
ro该主机对该共享目录有只读权限
rw该主机对该共享目录有读写权限
sync资料会先暂存于内存中,而非直接写入硬盘
async允许从这台机器过来的非授权访问

3、设置文件权限(可选)

chown nobody:nogroup /var/nfs/general

注意,如果导出的目录权限不是nobody:nogroup,那么导出后,不管你在配置文件中配置的是读写,都不允许客户端通过nfs写入。

4、重启服务

systemctl restart nfs-kernel-server

重新配置导入导出的项目:

exportfs -rv

5、显示NFS共享的项

showmount -e localhost

配置防火墙需要自定义端口,不能是动态端口
自定义端口配置步骤:

1、编辑/etc/defaults/nfs-kernel-server

原始文件内容:

# Number of servers to start up
RPCNFSDCOUNT=8
# Runtime priority of server (see nice(1))
RPCNFSDPRIORITY=0
# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS
# To disable NFSv4 on the server, specify '--no-nfs-version 4' here
RPCMOUNTDOPTS="--manage-gids"
# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
NEED_SVCGSSD=""
# Options for rpc.svcgssd.
RPCSVCGSSDOPTS=""
# Options for rpc.nfsd.
RPCNFSDOPTS=“”

找到这行,改为:

RPCMOUNTDOPTS="--manage-gids -p 2000”

2、编辑/etc/sysctl.d/30-nfs-ports.conf,指定内容为:

fs.nfs.nlm_tcpport = 2001
fs.nfs.nlm_udpport = 2002

3、防火墙配置

Tcp和Udp都开放的端口:111、2049、2000
配置仅Tcp开放的端口:2001
配置仅Udp开放的端口:2002

4、重启机器,应用配置

如果没有应用Sysctl的配置,则调用以下命令更新

sysctl —system

5、查看端口占用情况:

rpcinfo -p [servername]

输出结果:

100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 2000 mountd
100005 1 tcp 2000 mountd
100005 2 udp 2000 mountd
100005 2 tcp 2000 mountd
100005 3 udp 2000 mountd
100005 3 tcp 2000 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049
100003 3 udp 2049 nfs
100227 3 udp 2049
100021 1 udp 2002 nlockmgr
100021 3 udp 2002 nlockmgr
100021 4 udp 2002 nlockmgr
100021 1 tcp 2001 nlockmgr
100021 3 tcp 2001 nlockmgr
100021 4 tcp 2001 nlockmgr

发表评论

电子邮件地址不会被公开。 必填项已用*标注