Fix Failed to Start Networking Service on Linux
This guide resolves the 'Failed to start networking service' error on Linux systems. It covers common causes like misconfigured interfaces, missing dependencies, or systemd issues, with step-by-step fixes.
Symptoms
When attempting to start the networking service on a Linux system (e.g., using systemctl start networking or service networking start), the operation fails with an error message such as "Failed to start networking.service: Unit networking.service not found" or "Job for networking.service failed because the control process exited with error code". The system may lose network connectivity, and commands like ifconfig or ip addr show no active interfaces (except loopback). Logs in /var/log/syslog or journalctl -u networking often reveal specific configuration errors.
Root Causes
- Misconfigured interface files: Syntax errors in
/etc/network/interfacesor/etc/sysconfig/network-scripts/ifcfg-*(RHEL/CentOS). - Missing or conflicting dependencies: NetworkManager interfering with systemd-networkd or legacy networking scripts.
- Systemd service issues: The networking service unit may be masked, disabled, or improperly linked.
- Kernel module problems: Required drivers for network hardware not loaded.
- DHCP client failures: DHCP server unreachable or misconfigured DHCP client settings.
Step-by-Step Fix
1. Check Service Status and Logs
systemctl status networking.service
journalctl -xe -u networking.service
cat /var/log/syslog | grep networkingLook for specific error lines (e.g., "unknown interface eth0" or "invalid option").
2. Verify Configuration Files
For Debian/Ubuntu systems, examine /etc/network/interfaces:
cat /etc/network/interfacesEnsure each interface has a valid stanza. Example for static IP:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8For RHEL/CentOS, check files in /etc/sysconfig/network-scripts/ifcfg-eth0. Ensure ONBOOT=yes and correct BOOTPROTO (dhcp or static).
3. Validate Syntax with Tools
Use ifup --no-act to simulate interface bring-up:
ifup --no-act eth0This shows errors without applying changes. Alternatively, run systemd-networkd check:
networkctl status4. Restart the Service
After corrections, restart networking:
systemctl restart networking
systemctl enable networking5. Reboot if Necessary
If issues persist, reboot the system to ensure clean state:
shutdown -r nowAlternative Fixes
- Use NetworkManager: If systemd-networkd fails, try
systemctl start NetworkManagerand disable networking service. - Reinstall networking packages:
apt-get install --reinstall ifupdown(Debian) oryum reinstall initscripts(RHEL). - Check for masked services:
systemctl unmask networkingif the unit is masked. - Manually bring up interface:
ip link set eth0 upanddhclient eth0for temporary fix.
Prevention
- Always back up configuration files before editing:
cp /etc/network/interfaces /etc/network/interfaces.bak. - Use version control (e.g., git) for network configs.
- Test changes with
ifup --no-actbefore restarting services. - Monitor logs regularly with
journalctl -u networking -f. - Avoid mixing NetworkManager and legacy networking on the same interface.
Additional Tips
If using cloud instances (AWS, GCP), ensure that the instance metadata or DHCP settings are correct. For containers, verify that the container runtime (Docker, LXC) has not overridden network settings. Always check that the network interface name matches the kernel device (e.g., ens33 vs eth0).
Was this solution helpful?