-
-
Notifications
You must be signed in to change notification settings - Fork 1
Linux Networking
Complete beginner-friendly guide to networking on Linux, covering Arch Linux, CachyOS, and other distributions including NetworkManager, wired/wireless connections, static IP, VPN, and DNS configuration.
- Understanding Linux Networking
- NetworkManager Setup
- Wired Connection
- Wireless Connection
- Static IP Configuration
- VPN Configuration
- DNS Configuration
- Troubleshooting
Linux networking uses several components:
- Network Interface: Physical or virtual network connection
- Ethernet: Wired connection (eth0, enp0s3, etc.)
- Wi-Fi: Wireless connection (wlan0, wlp2s0, etc.)
- Virtual: VPN, bridge, etc.
- NetworkManager: Network management service
- What it does: Manages network connections
- GUI: Provides graphical network settings
- CLI: Command-line tools (nmcli)
- IP Address: Network identifier
- IPv4: Traditional IP addresses (192.168.1.1)
- IPv6: Modern IP addresses (2001:db8::1)
- DNS: Domain Name System
- What it does: Converts domain names to IP addresses
- Example: google.com → 142.250.191.14
Two main methods:
- NetworkManager: Easy, graphical, recommended
- Manual configuration: Advanced, command-line
This guide focuses on NetworkManager (easier for beginners).
Arch/CachyOS:
# Install NetworkManager
sudo pacman -S networkmanager
# Enable service
sudo systemctl enable --now NetworkManager.serviceDebian/Ubuntu:
sudo apt install network-manager
sudo systemctl enable NetworkManagerFedora:
sudo dnf install NetworkManager
sudo systemctl enable NetworkManagerGUI and CLI tools:
# Install GUI
sudo pacman -S network-manager-applet
# CLI tool (nmcli is included)
nmcli --helpVerify NetworkManager:
# Check status
systemctl status NetworkManager
# List connections
nmcli connection show
# List devices
nmcli device statusEthernet usually works automatically:
# Check connection
nmcli device status
# Should show:
# eth0 ethernet connected Wired connection 1Create wired connection:
# Create connection
sudo nmcli connection add type ethernet con-name "Wired" ifname eth0
# Activate connection
sudo nmcli connection up "Wired"Edit connection:
# Edit connection
nmcli connection edit "Wired connection 1"
# Or use GUI
nm-connection-editorUsing GUI:
- Click network icon in system tray
- Select network from list
- Enter password if required
- Connect
Using CLI:
# Scan for networks
nmcli device wifi list
# Connect to network
nmcli device wifi connect "Network-Name" password "password"
# Connect to hidden network
nmcli device wifi connect "Network-Name" password "password" hidden yesCheck drivers:
# Check wireless card
lspci | grep -i network
# Check driver
lsmod | grep -i wifiUsing NetworkManager:
# Edit connection
nmcli connection edit "Wired connection 1"
# Set static IP
set ipv4.addresses 192.168.1.100/24
set ipv4.gateway 192.168.1.1
set ipv4.dns 8.8.8.8
set ipv4.method manual
save
activateUsing GUI:
-
Open:
nm-connection-editor - Select connection → Edit
- IPv4 Settings → Manual
- Enter: IP, Gateway, DNS
- Save
Install OpenVPN:
# Arch/CachyOS
sudo pacman -S openvpn
# Debian/Ubuntu
sudo apt install openvpn
# Fedora
sudo dnf install openvpnConnect:
# Connect to VPN
sudo openvpn --config config.ovpnInstall WireGuard:
# Arch/CachyOS
sudo pacman -S wireguard-tools
# Debian/Ubuntu
sudo apt install wireguard
# Fedora
sudo dnf install wireguard-toolsConfigure:
# Create config
sudo vim /etc/wireguard/wg0.conf
# Enable
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0Install VPN plugins:
# OpenVPN plugin
sudo pacman -S networkmanager-openvpn
# WireGuard plugin
sudo pacman -S networkmanager-wireguardConfigure in GUI:
-
Open:
nm-connection-editor - Add → VPN
- Select VPN type
- Configure
Using NetworkManager:
# Edit connection
nmcli connection edit "Wired connection 1"
# Set DNS
set ipv4.dns "8.8.8.8 8.8.4.4"
save
activateSystem-wide DNS:
# Edit resolv.conf
sudo vim /etc/resolv.confAdd:
nameserver 8.8.8.8
nameserver 8.8.4.4
Install DoH:
# Install cloudflared
yay -S cloudflared
# Or use systemd-resolved
sudo systemctl enable systemd-resolvedCheck connection:
# Check status
nmcli device status
# Restart NetworkManager
sudo systemctl restart NetworkManager
# Check interface
ip link showCheck drivers:
# Check wireless card
lspci | grep -i network
# Check driver
lsmod | grep -i wifi
# Install drivers if needed
sudo pacman -S linux-firmwareTest DNS:
# Test DNS
nslookup google.com
# Flush DNS cache
sudo systemd-resolve --flush-cachesThis guide covered networking for Arch Linux, CachyOS, and other distributions, including NetworkManager, wired/wireless, static IP, VPN, and DNS configuration.
- Network Utilities - Network troubleshooting tools
- SSH Configuration - SSH setup
- File Sharing - Network file sharing
- ArchWiki NetworkManager: https://wiki.archlinux.org/title/NetworkManager
This guide covers Arch Linux, CachyOS, and other Linux distributions. For distribution-specific details, refer to your distribution's documentation.