1. CentOS7
[ NFS 서버 ]
NET_INTERFACE=`ls /sys/class/net | grep -v lo | head -1`
NFS_SERVER_IP=`ip route | grep -e ${NET_INTERFACE} | grep src | awk '{print $9}'`
# nfs 서버는 6개의 포트를사용
# prtmap(portmapper) : rpc 통신을 하는 nfs서버에게 클라이언트가 rpc 통신 사용 포트를 질의하는데 사용 (111)
# rpc.nfsd : rpc 통신 요청 처리를 위한 포트 (2049)
# rpc.mountd : 클라이언트가 마운트 요청을 할때 /etc/exports 설정에 따라 마운트 요청을 처리하기 위한 포트 (random)
# rpc.statd : rpc.rockd와 함께 작동하며 파일잠금 및 해제와 비정상적인 종료시 복구를 담당하기 위한 포트 (random)
# rpc.lockd : 파일 잠금을 통해 클라이언트에서 여러 사용자가 한 파일을 수정하는 것을 방지하기 위한 포트 (random)
# rpc.rqoutad : NFS파일 시스템을 마운트한 사용자에게 quota를 처리하기 위한 포트 (random)
yum -y install nfs-utils rpcbind
mkdir -p /app/share
chmod 707 /app/share
cat <<NFS_SETTING > /etc/exports
/app/share ${NFS_SERVER_IP%.*}.*(rw,sync)
NFS_SETTING
systemctl restart nfs-server
systemctl enable nfs-server
exportfs -v
# nfs 가 통신하는 포트를 확인
rpcinfo -p
# 포트가 변경된것을 확인
systemctl restart nfs-server
sed -i "s/^status.*//g" /etc/services
sed -i "s/^mountd.*//g" /etc/services
sed -i "s/^rquotad.*//g" /etc/services
# 기본 포트가 정의되어 있는 설정 파일
cat <<NFS_PORT_SETTING >> /etc/services
status 4000/tcp # rpc.statd tcp port
status 4000/udp # rpc.statd udp port
mountd 4002/tcp # mountd tcp port
mountd 4002/udp # mountd udp port
rquotad 4003/tcp # rpc.rquotad tcp port
rquotad 4003/udp # rpc.rquotad udp port
NFS_PORT_SETTING
echo options lockd nlm_udpport=4001 nlm_tcpport=4001 > /etc/modprobe.d/options.conf
firewall-cmd --permanent --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=4000-4003/tcp --add-port=4000-4003/udp
firewall-cmd --reload
firewall-cmd --list-ports
reboot
# 포트가 고정된것을 확인
rpcinfo -p
[ 리눅스 클라이언트 ]
NFS_SERVER_IP=192.168.108.50
yum -y install nfs-utils
showmount -e ${NFS_SERVER_IP}
mkdir -p /app/mnt/share
mount -t nfs ${NFS_SERVER_IP}:/app/share /app/mnt/share
ls -la /app/mnt/share
cat <<NFS_SETTING >> /etc/fstab
${NFS_SERVER_IP}:/app/share$(printf '\t')/app/mnt/share$(printf '\t')nfs$(printf '\t')defaults$(printf '\t')0 0
NFS_SETTING
# 정상적으로 에러메시지가 뜨지 않을경우 재부팅하여 마운트가 유지되는 것 확인
mount -a
2. Ubuntu20
[ NFS 서버 ]
NET_INTERFACE=`ls /sys/class/net | grep -v lo | head -1`
NFS_SERVER_IP=`ip route | grep -e ${NET_INTERFACE} | grep src | awk '{print $9}'`
# nfs 서버는 6개의 포트를사용
# prtmap(portmapper) : rpc 통신을 하는 nfs서버에게 클라이언트가 rpc 통신 사용 포트를 질의하는데 사용 (111)
# rpc.nfsd : rpc 통신 요청 처리를 위한 포트 (2049)
# rpc.mountd : 클라이언트가 마운트 요청을 할때 /etc/exports 설정에 따라 마운트 요청을 처리하기 위한 포트 (random)
# rpc.statd : rpc.rockd와 함께 작동하며 파일잠금 및 해제와 비정상적인 종료시 복구를 담당하기 위한 포트 (random)
# rpc.lockd : 파일 잠금을 통해 클라이언트에서 여러 사용자가 한 파일을 수정하는 것을 방지하기 위한 포트 (random)
# rpc.rqoutad : NFS파일 시스템을 마운트한 사용자에게 quota를 처리하기 위한 포트 (random)
apt-get -y install nfs-common nfs-kernel-server rpcbind
mkdir -p /app/share
chmod 707 /app/share
cat <<NFS_SETTING > /etc/exports
/app/share ${NFS_SERVER_IP%.*}.*(rw,sync)
NFS_SETTING
systemctl restart nfs-server
systemctl enable nfs-server
exportfs -v
# nfs 가 통신하는 포트를 확인
rpcinfo -p
# 포트가 변경된것을 확인
systemctl restart nfs-server
sed -i "s/^status.*//g" /etc/services
sed -i "s/^mountd.*//g" /etc/services
sed -i "s/^rquotad.*//g" /etc/services
# 기본 포트가 정의되어 있는 설정 파일
cat <<NFS_PORT_SETTING >> /etc/services
status 4000/tcp # rpc.statd tcp port
status 4000/udp # rpc.statd udp port
mountd 4002/tcp # mountd tcp port
mountd 4002/udp # mountd udp port
rquotad 4003/tcp # rpc.rquotad tcp port
rquotad 4003/udp # rpc.rquotad udp port
NFS_PORT_SETTING
sed -i "s/^RPCMOUNTDOPTS.*//g" /etc/default/nfs-kernel-server
# mounted 포트 설정
echo RPCMOUNTDOPTS=\"-p 4002 -g\" >> /etc/default/nfs-kernel-server
echo options lockd nlm_udpport=4001 nlm_tcpport=4001 > /etc/modprobe.d/options.conf
ufw allow 111
ufw allow 2049
ufw allow 4000:4003/tcp
ufw allow 4000:4003/udp
ufw status
reboot
# 포트가 고정된것을 확인
rpcinfo -p
[ 리눅스 클라이언트 ]
NFS_SERVER_IP=192.168.108.20
apt-get -y install nfs-common
showmount -e ${NFS_SERVER_IP}
mkdir -p /app/mnt/share
mount -t nfs ${NFS_SERVER_IP}:/app/share /app/mnt/share
ls -la /app/mnt/share
cat <<NFS_SETTING >> /etc/fstab
${NFS_SERVER_IP}:/app/share$(printf '\t')/app/mnt/share$(printf '\t')nfs$(printf '\t')defaults$(printf '\t')0 0
NFS_SETTING
# 정상적으로 에러메시지가 뜨지 않을경우 재부팅하여 마운트가 유지되는 것 확인
mount -a
[ 윈도우 클라이언트 ]
'Operating Systems > Linux' 카테고리의 다른 글
[ Linux ] ORACLE 19c 서버 설치 (0) | 2021.09.30 |
---|---|
[ Linux ] GIT 서버 설치 (0) | 2021.09.26 |
[ Linux ] VNC 서버 설치 (0) | 2021.09.23 |
[ Linux ] Cron 활용 (0) | 2021.08.22 |
[ Linux ] DHCP 서버 설치 (0) | 2021.08.21 |