NFS 포트 고정 설정 중 2개의 방식 차이가 있어 궁금해서 찾아보게되었다.
시스템 런타임 중, NFS 포트 고정을 하고 싶었고, 커널 파라미터를 변경하고 NFS를 재시작하여 포트 고정하였다.
modprobe에 등록 시, 런타임으로 적용은 안된다. 부팅 시, 모듈을 로딩하고 /etc/modprobe.d/*.conf 의 파일들을 읽어 모듈을 로딩하고 파라미터를 커널에 등록한다.
시스템 runtime 중에는 sysctl을 통해서 커널 파라미터를 바로 수정 할 수 있다.
sysctl -p
로 sysctl.conf의 설정을 읽어 적용한다.modprobe는 리눅스 커널 확장 모듈을 쉽게 추가/제거 할 수 있도록하는 프로그램이다.
시스템 커널 파라미터를 CRUD가능하게 해주는 프로그램이다.
런타임 중 커널 파라미터(/proc/sys 밑의 변수)를 변경 할 수 있다.
NFSv3에서는 mountd statd lockd quota 포트가 랜덤으로 열려있다. 방화벽 포트를 열기 위해선 포트가 특정되어야하기 때문에 포트를 고정시켜야 한다.
### MOUNTD
$ vi /etc/default/nfs-kernel-server
RPCMOUNTDOPTS="--manage-gids -p <portnumber>"
### STATD
$ vi /etc/default/nfs-common
STATDOPTS="--port <portnumber>"
### QUOTA
$ vi /etc/default/quotas
RPCRQUOTADOPTS="-p <portnumber>"
### LOCKD
$ vi /etc/sysctl.conf
fs.nfs.nlm_tcpport = <portnumber>
fs.nfs.nlm_udpport = <portnumber>
### OR
$ vi /etc/modprobe.d/local.conf
fs.nfs.nlm_tcpport = 32803
fs.nfs.nlm_udpport = 32769
### modprobe 방식으로 했을경우 리부팅 후 적용
# sudo reboot
### sysctl을 변경했을경우
# sysctl -p
# service nfs-kernel-server restart
### 적용 확인
# rpcbind -p
NFS v3
https://www.suse.com/support/kb/doc/?id=000016649
Redhat 공식 NFS 포트 변경
Debian / Ubuntu NFS 포트 고정
https://wiki.debian.org/SecuringNFS
https://askubuntu.com/questions/1313682/set-static-ports-for-nfs-v3-on-ubuntu-20-x-server