Linux Network Configuration Tutorial: DNS, NetworkManager & Netplan Guide

Linux Network Configuration Tutorial: DNS, NetworkManager & Netplan Guide

Picture this: Your Linux system is like a bustling post office, and every network request is like sending a letter. But what happens when the postal workers don’t know where to deliver your mail? Chaos! That’s exactly what happens when your Linux network configuration goes wrong.

Whether you’re a system admin dealing with mysterious connection drops or a developer wondering why your local testing setup keeps failing, understanding Linux networking isn’t just useful — it’s absolutely essential. Let’s dive into the world of network services and configurations that’ll make you the postmaster general of your Linux kingdom!

Why Should You Care About Network Configuration?

Here’s the thing: Network issues are silent productivity killers. That random 5-second delay when accessing a website? Poor DNS configuration. Can’t connect to your development server? Misconfigured network manager. These aren’t just minor inconveniences — they add up to hours of lost time and frustrated debugging sessions.

Master these networking fundamentals, and you’ll:

  • Troubleshoot connection issues in minutes, not hours
  • Set up reliable local testing environments
  • Optimize network performance like a seasoned pro
  • Impress colleagues with your networking wizardry

The DNS Triangle: Where All Network Magic Begins

Think of DNS resolution like your phone’s contact list, but with three different address books that work together. Let’s break down this trinity:

/etc/hosts — Your Personal Speed Dial 📞

This is your system’s private contact list — a plain text file where you can manually define name-to-IP mappings:

# Example /etc/hosts entries
127.0.0.1 localhost
192.168.1.100 mydevserver.local
10.0.0.50 database-server

Pro tip: This file is checked FIRST, before any DNS lookup. It’s perfect for:

  • Overriding DNS for local testing
  • Speeding up frequently accessed internal servers
  • Troubleshooting DNS issues (add an entry here to bypass DNS entirely)

/etc/resolv.conf — Your Internet Phone Book 🌐

This file tells your system which DNS servers to contact when a name isn’t in your hosts file:

# Example /etc/resolv.conf
nameserver 8.8.8.8
nameserver 1.1.1.1
search mydomain.com

Think of nameservers as different telephone operators — if the first one is busy, your system tries the next one.

/etc/nsswitch.conf — The Lookup Strategy 🎯

This file controls the ORDER your system tries different name resolution methods:

# Common configuration
hosts: files dns

Translation: “Check files (/etc/hosts) first, then try DNS servers.” It’s like telling your brain, “Check your memory first, then ask Google.”

Network Manager: Your Network’s Personal Assistant

NetworkManager is like having a super-smart assistant managing all your network connections. The nmcli command is your way to communicate with this assistant.

Essential nmcli Commands That Actually Matter

# Check overall network health (like asking "How are we doing?")
nmcli general status

# List all configured connections (see all your network profiles)
nmcli connection show

# Bring down a specific connection (disconnect gracefully)
nmcli connection down "WiFi-Home"

# Interactive connection editor (for detailed tweaking)
nmcli connection edit

Real-world scenario: Your WiFi keeps dropping? Use nmcli general status to check if NetworkManager is even running, then nmcli connection show to see if your connection profile looks healthy.

For those who prefer point-and-click, nm-connection-editor gives you a graphical interface—think of it as NetworkManager's user-friendly cousin.

Netplan: The YAML-Powered Network Wizard 🧙‍♂️

Netplan is Ubuntu’s modern approach to network configuration. Instead of cryptic config files, you get clean, readable YAML files in /etc/netplan/.

The Netplan Workflow That Saves Lives

# Test configuration safely (auto-reverts in 120 seconds)
sudo netplan try

# Apply changes permanently (after you're confident they work)
sudo netplan apply
# Check current network status
netplan status

Example netplan configuration:

network:
version: 2
ethernets:
enp3s0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]

Pro tip: Always use netplan try first! It's like having an undo button for network changes—if something goes wrong, it automatically reverts after 2 minutes.

IP Command Suite: The Modern Network Toolkit 🔧

Forget ifconfig—it's like using a flip phone in the smartphone era. The ip command suite is where modern Linux networking lives.

IP Commands You’ll Use Daily

# View all network interfaces and their IP addresses
ip address show
# or simply
ip a

# Check link-layer properties (MAC addresses, interface states)
ip link show
# or simply
ip l

# Display routing table (where traffic goes)
ip route show
# or simply
ip r

Troubleshooting example: Server can’t reach the internet?

  1. ip a - Check if your interface has an IP
  2. ip r - Verify you have a default route
  3. ping 8.8.8.8 - Test if routing actually works

TLDR Cheat Sheet 📋

DNS Resolution (in order):

  • /etc/hosts → Manual overrides
  • /etc/resolv.conf → DNS servers
  • /etc/nsswitch.conf → Lookup order

Network Management:

  • nmcli general status → Network health check
  • netplan try → Safe config testing
  • netplan apply → Commit changes

Interface Management:

  • ip a → Show IP addresses
  • ip l → Show link status
  • ip r → Show routing table

Quick Fixes:

  • Can’t resolve names? Check /etc/resolv.conf
  • Local testing issues? Add entries to /etc/hosts
  • Network changes not working? Try netplan try first

Master these fundamentals, and you’ll transform from someone who “hopes the network works” to someone who “makes the network work.” Your future self (and your colleagues) will thank you! 🚀

Post a Comment

Previous Post Next Post