You can create a service to automatically disable your network components at suspend, and re-enable them at resume:
Network Restart Suspend Service
Create the following file with a root capable text editor:
Add the following contents to the file:
#sudo systemctl enable network-restart.service
#sudo systemctl start network-restart.service
#sudo systemctl stop network-restart.service
#sudo systemctl disable network-restart.service
#systemctl status network-restart.service
Description=Network Suspend/Resume Service
ExecStartPre=-/usr/bin/sudo -u $USER /bin/bash -lc 'nmcli networking off'
ExecStart=-/usr/bin/systemctl stop NetworkManager
ExecStart=-/usr/bin/ip link set enp6s0 down
ExecStart=-/usr/bin/modprobe -r r8169
ExecStop=-/usr/bin/ip link set enp6s0 up
ExecStop=-/usr/bin/systemctl start NetworkManager
ExecStop=-/usr/bin/sudo -u $USER /bin/bash -lc 'nmcli networking on'
The sleep units in the service may be reduced, (or eliminated) if you do not like the delay it creates. Be aware though, that doing so may reduce the reliability of the service. If you find the service is not working you, then you should try increasing the sleep times. It has been reported that some kernels require more time between executing commands to work reliably.
Once you have created and saved the service file, enable the service:
sudo systemctl enable network-restart.service
Then reboot the computer.
For others wishing to adapt this service to their installation (if different than above).
If your adapter's designation is different than
enp6s0 you will need to substitute you own adapter’s ID into the service file.
If you are using a different driver module you will also need to substitute it in place of “r8168” or “r8169” in the service file.
If the service does not work for you, you can disable the service with:
sudo systemctl disable --now network-restart.service