Debian
在 Debian 上禁用 NFSv4(伺服器),允許 NFSv3
Debian 8 系統上的 NFS 伺服器如何限制為 NFSv3?
預設情況下,可以使用 vers=3 和 vers=4 掛載共享。
/etc/default/nfs-核心伺服器:
# To disable NFSv4 on the server, specify '--no-nfs-version 4' here #RPCMOUNTDOPTS="--manage-gids" RPCMOUNTDOPTS="--manage-gids --no-nfs-version 4"
這個選項似乎沒有任何效果(rpcinfo 仍然顯示 nfs 接受版本 4)。
結果發現按照中所述修改
RPCMOUNTDOPTS
變數/etc/default/nfs-kernel-server
不起作用,並且有一個錯誤報告:#738063此變數在rpc.mountd呼叫中使用:
# systemctl status nfs-kernel-server ● nfs-kernel-server.service - LSB: Kernel NFS server support Loaded: loaded (/etc/init.d/nfs-kernel-server) Active: active (running) since Sun 2016-06-12 19:46:01 CEST; 6s ago Process: 15110 ExecStop=/etc/init.d/nfs-kernel-server stop (code=exited, status=0/SUCCESS) Process: 15119 ExecStart=/etc/init.d/nfs-kernel-server start (code=exited, status=0/SUCCESS) CGroup: /system.slice/nfs-kernel-server.service └─15167 /usr/sbin/rpc.mountd --manage-gids --port 2048 --no-nfs-version 4
但是,客戶端仍然可以使用
-o vers=4
.相反,必須將此選項傳遞給rpc.nfsd。查看初始化腳本,該變數
/etc/init.d/nfs-kernel-server
似乎是傳遞給 rpc.nfsd 的唯一變數。RPCNFSDCOUNT
它不是為此目的而設計的,但它可以工作,而且它似乎是編輯初始化腳本的唯一選擇。解決方案:
在
/etc/default/nfs-kernel-server
中,將--no-nfs-version 4
選項添加到RPCNFSDCOUNT
而不是RPCMOUNTDOPTS
:# Number of servers to start up #RPCNFSDCOUNT=8 RPCNFSDCOUNT="8 --no-nfs-version 4"
重啟 NFS 服務:
# systemctl restart nfs-kernel-server
測試它:
# mount -t nfs -o vers=4 SERVER:/data/public /mnt mount.nfs: Protocol not supported
版本 3 仍然有效:
# mount -t nfs -o vers=3 SERVER:/data/public /mnt