Mengetahui alamat IP mesin Anda merupakan salah satu keterampilan paling fundamental yang harus dikuasai oleh siapa pun yang bekerja dengan sistem Linux. Baik Anda seorang sysadmin yang mengelola puluhan server, seorang developer yang melakukan konfigurasi jaringan untuk aplikasi, atau sekadar pengguna desktop yang ingin memastikan koneksi internet berjalan normal, kemampuan untuk menampilkan alamat IP melalui terminal adalah keahlian yang tak bisa ditawar. Dalam tutorial ini, kita akan membahas secara mendalam perintah-perintah Linux yang digunakan untuk menampilkan alamat IP, mulai dari yang paling modern hingga yang sudah legacy, beserta cara kerjanya, contoh penggunaan, serta tips dan troubleshooting yang relevan.


Apa Itu?

Perintah Linux untuk menampilkan alamat IP adalah seperangkat utilitas baris perintah yang memungkinkan pengguna untuk melihat konfigurasi antarmuka jaringan pada sistem mereka. Dalam ekosistem Linux, informasi ini tersimpan di dalam kernel space, dan perintah-perintah ini berfungsi sebagai jembatan antara pengguna dan data tersebut, membaca informasi dari struktur data kernel dan menyajikannya dalam format yang dapat dibaca manusia. Secara praktis, ketika seseorang menyebut "perintah Linux untuk menampilkan alamat IP," mereka biasanya merujuk pada ip addr, ifconfig, atau sejumlah varian lainnya yang memiliki tujuan serupa.

Mengetahui alamat IP Anda sangat penting karena sejumlah alasan yang saling berkaitan. Pertama, dalam konteks jaringan lokal, alamat IP diperlukan agar mesin lain dapat berkomunikasi dengan mesin Anda—entah itu untuk berbagi file melalui Samba, mengakses server web lokal, atau melakukan koneksi SSH. Kedua, dalam lingkungan server, Anda memerlukan alamat IP untuk mengonfigurasi firewall, mengatur routing, dan memastikan layanan terikat pada antarmuka yang tepat. Ketiga, saat melakukan debugging konektivitas, langkah pertama yang hampir selalu dilakukan adalah memverifikasi bahwa sistem memiliki alamat IP yang valid pada antarmuka yang aktif. Tanpa informasi ini, Anda pada dasarnya bekerja dalam kegelapan.

Berikut adalah step-by-step untuk menampilkan alamat IP menggunakan perintah yang paling direkomendasikan di sistem Linux modern:

Langkah 1: Buka terminal. Anda dapat melakukannya melalui shortcut keyboard Ctrl + Alt + T pada sebagian besar desktop environment, atau melalui application menu.

Langkah 2: Jalankan perintah ip addr. Perintah ini adalah standar modern yang menggantikan ifconfig:

ip addr

Langkah 3: Identifikasi antarmuka dan alamat IP Anda. Perhatikan output yang dihasilkan dan cari baris yang dimulai dengan inet untuk alamat IPv4:

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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:a3:4f:1b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 86123sec preferred_lft 86123sec

Pada output di atas, eth0 adalah antarmuka jaringan utama dengan alamat IP 192.168.1.105, sedangkan lo adalah antarmuka loopback dengan alamat 127.0.0.1.

Langkah 4 (alternatif): Gunakan hostname untuk mendapatkan IP dengan cepat. Jika Anda hanya ingin melihat alamat IP tanpa informasi tambahan:

hostname -I

Output:

192.168.1.105

Perintah ini langsung menampilkan alamat IP tanpa informasi antarmuka yang berlebih, sangat berguna untuk scripting.


Cara Kerja

Untuk memahami bagaimana perintah-perintah ini bekerja, kita perlu memahami konsep inti di baliknya. Pada dasarnya, Linux menyimpan seluruh konfigurasi jaringan—termasuk alamat IP, tabel routing, dan statistik antarmuka—di dalam struktur data kernel yang dikelola oleh subsistem networking. Informasi ini tidak secara langsung dapat diakses oleh program pengguna; sebaliknya, kernel menyediakan antarmuka yang disebut Netlink socket, yang merupakan mekanisme komunikasi antara kernel space dan user space. Ketika Anda menjalankan perintah seperti ip addr, utilitas tersebut mengirimkan pesan Netlink ke kernel, meminta data tentang antarmuka jaringan, lalu kernel merespons dengan mengirimkan kembali informasi yang diminta melalui socket yang sama. Perintah ip kemudian mem-parsing respons tersebut dan memformatnya menjadi output yang dapat dibaca.

