• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

TinyGrab

Your Trusted Source for Tech, Finance & Brand Advice

  • Personal Finance
  • Tech & Social
  • Brands
  • Terms of Use
  • Privacy Policy
  • Get In Touch
  • About Us
Home » How to set an IP address in Linux?

How to set an IP address in Linux?

June 5, 2025 by TinyGrab Team Leave a Comment

Table of Contents

Toggle
  • Mastering the Art of IP Address Configuration in Linux
    • Choosing Your Weapon: Configuration Methods
      • 1. The ip Command: The Modern Standard
      • 2. ifconfig: The Legacy Option
      • 3. nmcli: The NetworkManager Interface
      • 4. Editing Network Configuration Files: The Persistent Approach
    • Frequently Asked Questions (FAQs)
      • 1. How do I find my network interface name?
      • 2. What is CIDR notation?
      • 3. How do I find my default gateway?
      • 4. How do I determine my subnet mask?
      • 5. What is the difference between DHCP and static IP addressing?
      • 6. Why can’t I connect to the internet after setting a static IP address?
      • 7. How do I revert to DHCP after setting a static IP address?
      • 8. How can I verify my IP address configuration?
      • 9. Can I have multiple IP addresses on a single interface?
      • 10. What if I’m using a VPN?
      • 11. How do I set the hostname?
      • 12. My changes don’t persist after a reboot. What am I doing wrong?

Mastering the Art of IP Address Configuration in Linux

Setting an IP address in Linux might seem daunting at first, but it’s a fundamental skill for any system administrator or power user. The process involves configuring your network interface with the correct IP address, subnet mask, gateway, and optionally, DNS servers. In essence, you have three main paths: using command-line tools like ip, ifconfig (deprecated but still relevant), or nmcli (NetworkManager Command-Line Interface), and configuring network configuration files directly or through graphical interfaces.

Let’s delve into the details of each approach, highlighting their strengths and weaknesses.

Choosing Your Weapon: Configuration Methods

1. The ip Command: The Modern Standard

The ip command is the go-to tool for managing network interfaces in modern Linux distributions. It’s part of the iproute2 package and offers a comprehensive set of commands for network configuration.

  • Setting a Static IP Address:

    To set a static IP address using ip, you’ll need to identify your network interface name (e.g., eth0, enp0s3). You can find this using the command ip addr show.

    Once you have the interface name, use the following command, replacing the placeholders with your desired values:

    sudo ip addr add <IP_ADDRESS>/<CIDR_NOTATION> dev <INTERFACE_NAME> sudo ip link set dev <INTERFACE_NAME> up sudo ip route add default via <GATEWAY_IP> 
    • <IP_ADDRESS>: The desired IP address (e.g., 192.168.1.100).
    • <CIDR_NOTATION>: The subnet mask in CIDR notation (e.g., /24 for a 255.255.255.0 subnet).
    • <INTERFACE_NAME>: The name of your network interface (e.g., eth0).
    • <GATEWAY_IP>: The IP address of your default gateway (e.g., 192.168.1.1).

    For instance:

    sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip link set dev eth0 up sudo ip route add default via 192.168.1.1 

    This assigns the IP address 192.168.1.100 with a subnet mask of 255.255.255.0 to the interface eth0, brings the interface up, and sets the default gateway to 192.168.1.1.

  • Setting DNS Servers:

    The ip command itself doesn’t directly configure DNS servers. You’ll typically configure DNS by editing the /etc/resolv.conf file, or the system’s resolver configuration files based on the systemd-resolved mechanism. For legacy configurations, the /etc/resolv.conf is still functional.

    To edit the /etc/resolv.conf file:

    sudo nano /etc/resolv.conf 

    Add the following lines, replacing the placeholders with your DNS server addresses:

    nameserver <DNS_SERVER_1> nameserver <DNS_SERVER_2> 

    For example:

    nameserver 8.8.8.8 nameserver 8.8.4.4 

    These entries configure the system to use Google’s public DNS servers.

2. ifconfig: The Legacy Option

