nm-connection-editor - NetworkManager GUI Connection Editor

Quick Launch: nm-connection-editor or Menu → Network Connections
Purpose: Graphical interface for managing NetworkManager connections
Best For: Desktop users who prefer point-and-click over terminal interfaces

1. Introduction to nm-connection-editor

1.1 What is nm-connection-editor?

nm-connection-editor is the graphical GTK-based application for configuring NetworkManager connections. It provides a full-featured GUI for creating, editing, and managing all types of network connections with visual feedback and easy-to-use forms.

1.2 Features and Capabilities

1.3 Tool Comparison: When to Use What

nm-connection-editor

Use when:
  • Working on desktop system
  • Need visual interface
  • Complex configurations
  • Prefer mouse/keyboard
  • Need all advanced options
  • Managing VPNs visually

nmtui

Use when:
  • Terminal-only access
  • Server without GUI
  • SSH sessions
  • Quick configuration
  • Basic settings only
  • Lightweight interface

nmcli

Use when:
  • Scripting needed
  • Automation required
  • Batch operations
  • Remote administration
  • CI/CD pipelines
  • Quick status checks

1.4 Installation

# Usually installed with NetworkManager GUI components

# Debian/Ubuntu
sudo apt-get install network-manager-gnome

# RHEL/CentOS/Fedora
sudo yum install NetworkManager-gnome
# or
sudo dnf install NetworkManager-gnome

# Arch Linux
sudo pacman -S networkmanager network-manager-applet

# Verify installation
which nm-connection-editor
nm-connection-editor --version

2. Launching nm-connection-editor

2.1 Launch Methods

Method Command/Location Notes
Command Line nm-connection-editor Direct launch from terminal
Application Menu Settings → Network Connections Location varies by desktop
System Tray Right-click network icon → Edit Connections If nm-applet is running
GNOME Settings Settings → Network → ⚙️ (gear icon) Opens specific connection

2.2 Command Line Options

# Launch main window
nm-connection-editor

# Create new connection of specific type
nm-connection-editor --create --type=ethernet
nm-connection-editor --create --type=wifi

# Edit specific connection by UUID
nm-connection-editor --edit=UUID

# Show specific connection
nm-connection-editor --show=UUID

# Run in background (return immediately)
nm-connection-editor &

3. Main Window Overview

Network Connections Window

┌─────────────────────────────────────────────────┐
│ Network Connections                    ☐ ☐ ✕   │
├─────────────────────────────────────────────────┤
│                                                 │
│  🔌 Ethernet                                    │
│    Wired connection 1                           │
│    Office-Static-192.168.1.100                  │
│                                                 │
│  📶 Wi-Fi                                       │
│    Home-WiFi-5GHz                               │
│    CoffeeShop-Guest                             │
│                                                 │
│  🔐 VPN                                         │
│    Corporate-VPN                                │
│                                                 │
│  🔗 Other Connection Types                      │
│    Bond0                                        │
│    Bridge0                                      │
│                                                 │
│  [ + ]  [ - ]  [ ⚙ ]  [ ↑ ]  [ ↓ ]           │
│   Add  Delete  Edit  Export  Import             │
│                                                 │
│                              [ Close ]          │
└─────────────────────────────────────────────────┘
            

3.1 Main Window Components

Element Function Shortcut/Action
+ Add Create new connection Opens connection type selector
- Delete Remove selected connection Confirms before deletion
Edit Modify selected connection Double-click also works
Export Export connection to file Saves as .nmconnection file
Import Import connection from file Reads .nmconnection files
Connection List Shows all configured connections Click to select, double-click to edit

3.2 Connection Categories

4. Creating Connections

4.1 Connection Type Selection

Creating a New Connection

  1. Click + Add button
  2. Select connection type from dropdown list
  3. Click Create...
  4. Fill in connection details (see sections below)
  5. Click Save
