It is useful for a variety of reasons to know whether your Linux system uses a static IP address or a DHCP assigned IP address. For example, if you are hosting a web server or running a game server, you need to use a static IP address. If you try to resolve a network problem, you may also need to know your IP address. This article describes how to check whether your IP address is static or DHCP assigned in Linux.
This article introduces manual and command-line methods and clearly explains the difference between static and dynamic IP addresses.
Table of contents
An IP address is a unique identifier for a device on the network. It is used to route traffic between devices and allow them to communicate with each other.
There are two types of IP addresses: static and dynamic .
Most home and office networks use DHCP to assign IP addresses to devices. This is because it is easier to manage and helps prevent IP address conflicts.
However, in some cases, you need to use a static IP address, such as hosting a web server or running a game server.
If you are not sure whether your Linux IP address is static or DHCP assigned, you can use any of the following methods.
In Linux, you can determine whether the IP address is statically assigned or DHCP by checking the system's network profile or using command-line tools such as nmcli, or by checking the lease information.
For Linux systems using NetworkManager, you can use this method to find out whether the IP address is static or dynamic.
The configuration may be stored in /etc/NetworkManager/system-connections/. You can check individual connection files here.
<code>$ sudo ls /etc/NetworkManager/system-connections/ Auto Ostechnix_jio_5g.nmconnection Auto Sk vivo V21e 5G.nmconnection Wired connection 1 Auto Ostechnix.nmconnection Ostechnix_jio_4g.nmconnection</code>
For example, to check whether Wired Connection 1 uses a static or dynamic IP, use the following command to view the contents of its configuration file:
<code>$ sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1</code>
Find lines starting with method=, located under the [ipv4] and [ipv6] sections. If auto is displayed, it is DHCP. If manual is displayed, it is static.
<code>[connection] id=Wired connection 1 uuid=5cfE09f2EG-20a6-3089-8577-5269e5cf08gh type=ethernet permissions= timestamp=1650630622 [ethernet] mac-address-blacklist= [ipv4] address1=192.168.29.55/24,192.168.29.1 dns=8.8.8.8; dns-search=<strong></strong></code><mark> method=manual</mark> [ipv6] addr-gen-mode=eui64 dns-search= ip6-privacy=2 method=auto [proxy]
As the output shows, I have assigned a static IP address to my wired Ethernet connection.
If you want to see details of all available network connections, run:
<code>$ sudo cat /etc/NetworkManager/system-connections/*</code>
For Debian/Ubuntu systems or derived systems that do not use NetworkManager:
Check the /etc/network/interfaces file.
<code>$ cat /etc/network/interfaces</code>
If you see iface
<code>[...] source /etc/network/interfaces.d/* auto lo iface lo inet loopback<strong></strong></code><mark> iface enp89s0 inet manual</mark> auto vmbbr0 iface vmb0 inet static address 192.168.1.101/24 bridge-ports none bridge-stp off bridge-fd 0 [...]
For older Red Hat/Fedora systems or derived systems that do not use NetworkManager:
Check the files in /etc/sysconfig/network-scripts/.
<code>$ cat /etc/sysconfig/network-scripts/ifcfg-*</code>
Find lines starting with BOOTPROTO=. If dhcp is displayed, it is DHCP. If not, it is static.
You can also use this method on Linux systems with NetworkManager.
The nmcli tool is the command line client of NetworkManager. You can use it to quickly determine the source of an IP address.
<code>$ nmcli con show [connection-name]</code>
Replace [connection-name] with the name of your connection.
For example, to see the source of the "Auto Ostechnix_jio_5g" connection, you will run:
<code>$ nmcli con show 'Auto Ostechnix_jio_5g'</code>
In the output, look for the ipv4.method or ip6.method rows. If auto is displayed, it is DHCP. If manual is displayed, it is static.
The output is usually very long. Therefore, you can use the following grep command to filter the exact details you want.
<code>$ nmcli con show 'Auto Ostechnix_jio_5g' | grep ipv4.method ipv4.method:<strong></strong></code><mark> auto</mark>
As shown in the above output, my network uses a DHCP server to dynamically assign IP addresses.
If you want to see the source of IP version 6, replace ipv4.method with ipv6.method in the above command.
DHCP clients on Linux usually log their activity, and you can check these logs to find out if the IP address was obtained through DHCP. In addition, DHCP clients typically store their lease information in the lease file.
For dhclient:
The lease file is usually located in /var/lib/dhcp/dhclient.leases or /var/lib/dhclient/dhclient.leases.
<code>$ cat /var/lib/dhcp/dhclient.leases</code>
If you see the most recent lease in this file, the system has obtained its IP via DHCP.
Remember that checking methods may vary by Linux distribution and version, as well as the network tools used (NetworkManager, traditional ifup/ifdown, systemd-networkd, etc.). The methods provided above cover many common scenarios, but not all possible configurations.
In this short guide, we discuss several ways to check whether your IP address is static or dynamically allocated from a DHCP server. Knowing whether your system uses a static IP address or a DHCP assigned IP address is very beneficial for solving network problems in Linux. Choose the method that works for you and determine the source of your IP in seconds.
Related Reading: How to Configure Static IP Addresses in Linux and Unix
The above is the detailed content of How to Check if Your IP Address is Static or DHCP in Linux (2024). For more information, please follow other related articles on the PHP Chinese website!