While deprecated in favor of ip, ifconfig is still present on many older systems. It’s part of the net-tools package.

  • Setting a Static IP Address:

    The command for setting a static IP address is:

    sudo ifconfig <INTERFACE_NAME> <IP_ADDRESS> netmask <NETMASK> sudo route add default gw <GATEWAY_IP> 
    • <INTERFACE_NAME>: The name of your network interface (e.g., eth0).
    • <IP_ADDRESS>: The desired IP address (e.g., 192.168.1.100).
    • <NETMASK>: The subnet mask (e.g., 255.255.255.0).
    • <GATEWAY_IP>: The IP address of your default gateway (e.g., 192.168.1.1).

    Example:

    sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 sudo route add default gw 192.168.1.1 

    This performs essentially the same actions as the ip command example, but using the older syntax.

  • Limitations: ifconfig lacks the advanced features of ip and is less actively maintained. It is generally advisable to migrate towards using ip.

3. nmcli: The NetworkManager Interface

nmcli is a command-line tool for controlling NetworkManager, a service that manages network connections in many desktop-oriented Linux distributions. It provides a higher-level interface for network configuration.

  • Creating a New Connection:

    First, create a new connection profile:

    sudo nmcli con add type ethernet ifname <INTERFACE_NAME> con-name <CONNECTION_NAME> 
    • <INTERFACE_NAME>: The name of your network interface (e.g., eth0).
    • <CONNECTION_NAME>: A descriptive name for the connection (e.g., static-eth0).

    Example:

    sudo nmcli con add type ethernet ifname eth0 con-name static-eth0 
  • Setting the IP Address, Gateway, and DNS:

    Next, modify the connection profile to set the static IP address, gateway, and DNS servers:

    sudo nmcli con mod <CONNECTION_NAME> ipv4.addresses <IP_ADDRESS>/<CIDR_NOTATION> sudo nmcli con mod <CONNECTION_NAME> ipv4.gateway <GATEWAY_IP> sudo nmcli con mod <CONNECTION_NAME> ipv4.dns "<DNS_SERVER_1>,<DNS_SERVER_2>" sudo nmcli con mod <CONNECTION_NAME> ipv4.method manual 

    Example:

    sudo nmcli con mod static-eth0 ipv4.addresses 192.168.1.100/24 sudo nmcli con mod static-eth0 ipv4.gateway 192.168.1.1 sudo nmcli con mod static-eth0 ipv4.dns "8.8.8.8,8.8.4.4" sudo nmcli con mod static-eth0 ipv4.method manual 

    The ipv4.method manual tells the NetworkManager to use the provided static configuration instead of trying to obtain an IP address automatically via DHCP.

  • Activating the Connection:

    Finally, activate the connection:

    sudo nmcli con up <CONNECTION_NAME> 

    Example:

    sudo nmcli con up static-eth0 

    To deactivate the connection:

    sudo nmcli con down static-eth0 

4. Editing Network Configuration Files: The Persistent Approach

While the previous methods are effective, they often don’t persist across reboots. To make your IP address configuration permanent, you need to edit the appropriate network configuration files. The specific files and their format vary depending on the Linux distribution and the network management system used.

  • Debian/Ubuntu (using /etc/network/interfaces):

    Edit the /etc/network/interfaces file:

    sudo nano /etc/network/interfaces 

    Add or modify the following lines for your interface:

    auto <INTERFACE_NAME> iface <INTERFACE_NAME> inet static     address <IP_ADDRESS>     netmask <NETMASK>     gateway <GATEWAY_IP>     dns-nameservers <DNS_SERVER_1> <DNS_SERVER_2> 

    Example:

    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.8 8.8.4.4 

    After making changes, restart the networking service:

    sudo systemctl restart networking 
  • Red Hat/CentOS/Fedora (using /etc/sysconfig/network-scripts/):

    Each interface has a configuration file named ifcfg-<INTERFACE_NAME> in the /etc/sysconfig/network-scripts/ directory. Edit this file:

    sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 

    (Replace eth0 with your interface name.)

    Add or modify the following lines:

    TYPE="Ethernet" DEVICE="<INTERFACE_NAME>" ONBOOT="yes" BOOTPROTO="static" IPADDR="<IP_ADDRESS>" NETMASK="<NETMASK>" GATEWAY="<GATEWAY_IP>" DNS1="<DNS_SERVER_1>" DNS2="<DNS_SERVER_2>" 

    Example:

    TYPE="Ethernet" DEVICE="eth0" ONBOOT="yes" BOOTPROTO="static" IPADDR="192.168.1.100" NETMASK="255.255.255.0" GATEWAY="192.168.1.1" DNS1="8.8.8.8" DNS2="8.8.4.4" 

    After making changes, restart the networking service:

    sudo systemctl restart network 
  • Important Note: Always back up your configuration files before making any changes. Incorrect configurations can render your system unable to connect to the network.