┌─────────────────────────────────────┐
│ Choose a Connection Type            │
├─────────────────────────────────────┤
│                                     │
│  Ethernet                           │
│  Wi-Fi                              │
│  Mobile Broadband                   │
│  DSL                                │
│  InfiniBand                         │
│  Bond                               │
│  Bridge                             │
│  VLAN                               │
│  Team                               │
│  VPN                                │
│  ▼ (more types)                     │
│                                     │
│        [ Cancel ]  [ Create... ]    │
└─────────────────────────────────────┘
            

4.2 Common Connection Types

Type Primary Use Key Configuration Items
Ethernet Wired networks IP settings, DNS, device selection
Wi-Fi Wireless networks SSID, security, password
VPN Secure remote access Server, type, credentials
Bond Link aggregation Mode, slave interfaces
Bridge VM networking Bridged interfaces
VLAN Network segmentation Parent interface, VLAN ID

5. Ethernet Connection Configuration

5.1 Connection Editor Window - Ethernet

Editing: Wired connection 1

┌──────────────────────────────────────────────────┐
│ Editing: Wired connection 1          ☐ ☐ ✕      │
├──────────────────────────────────────────────────┤
│ [ Ethernet ]  [ 802.1X Security ]  [ DCB ]       │
│ [ IPv4 Settings ]  [ IPv6 Settings ]             │
│ [ General ]                                      │
├──────────────────────────────────────────────────┤
│                                                  │
│  Connection name: Office-Ethernet___________    │
│                                                  │
│  Device: enp0s3_________________________  [⌄]   │
│  (Select from available network devices)         │
│                                                  │
│  Cloned MAC address: ____________________        │
│                                                  │
│  MTU: _________ (automatic)                      │
│                                                  │
│                                                  │
│                     [ Cancel ]     [ Save ]      │
└──────────────────────────────────────────────────┘
            

5.2 Ethernet Tab

Ethernet Tab Settings
Field Description Example/Notes
Connection name Descriptive name for connection Office-Ethernet, Lab-Network
Device Network interface to bind to enp0s3, eth0, or "Any"
Cloned MAC address Override hardware MAC (optional) 00:11:22:33:44:55
MTU Maximum Transmission Unit 1500 (standard), 9000 (jumbo)

5.3 IPv4 Settings Tab

┌──────────────────────────────────────────────────┐
│ [ IPv4 Settings ]                                │
├──────────────────────────────────────────────────┤
│                                                  │
│  Method: [ Manual ▼ ]                            │
│    Options: Automatic (DHCP)                     │
│             Automatic (DHCP) address only        │
│             Link-Local Only                      │
│             Manual                               │
│             Shared to other computers            │
│             Disabled                             │
│                                                  │
│  Addresses:                                      │
│  ┌────────────────────────────────────────────┐ │
│  │ Address        Netmask        Gateway      │ │
│  ├────────────────────────────────────────────┤ │
│  │ 192.168.1.100  24            192.168.1.1   │ │
│  │                                            │ │
│  └────────────────────────────────────────────┘ │
│     [ Add ]  [ Delete ]                          │
│                                                  │
│  DNS servers: 8.8.8.8, 8.8.4.4______________    │
│                                                  │
│  Search domains: company.local_____________     │
│                                                  │
│  □ Require IPv4 addressing for connection        │
│     to complete                                  │
│                                                  │
│  [ Routes... ]                                   │
│                                                  │
└──────────────────────────────────────────────────┘
            
IPv4 Settings Tab

IPv4 Methods

Method Use Case Configuration Required
Automatic (DHCP) Most networks None - all automatic
DHCP address only Custom DNS/routes with DHCP IP Manual DNS, gateway, routes
Link-Local Only Direct device connections None - 169.254.x.x auto-assigned
Manual Servers, static configurations IP, netmask, gateway, DNS
Shared to other computers Internet connection sharing None - automatic NAT setup
Disabled IPv6-only networks None

Address Configuration

5.4 Advanced: Routes Button

