How to set NFS server on version 3 (only)

I upgraded my NFS server system 15.6 > 16.0. Now the NFS client can not mount the export from it.

On the server:

boven:/etc/nfs.conf.d # cat /etc/exports
/home/wij       *.henm.xs4all.nl(rw,no_root_squash,sync,no_subtree_check)
boven:/etc/nfs.conf.d # 

boven:/etc/nfs.conf.d # systemctl status nfs-server.service 
● nfs-server.service - NFS server and services
     Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/nfs-server.service.d
             └─10-options.conf
             /run/systemd/generator/nfs-server.service.d
             └─order-with-mounts.conf
     Active: active (exited) since Fri 2026-03-20 10:38:55 CET; 1h 43min ago
 Invocation: bb9e26da1c2240abbeee0ed7cd35e156
       Docs: man:rpc.nfsd(8)
             man:exportfs(8)
    Process: 12479 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 12480 ExecStart=/usr/sbin/rpc.nfsd $NFSD_OPTIONS (code=exited, status=0/SUCCESS)
   Main PID: 12480 (code=exited, status=0/SUCCESS)
        CPU: 16ms

Mar 20 10:38:55 boven systemd[1]: Starting NFS server and services...
Mar 20 10:38:55 boven systemd[1]: Finished NFS server and services.
boven:/etc/nfs.conf.d #

And surprisingly also

boven:/etc/nfs.conf.d # systemctl status nfsdcld.service 
● nfsdcld.service - NFSv4 Client Tracking Daemon
     Loaded: loaded (/usr/lib/systemd/system/nfsdcld.service; static)
     Active: active (running) since Fri 2026-03-20 10:43:09 CET; 1h 40min ago
 Invocation: f2945725a02f4f689f4f10af2eb9dd82
       Docs: man:nfsdcld(8)
    Process: 12800 ExecStart=/usr/sbin/nfsdcld (code=exited, status=0/SUCCESS)
   Main PID: 12801 (nfsdcld)
      Tasks: 1 (limit: 9219)
        CPU: 8ms
     CGroup: /system.slice/nfsdcld.service
             └─12801 /usr/sbin/nfsdcld

Mar 20 10:43:09 boven systemd[1]: Starting NFSv4 Client Tracking Daemon...
Mar 20 10:43:09 boven systemd[1]: Started NFSv4 Client Tracking Daemon.
boven:/etc/nfs.conf.d #

which I guess means that NFS version 4 is served.

To force both systems to Version3, I added on the client the version= option:

beneden:~ # grep nfs /etc/fstab
boven.henm.xs4all.nl:/home/wij             /home/wij  nfs   nfsvers=3,noauto,nofail,x-systemd.automount,x-systemd.mount-timeout=10,x-systemd.idle-timeout=5min  0  0
beneden:~ #

Now I want to force the server to also use Version3 (when possible only).

The configuration files seem to have changed a lot since 15.6. THe old /etc/sysconfig/nfs had (snippet):

# Enable NFSv3 server support (yes/no)
# This causes the NFS server to respond to
# NFSv2 and NFSv3 requests.  Only disable this
# if you want to ensure only NFSv4 is used.
#
NFS3_SERVER_SUPPORT="yes"

## Path:                Network/File systems/NFS server
## Description:         NFSv4 protocol support
## Type:                yesno
## Default:             yes
## ServiceRestart:      nfs-server
#
# Enable NFSv4 support (server and/or client) (yes/no)
#
NFS4_SUPPORT="no"

New files are:

/usr/etc/nfs.conf
/usr/etc/nfs.conf.d/.conf
/etc/nfs.conf
/etc/nfs.conf.d/
.conf
Various configuration files read in order. Later settings override earlier settings.

and have sections.

Thus I created the following:

boven:/etc/nfs.conf.d # cat version-override.conf 
[nfsd]
 vers3=y
 vers4=n

boven:/etc/nfs.conf.d # 

After restarting nfs-server it is still the same: nfsdcld still running and no mounting on the client.

Has anybody any experience with this. TIA.

How? Would be good to know.

Changed the repo list (removed all and added the three named in doc) and basically zypper --releasever 16.0 dup --allow-vendorchange. Worked pretty well.

boven:/etc/nfs.conf.d # zypper lr -d
# | Alias   | Name           | Enabled | GPG Check | Refresh | Keep | Priority | Type   | URI                                                                     | Service
--+---------+----------------+---------+-----------+---------+------+----------+--------+-------------------------------------------------------------------------+--------
1 | non-oss | Main (Non-OSS) | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://download.opensuse.org/distribution/leap/16.0/repo/non-oss/x86_64 | 
2 | open264 | open264 codecs | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://codecs.opensuse.org/openh264/openSUSE_Leap_16/                   | 
3 | oss     | Main (OSS)     | Yes     | (r ) Yes  | Yes     | -    |   99     | rpm-md | http://download.opensuse.org/distribution/leap/16.0/repo/oss/x86_64     | 
boven:/etc/nfs.conf.d # 

On my Leap 16.0 server (new installation not migrated) NFS 3 is enabled by default. Please post :

# cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
boven:/etc # cat /proc/fs/nfsd/versions
-2 +3 -4 -4.0 -4.1 -4.2
boven:/etc # 

That looks like only version 3 is used. But why is then still that nfsdcld running. Which is of course a minor problem compaired with: why can’t the client mount the export.

Just a guess firewall ?

# firewall-cmd --list-all|grep services
  services: cockpit dhcpv6-client mountd nfs nfs3 rpc-bind ssh

I have no firewall running on both systems.

STOP PRESSES:

boven:/etc # firewall-cmd --list-all|grep services
  services: dhcpv6-client ssh
boven:/etc # ps -ef | grep firewalld/
root       30432    6366  0 14:05 pts/0    00:00:00 grep --color=auto firewalld/
boven:/etc # ps -ef | grep firewal
root         955       1  0 08:23 ?        00:00:00 /usr/bin/python3.13 /usr/sbin/firewalld --nofork --nopid
root       30451    6366  0 14:05 pts/0    00:00:00 grep --color=auto firewal
boven:/etc # systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-03-20 08:23:55 CET; 5h 41min ago
 Invocation: 2b90da87403747178dfbb993a97fc0c9
       Docs: man:firewalld(1)
   Main PID: 955 (firewalld)
      Tasks: 2 (limit: 9219)
        CPU: 891ms
     CGroup: /system.slice/firewalld.service
             └─955 /usr/bin/python3.13 /usr/sbin/firewalld --nofork --nopid

Mar 20 08:23:53 boven systemd[1]: Starting firewalld - dynamic firewall daemon...
Mar 20 08:23:55 boven systemd[1]: Started firewalld - dynamic firewall daemon.
boven:/etc # systemctl stop firewalld.service 

It was switched on!. I never have one running, thus I did not expect that the upgrade switched it on.

I will no try again and report back.

That is it. All is working to satisfaction now.

I would never have thought of the firewall. I never used it for many years.

Thanks you for walking a different path of thought and thus finding the culprit.

(And I am wondering while the upgrade does this :frowning: )

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.