Frequently Asked Questions (FAQs)

1. How do I find my network interface name?

Use the command ip addr show or ifconfig -a. The interface names will typically be listed as eth0, enp0s3, wlan0, etc.

2. What is CIDR notation?

CIDR (Classless Inter-Domain Routing) notation is a way to represent an IP address and its associated subnet mask. It’s expressed as <IP_ADDRESS>/<PREFIX_LENGTH>, where <PREFIX_LENGTH> is the number of leading bits in the subnet mask that are set to 1. For example, /24 is equivalent to a subnet mask of 255.255.255.0.

3. How do I find my default gateway?

Use the command ip route show default or route -n. The output will display the IP address of your default gateway.

4. How do I determine my subnet mask?

The subnet mask is often provided by your network administrator or can be deduced from the network address. If your network address is 192.168.1.0 and the first three octets are the same, you’re likely using a subnet mask of 255.255.255.0. You can also use online calculators to determine the subnet mask from CIDR notation and vice versa.

5. What is the difference between DHCP and static IP addressing?

DHCP (Dynamic Host Configuration Protocol) automatically assigns IP addresses to devices on a network. A static IP address is manually configured and remains constant. DHCP is convenient for home networks, while static IP addresses are often preferred for servers and devices that need a consistent address.

6. Why can’t I connect to the internet after setting a static IP address?

Common causes include: incorrect IP address, subnet mask, or gateway; DNS server configuration problems; firewall restrictions; or network connectivity issues. Double-check your settings and ensure your network cable is properly connected.

7. How do I revert to DHCP after setting a static IP address?

Using the nmcli tool, set the ipv4.method back to auto: bash sudo nmcli con mod <CONNECTION_NAME> ipv4.method auto sudo nmcli con up <CONNECTION_NAME> For /etc/network/interfaces, change inet static to inet dhcp and restart the networking service. For /etc/sysconfig/network-scripts/ifcfg-*, change BOOTPROTO="static" to BOOTPROTO="dhcp" and restart the network service.

8. How can I verify my IP address configuration?

Use the command ip addr show or ifconfig to display the current IP address, subnet mask, and other network interface information. You can also use ping <gateway_ip> to test connectivity to your gateway.

9. Can I have multiple IP addresses on a single interface?

Yes, you can assign multiple IP addresses to a single network interface. Using the ip command, you can add additional addresses using sudo ip addr add <IP_ADDRESS>/<CIDR_NOTATION> dev <INTERFACE_NAME>.

10. What if I’m using a VPN?

VPNs often manage their own network interfaces and IP address assignments. You typically don’t need to manually configure the IP address of the underlying physical interface while the VPN is active. Configure the VPN client as per its documentation.

11. How do I set the hostname?

The hostname is typically stored in /etc/hostname. Edit this file with sudo nano /etc/hostname and enter your desired hostname. Then, update /etc/hosts to include the new hostname. Run sudo hostname -F /etc/hostname to apply the changes.

12. My changes don’t persist after a reboot. What am I doing wrong?

You’re likely not making the changes to the permanent configuration files. Ensure you’re editing /etc/network/interfaces (Debian/Ubuntu) or /etc/sysconfig/network-scripts/ifcfg-* (Red Hat/CentOS/Fedora) and that the ONBOOT option is set to yes in the latter case. Also, double-check that NetworkManager isn’t overriding your configurations if you are using it.

Filed Under: Tech & Social

Previous Post: « Will EIDL Loans Be Forgiven?
Next Post: Do nurses get a discount at Lululemon? »

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

NICE TO MEET YOU!

Welcome to TinyGrab! We are your trusted source of information, providing frequently asked questions (FAQs), guides, and helpful tips about technology, finance, and popular US brands. Learn more.

Copyright © 2025 · Tiny Grab