┌─────────────────────────────────────────────┐
│ Editing IPv4 routes                         │
├─────────────────────────────────────────────┤
│                                             │
│ Routes:                                     │
│ ┌─────────────────────────────────────────┐│
│ │ Address   Netmask  Gateway   Metric    ││
│ ├─────────────────────────────────────────┤│
│ │ 10.0.0.0  24      192.168.1.254  100   ││
│ │                                         ││
│ └─────────────────────────────────────────┘│
│    [ Add ]  [ Delete ]                      │
│                                             │
│ ☑ Ignore automatically obtained routes      │
│                                             │
│ ☐ Use this connection only for resources    │
│   on its network                            │
│                                             │
│                  [ OK ]     [ Cancel ]      │
└─────────────────────────────────────────────┘
            

5.5 General Tab

General Tab Settings
Option Description Default
☑ Automatically connect Connect at boot/when available Checked
☑ Available to all users System vs user connection Checked
Priority Auto-connect priority (0-999) 0 (lower = higher priority)
☐ Automatically connect to VPN Start VPN with this connection Unchecked
Firewall zone FirewallD zone assignment Default
Metered connection Hint for bandwidth-aware apps No

6. Wi-Fi Connection Configuration

6.1 Wi-Fi Tab

┌──────────────────────────────────────────────────┐
│ [ Wi-Fi ]  [ Wi-Fi Security ]                    │
│ [ IPv4 Settings ]  [ IPv6 Settings ]  [ General ]│
├──────────────────────────────────────────────────┤
│                                                  │
│  Connection name: Home-WiFi_______________      │
│                                                  │
│  SSID: MyHomeNetwork___________________  [🔍]    │
│                                                  │
│  Mode: [ Infrastructure ▼ ]                      │
│    Options: Infrastructure (Access Point)        │
│             Ad-hoc (Peer-to-peer)                │
│             AP (Create hotspot)                  │
│                                                  │
│  Device: wlan0______________________  [⌄]        │
│                                                  │
│  BSSID: ______________________________           │
│  (Bind to specific access point MAC)            │
│                                                  │
│  Cloned MAC address: ____________________        │
│                                                  │
│  MTU: _________ (automatic)                      │
│                                                  │
└──────────────────────────────────────────────────┘
            
Wi-Fi Tab Fields
Field Description Notes
SSID Network name Must match exactly (case-sensitive)
Mode Network topology Usually Infrastructure
Device Wireless adapter wlan0, wlp2s0, etc.
BSSID Specific AP MAC address Optional - locks to one AP
🔍 Button Scan and select from list Shows available networks

6.2 Wi-Fi Security Tab

┌──────────────────────────────────────────────────┐
│ [ Wi-Fi Security ]                               │
├──────────────────────────────────────────────────┤
│                                                  │
│  Security: [ WPA & WPA2 Personal ▼ ]             │
│    Options: None (Open network)                  │
│             WEP 40/128-bit Key                   │
│             WEP 128-bit Passphrase               │
│             LEAP                                 │
│             Dynamic WEP (802.1X)                 │
│             WPA & WPA2 Personal                  │
│             WPA & WPA2 Enterprise                │
│             WPA3 Personal                        │
│                                                  │
│  Password: ••••••••••••••••••••               │
│                                                  │
│  ☐ Show password                                 │
│                                                  │
│  [More Options ▼]                                │
│                                                  │
└──────────────────────────────────────────────────┘
            
Wi-Fi Security Types
Security Type Security Level Use Case
None ⚠️ No encryption Public hotspots (use with caution)
WEP ⚠️ Weak (broken) Legacy devices only
LEAP ⚠️ Weak Older Cisco systems
WPA/WPA2 Personal ✓ Good Most home networks (PSK)
WPA/WPA2 Enterprise ✓ Strong Corporate (RADIUS/802.1X)
WPA3 Personal ✓ Strongest Modern routers and devices

6.3 WPA Enterprise Configuration

For WPA/WPA2 Enterprise: Clicking the security dropdown and selecting Enterprise opens additional fields:

7. VPN Connection Configuration

7.1 Creating a VPN Connection

Setting Up a VPN

  1. Click + in main window
  2. Scroll to VPN section
  3. Select VPN type (OpenVPN, PPTP, L2TP, etc.)
  4. Click Create...
  5. Fill in VPN server details
  6. Configure authentication
  7. Click Save
