Nfs Heimnetz
NFS-Freigaben nur im Heimnetz mounten (Linux, systemd, pfSense)
In diesem Beitrag zeige ich, wie du unter Linux beim Systemstart prüfst, ob du dich im Heimnetz befindest – und nur dann deine NFS-Freigaben automatisch mountest. Besonders nützlich für Laptops oder Entwickler-Workstations mit wechselnden Netzumgebungen.
Ausgangslage
- Heimnetz mit pfSense-Router (
pfsense.itc-embedded.de
) - Zwei NFS-Server:
walhalla.itc-embedded.de:/Buero
→/mnt/nas/office
tomte.itc-embedded.de:/backup
→/mnt/nas/backup
- Ubuntu/Linux mit systemd
- Ziel: NFS-Freigaben nur mounten, wenn das Heimnetz verfügbar ist
Erkennung des Heimnetzes
Der Trick besteht darin, den DNS-Eintrag des pfSense-Routers abzufragen. Ist er auflösbar, sind wir ziemlich sicher im Heimnetz.
Test:
host pfsense.itc-embedded.de
Beispielantwort:
pfsense.itc-embedded.de has address 192.168.10.1
🖥️ Das Bash-Skript
Pfad: /usr/local/bin/mount-home-nfs.sh
#!/bin/bash
# Prüfe, ob Heimnetz (pfSense) erreichbar ist
if host pfsense.itc-embedded.de &>/dev/null; then
echo "[+] Heimnetz erkannt. Versuche NFS-Mounts."
# Nur mounten, wenn Mountpoints existieren und noch nicht gemountet sind
if ! mountpoint -q /mnt/nas/office; then
echo "→ Mounting office..."
mount -t nfs4 walhalla.itc-embedded.de:/Buero /mnt/nas/office
fi
if ! mountpoint -q /mnt/nas/backup; then
echo "→ Mounting backup..."
mount -t nfs4 tomte.itc-embedded.de:/backup /mnt/nas/backup
fi
else
echo "[-] Nicht im Heimnetz. Keine NFS-Mounts."
fi
Systemd-Service einrichten
Pfad: /etc/systemd/system/mount-home-nfs.service
[Unit]
Description=Mount NFS shares when in home network
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/mount-home-nfs.sh
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
Einrichtung
sudo mkdir -p /mnt/nas/office /mnt/nas/backup
sudo chmod +x /usr/local/bin/mount-home-nfs.sh
sudo systemctl daemon-reexec
sudo systemctl enable mount-home-nfs.service
Starttest:
sudo systemctl start mount-home-nfs.service
sudo systemctl status mount-home-nfs.service
Optional: Manuell testen
/usr/local/bin/mount-home-nfs.sh
Erweiterungsmöglichkeiten
- Unmount bei Verlassen des Heimnetzes (z. B. via
NetworkManager-dispatcher
) - Fallback-Logik, wenn NFS kurzzeitig nicht verfügbar ist
- Logging in
/var/log
oder persystemd-journald
Fazit
Mit dieser einfachen Methode mountest du deine Netzwerkfreigaben nur dann, wenn du wirklich im richtigen Netz bist – ganz ohne unnötige Timeouts, Fehler oder Wartezeiten beim Booten unterwegs.
Minimalinvasiv. Robust. Linux-Style.