Komponen utama dalam proses ini terdiri dari beberapa bagian. Pertama, utilitas iproute2, yang merupakan paket perangkat lunak yang menyediakan perintah ip beserta turunannya (ip addr, ip link, ip route, dan sebagainya). Paket ini dikembangkan sebagai pengganti net-tools, paket legacy yang menyediakan ifconfig, route, dan netstat. Kedua, subsistem Netlink di kernel, yang bertindak sebagai transport layer untuk komunikasi antara kernel dan user space. Netlink mendukung berbagai grup multicast, sehingga program dapat meminta informasi spesifik hanya tentang bagian jaringan yang mereka butuhkan, tanpa harus memindai seluruh konfigurasi. Ketiga, antarmuka virtual /proc dan /sys, yang juga menyediakan sebagian informasi jaringan dalam bentuk file teks. Misalnya, Anda dapat membaca file /proc/net/if_inet6 untuk mendapatkan informasi alamat IPv6, meskipun pendekatan ini kurang ergonomis dibandingkan menggunakan perintah ip.

Perbedaan mendasar antara ip addr dan ifconfig terletak pada mekanisme komunikasi ini. Perintah ifconfig dari paket net-tools menggunakan ioctl (I/O Control) system call untuk berkomunikasi dengan kernel, sebuah mekanisme yang lebih tua dan kurang fleksibel. Sementara itu, ip addr menggunakan Netlink socket yang mendukung operasi asinkron, event-driven notification, dan kemampuan untuk menangani konfigurasi jaringan yang lebih kompleks seperti multiple IP per interface dan policy routing. Inilah mengapa iproute2 telah menjadi standar de facto di hampir semua distribusi Linux modern, sementara net-tools secara bertahap ditinggalkan.


Contoh Penggunaan

Untuk memberikan gambaran yang lebih konkret, berikut adalah lima skenario penggunaan perintah Linux untuk menampilkan alamat IP, lengkap dengan perintah dan output yang diharapkan.

Skenario 1: Melihat semua antarmuka dan alamat IP secara lengkap. Ini adalah penggunaan paling umum, ketika Anda perlu mendapatkan gambaran menyeluruh tentang konfigurasi jaringan pada sistem Anda. Anda baru saja login ke sebuah server dan ingin memastikan konfigurasi jaringan sudah benar:

ip addr show

Output:

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: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:ab:cd:ef brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp3s0
       valid_lft 86400sec preferred_lft 86400sec
    inet6 fe80::5054:ff:feab:cdef/64 scope link 
       valid_lft forever preferred_lft forever

Skenario 2: Menampilkan alamat IP hanya untuk antarmuka tertentu. Pada server dengan banyak antarmuka jaringan, output ip addr show bisa sangat panjang. Anda dapat memfilter untuk menampilkan hanya antarmuka yang Anda butuhkan, sehingga informasi lebih mudah dibaca:

ip addr show enp3s0

Output:

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:ab:cd:ef brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp3s0
       valid_lft 86400sec preferred_lft 86400sec

Skenario 3: Menampilkan hanya alamat IPv4 dalam format yang ringkas. Jika Anda menulis skrip shell dan perlu mengekstrak alamat IP untuk diproses lebih lanjut, format verbose dari ip addr justru menjadi penghalang. Anda dapat menggabungkan perintah ip dengan opsi yang tepat:

ip -4 addr show enp3s0

Output:

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp3s0

Untuk mengekstrak hanya alamat IP-nya saja, Anda dapat mempipe output ke awk:

ip -4 addr show enp3s0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

Output:

10.0.2.15

Skenario 4: Menggunakan ifconfig pada sistem legacy. Meskipun sudah dianggap usang, ifconfig masih tersedia di banyak sistem, terutama yang menjalankan distribusi lama atau yang memiliki paket net-tools terinstal. Anda mungkin menemukan perintah ini di dokumentasi lama atau skrip yang sudah ada:

ifconfig

Output:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 52:54:00:ab:cd:ef  txqueuelen 1000  (Ethernet)
        RX packets 15234  bytes 12345678 (11.7 MiB)
        TX packets 9876  bytes 6543210 (6.2 MiB)

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)

Perhatikan bahwa output ifconfig memiliki format yang berbeda dan tidak menampilkan beberapa informasi modern seperti valid lifetime dan preferred lifetime yang ada pada output ip addr.

Skenario 5: Melihat alamat IP publik dari terminal. Semua perintah di atas menampilkan alamat IP lokal, yang mungkin berbeda dari alamat IP publik yang dilihat oleh dunia luar—terutama jika Anda berada di belakang NAT atau router. Untuk mengetahui alamat IP publik Anda, Anda perlu meman