VPN Plugin Requirement: VPN types require separate plugins:
# Install VPN plugins as needed
# OpenVPN
sudo apt-get install network-manager-openvpn-gnome

# PPTP
sudo apt-get install network-manager-pptp-gnome

# L2TP
sudo apt-get install network-manager-l2tp-gnome

# OpenConnect (Cisco AnyConnect)
sudo apt-get install network-manager-openconnect-gnome

# Fortinet
sudo apt-get install network-manager-fortisslvpn-gnome

7.2 OpenVPN Configuration Example

OpenVPN Settings
Field Description Example
Connection name Descriptive name Corporate-OpenVPN
Gateway VPN server address vpn.company.com:1194
Type Authentication method Certificates, Password, etc.
User Certificate Client cert file (.crt, .pem) /path/to/client.crt
CA Certificate Certificate authority /path/to/ca.crt
Private Key User's private key /path/to/client.key

7.3 Importing VPN Configuration

# Import from .ovpn file (OpenVPN)
# In nm-connection-editor:
# 1. Click Import button (↓)
# 2. Select .ovpn file
# 3. Review/edit imported settings
# 4. Save

# Or use command line
nmcli connection import type openvpn file /path/to/config.ovpn

# Verify import
nmcli connection show

8. Advanced Connection Types

8.1 Bond Configuration

Bond Settings

Purpose: Combine multiple network interfaces for redundancy or increased bandwidth

Creating a Bond

  1. Add → Bond → Create
  2. Connection name: bond0
  3. Click Add to add slave interfaces
  4. For each slave: Select connection type (Ethernet) and device
  5. Configure bonding mode in Bond tab
  6. Configure IP settings (IPv4/IPv6 tabs)

Bonding Modes

Mode Name Description
0 balance-rr Round-robin load balancing
1 active-backup One active, others standby (failover)
2 balance-xor XOR load balancing
3 broadcast Broadcast on all interfaces
4 802.3ad (LACP) Dynamic link aggregation (requires switch support)
5 balance-tlb Transmit load balancing
6 balance-alb Adaptive load balancing

8.2 Bridge Configuration

Bridge Settings

Purpose: Bridge network interfaces (common for virtualization)

Creating a Bridge

  1. Add → Bridge → Create
  2. Connection name: br0
  3. Click Add to add bridged interfaces
  4. Add physical interface (e.g., eth0)
  5. Configure IP settings on the bridge (not on slave)
  6. Save

Common Bridge Use Cases

8.3 VLAN Configuration

VLAN Settings

Purpose: Virtual LAN tagging (802.1Q)

Creating a VLAN

  1. Add → VLAN → Create
  2. Connection name: vlan100
  3. Parent interface: Select physical interface (eth0)
  4. VLAN id: Enter VLAN tag (e.g., 100)
  5. Configure IP settings
  6. Save

VLAN Configuration Fields

Field Description Example
Parent interface Physical interface to tag eth0, enp0s3
VLAN id VLAN tag number (1-4094) 100, 200, 300
VLAN interface name Virtual interface name eth0.100, vlan100

9. Import and Export Features

9.1 Exporting Connections

Export Connection to File

  1. Select connection in main window
  2. Click Export button (or gear icon → Export)
  3. Choose destination folder
  4. Enter filename
  5. Click Save
  6. Connection saved as .nmconnection file
Export Use Cases:

9.2 Importing Connections

Import Connection from File

  1. Click Import button in main window
  2. Navigate to .nmconnection or .ovpn file
  3. Select file
  4. Click Open
  5. Review imported connection (editor opens automatically)
  6. Modify if needed
  7. Click Save

9.3 Supported Import Formats

Format Extension Connection Type
NetworkManager .nmconnection All types
OpenVPN .ovpn, .conf OpenVPN VPN
WireGuard .conf WireGuard VPN
Cisco VPN .pcf VPNC (Cisco)

9.4 Bulk Operations

