Wednesday, April 30, 2025

12 ways to find your IP address in Linux

 

Introduction

In the Linux ecosystem, having the ability to quickly locate your IP address is invaluable for various networking tasks, troubleshooting, and system administration. Whether you’re setting up a server, configuring network settings, or diagnosing connectivity issues, knowing how to find your IP address from the command line can streamline your workflow.

Prerequisites

  • Access to a Linux-based operating system: Make sure you have a Linux distribution installed on your system. These methods are compatible with popular distributions such as Ubuntu, Red Hat, CentOS, Debian, Fedora, and others.

  • Basic familiarity with the Linux command line: While some methods may involve graphical interfaces, most of the techniques covered in this guide rely on command-line utilities. A basic understanding of navigating and executing commands in the terminal will be beneficial.

  • Administrative privileges (optional): Depending on your system configuration and the commands used, you may need administrative privileges (root or sudo access) to execute certain commands or access certain system files. If you encounter permission errors, consider running the commands with elevated privileges.

Find Your IP address in Linux: Using the Terminal

By ensuring these prerequisites are met, you’ll be well-prepared to explore the various methods for discovering your IP address in Linux outlined in this guide. For this demostration, we’ll use a CentOS9 virtual machine. Let’s dive in!

ifconfig command

The classic ifconfig command is a reliable way to display network interface information, including IP addresses.

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.223  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::5054:ff:fe4c:59de  prefixlen 64  scopeid 0x20<link>
        inet6 2600:4040:206c:ea00:5054:ff:fe4c:59de  prefixlen 64  scopeid 0x0<global>
        ether 52:54:00:4c:59:de  txqueuelen 1000  (Ethernet)
        RX packets 1200  bytes 125615 (122.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1098  bytes 155148 (151.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Typically, this command displays your private IP address. Specifically, it belongs to the IPv4 private address range defined by RFC 1918, which is reserved for use within private networks and is not routable on the public internet. These private IP addresses are commonly used for local area network (LAN) configurations within homes, businesses, and organizations. They enable devices within the same network to communicate with each other without being directly accessible from outside the network.

ip command

The ip command provides more extensive networking information and has become the modern replacement for ifconfig.

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:4c:59:de brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.223/24 brd 192.168.1.255 scope global dynamic noprefixroute enp1s0
       valid_lft 50540sec preferred_lft 50540sec
    inet6 2600:4040:206c:ea00:5054:ff:fe4c:59de/64 scope global dynamic noprefixroute
       valid_lft 7177sec preferred_lft 7177sec
    inet6 fe80::5054:ff:fe4c:59de/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

hostname command

The hostname command coupled with the -I option can swiftly reveal your private IPv4 and IPv6 addresses.

$ hostname -I
192.168.1.223 2600:4040:206c:ea00:5054:ff:fe4c:59de

nmcli command

The nmcli (NetworkManager Command-Line Interface) tool is commonly used for managing network connections and can display IP address information.

$ nmcli dev show
GENERAL.DEVICE:                         enp1s0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         52:54:00:4C:59:DE
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     enp1s0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.1.223/24
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.DNS[1]:                             192.168.1.1
IP4.DOMAIN[1]:                          test.infotechys.com
IP6.ADDRESS[1]:                         2600:4040:206c:ea00:5054:ff:fe4c:59de/64
IP6.ADDRESS[2]:                         fe80::5054:ff:fe4c:59de/64
IP6.GATEWAY:                            fe80::56b7:bdff:fe1c:c61b
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024
IP6.ROUTE[2]:                           dst = 2600:4040:206c:ea00::/64, nh = ::, mt = 100
IP6.ROUTE[3]:                           dst = 2600:4040:206c:ea00::/56, nh = fe80::56b7:bdff:fe1c:c61b, mt = 100
IP6.ROUTE[4]:                           dst = ::/0, nh = fe80::56b7:bdff:fe1c:c61b, mt = 100
IP6.DNS[1]:                             2600:4040:206c:ea00::1

ss command

The ss command, used for socket statistics, can also list IP addresses associated with network connections.

$ ss -tulpn
Netid          State           Recv-Q          Send-Q                                        Local Address:Port                      Peer Address:Port          Process
udp            UNCONN          0               0                                                   0.0.0.0:4000                           0.0.0.0:*
udp            UNCONN          8448            0                                             192.168.1.223:5353                           0.0.0.0:*
udp            UNCONN          0               0                                                   0.0.0.0:5353                           0.0.0.0:*
udp            UNCONN          0               0                                                   0.0.0.0:5353                           0.0.0.0:*
udp            UNCONN          0               0                                                   0.0.0.0:38593                          0.0.0.0:*
udp            UNCONN          0               0                                                   0.0.0.0:39163                          0.0.0.0:*
udp            UNCONN          0               0                                                   0.0.0.0:40546                          0.0.0.0:*
udp            UNCONN          0               0                                                 127.0.0.1:323                            0.0.0.0:*
udp            UNCONN          0               0                                                      [::]:4000                              [::]:*
udp            UNCONN          0               0                                                      [::]:5353                              [::]:*
udp            UNCONN          0               0                                                      [::]:49449                             [::]:*
udp            UNCONN          0               0                                                     [::1]:323                               [::]:*
udp            UNCONN          0               0                          [fe80::5054:ff:fe4c:59de]%enp1s0:546                               [::]:*

dig command

The dig command, primarily used for querying DNS servers, can be utilized to retrieve your public IP address from external services.

$ dig ANY +short @ns1-1.akamaitech.net ANY whoami.akamai.net
;; Warning, extra type option
97.107.141.141

curl command (4)

The curl command combined with online IP lookup services can swiftly fetch your public IP address. We will review three of the commonly used curl commands.

$ curl -s https://checkip.amazonaws.com
97.107.141.141

This curl command (below) displays your public IPv6 address:

$ curl ifconfig.me
2600:4040:206c:ea00:5054:ff:fe4c:59de

Running the same command with the -4 option provides your public IPv4 address

$ curl -4 ifconfig.me
97.107.141.141

Icanhazip.com is another commonly used online service. By executing the commands below, you can retrieve your public IPv4 and IPv6 addresses using the -4 and -6 options, respectively:

$ curl -4 https://icanhazip.com/
97.107.141.141
$ curl -6 https://icanhazip.com/
2600:4040:206c:ea00:5054:ff:fe4c:59de

wget command

Similarly, the wget command can be used to fetch your public IP address from online services

$ wget -qO- -4 ifconfig.me
97.107.141.141

GUI Network Settings

Lastly, graphical network settings interfaces like NetworkManager or System Settings in desktop environments provide an intuitive way to view and configure network connections, including IP addresses.

Linux Desktop Environment

No comments:

Post a Comment

HTTP Appache Server LAB 7

 Apache HTTP Server (httpd) Configuration,