# Export all connections (command line helper)
for conn in /etc/NetworkManager/system-connections/*; do
    cp "$conn" ~/network-backup/
done

# Import multiple connections
for file in ~/network-backup/*.nmconnection; do
    nmcli connection import type generic file "$file"
done

# Verify imports
nmcli connection show

10. Connection Management

10.1 Activating Connections

Note: nm-connection-editor is for configuration only. To activate/deactivate connections, use:

10.2 Deleting Connections

Remove a Connection

  1. Select connection in main window
  2. Click - Delete button
  3. Confirm deletion in dialog
  4. Connection removed from system
Warning: Deletion is permanent. The connection file is removed from /etc/NetworkManager/system-connections/. Export connections before deleting if you might need them later.

10.3 Cloning Connections

Clone Technique: While there's no explicit "clone" button, you can:
  1. Select connection and export it
  2. Import the exported file
  3. Edit the imported connection (change name, IP, etc.)
  4. Save with new name

11. Troubleshooting

11.1 nm-connection-editor Won't Launch

Symptom Possible Cause Solution
Command not found Not installed sudo apt-get install network-manager-gnome
Error: Cannot open display No X11/Wayland session Must run in GUI environment
Permission denied errors PolicyKit issues Check user is in netdev group
Crashes on startup Corrupt config or GTK issue Check logs: journalctl -xe

11.2 Can't Save Connection Changes

Diagnostic Steps:
  1. Check if NetworkManager is running: systemctl status NetworkManager
  2. Verify permissions: ls -l /etc/NetworkManager/system-connections/
  3. Check disk space: df -h /etc
  4. Review logs: journalctl -u NetworkManager -n 50
  5. Try with sudo: sudo nm-connection-editor

11.3 Connection Not Showing in List

Issue Check Fix
Created but not visible Check file exists in system-connections Reload: nmcli connection reload
Hidden connection Check if it's user-specific vs system-wide Run editor as different user or set "Available to all users"
Corrupted profile Check file syntax Delete and recreate, or fix manually

11.4 VPN Options Missing

Problem: VPN connection types don't appear in dropdown Cause: VPN plugins not installed Solution:
# Check installed VPN plugins
dpkg -l | grep network-manager | grep vpn

# Install needed plugins (example for OpenVPN)
sudo apt-get install network-manager-openvpn-gnome

# Restart nm-connection-editor
# VPN types should now appear

11.5 Changes Not Taking Effect

Ensure Changes Apply:
  1. After saving in editor, close the editor window
  2. Connection is automatically reloaded
  3. If connection is active, deactivate and reactivate it
  4. Use network applet or: nmcli connection down "Name" && nmcli connection up "Name"

12. Best Practices

12.1 Connection Naming Conventions

12.2 Configuration Management

Practice Benefit How
Regular backups Quick recovery Export connections monthly
Document changes Audit trail Keep change log with exports
Test before production Avoid outages Create test connection first
Version control Track history Git repo for exported configs
Standard templates Consistency Export reference configs

12.3 Security Best Practices

Security Considerations:

12.4 Performance Optimization

Optimize Network Performance:

13. Integration and Automation

13.1 Command Line Integration

# Launch editor from scripts
nm-connection-editor &

# Create connection via GUI with pre-filled type
nm-connection-editor --create --type=ethernet &

# Edit specific connection by UUID
UUID=$(nmcli -t -f UUID connection show "MyConnection")
nm-connection-editor --edit="$UUID" &

# Combine with nmcli for automation
nmcli connection add type ethernet con-name "Auto-Created" ifname eth0
nm-connection-editor --edit="$(nmcli -t -f UUID con show "Auto-Created")" &

13.2 Configuration File Management

# Backup connections
#!/bin/bash
BACKUP_DIR=~/network-configs-$(date +%Y%m%d)
mkdir -p "$BACKUP_DIR"

# Copy all connections
sudo cp -r /etc/NetworkManager/system-connections/* "$BACKUP_DIR/"

# Create inventory
for conn in "$BACKUP_DIR"/*; do
    echo "$(basename "$conn")" >> "$BACKUP_DIR/inventory.txt"
done

echo "Backup complete: $BACKUP_DIR"

13.3 Desktop Environment Integration

Desktop Network Settings Access Editor Launch
GNOME Settings → Network Click connection ⚙️ → Identity/Details
KDE Plasma System Settings → Network Configure button
XFCE Settings → Network Edit button
MATE System → Preferences → Network Edit button
System Tray Click network icon Right-click → Edit Connections

14. Advanced Topics

14.1 Connection Permissions

Understanding Permissions

Available to all users checkbox:

Setting File Location Access Use Case
☑ Checked (System) /etc/NetworkManager/system-connections/ All users, root can edit Servers, shared systems
☐ Unchecked (User) ~/.local/share/NetworkManager/system-connections/ Only creating user Personal devices, laptops

14.2 Firewall Zone Configuration

Firewall Zones (if using firewalld):

Set in General tab → Firewall zone dropdown

14.3 Metered Connections

Metered Connection Setting: Hints to applications that bandwidth is limited or costs money.

Effects:

When to use: Mobile hotspots, cellular connections, limited data plans

Set in General tab → Metered connection: Yes

15. Quick Reference

15.1 Common Tasks Summary

Task Steps
Create Ethernet DHCP Add → Ethernet → IPv4: Automatic → Save
Create Static IP Add → Ethernet → IPv4: Manual → Enter IP/Gateway/DNS → Save
Add WiFi Add → Wi-Fi → Enter SSID → Wi-Fi Security: WPA2 → Password → Save
Import VPN Import button → Select .ovpn file → Review → Save
Export Connection Select → Export button → Choose location → Save
Delete Connection Select → Delete button → Confirm
Add Secondary IP Edit → IPv4 Settings → Add button → Enter IP → Save
Change DNS Edit → IPv4 Settings → DNS servers field → Update → Save

15.2 Keyboard Shortcuts

Shortcut Action
Ctrl+W or Ctrl+Q Close window
Enter Activate selected button/field
Tab Move between fields
Space Toggle checkbox
Alt+F4 Close window (Linux standard)
Esc Cancel current dialog

15.3 File Locations Reference

# System-wide connections
/etc/NetworkManager/system-connections/

# User-specific connections
~/.local/share/NetworkManager/system-connections/

# NetworkManager configuration
/etc/NetworkManager/NetworkManager.conf

# Connection files format
*.nmconnection

# View a connection file
sudo cat /etc/NetworkManager/system-connections/MyConnection.nmconnection

# Connection file permissions
-rw------- (600) root:root

16. Comparison: Editor Tools

16.1 Full Feature Comparison

Feature nm-connection-editor nmtui nmcli
Interface Type GUI (GTK) TUI (curses) CLI
Requires X11/Wayland Yes No No
All Connection Types ✓ Yes Basic only ✓ Yes
Advanced Options ✓ All visible Limited ✓ All available
VPN Configuration ✓ Full support Basic ✓ Full support
Import/Export ✓ Built-in No Via commands
Bonding/Bridging/VLAN ✓ Visual setup No ✓ Command-based
Scripting Support No No ✓ Excellent
Learning Curve Low Low-Medium Medium-High
Best For Desktop users Server admins Automation

17. Troubleshooting Checklist

Connection Issues Diagnostic

  1. Verify NetworkManager is running: systemctl status NetworkManager
  2. Check device exists: Open editor → Check device dropdown
  3. Review all tabs for misconfigurations
  4. Verify IP settings match network requirements
  5. Check DNS servers are reachable
  6. Test with simpler config (DHCP instead of static)
  7. Export connection and review file manually
  8. Check NetworkManager logs: journalctl -u NetworkManager -n 100
  9. Try recreating connection from scratch
  10. Verify physical connectivity (cables, wireless signal)

18. Summary

nm-connection-editor Quick Start

  1. Launch: nm-connection-editor or right-click network icon → Edit Connections
  2. Create: Click + → Select type → Fill tabs → Save
  3. Edit: Select connection → Click or double-click
  4. Import: Click → Select file
  5. Export: Select connection → Click
  6. Delete: Select connection → Click - → Confirm
Key Advantages:

← Back to NetworkManager Index ↑ Back to EXPANDED