Cara Cek Alamat IP di Linux: ip addr, hostname -I, curl
- 30 Oktober 2026
- 09.00
- Oleh Adrien Roche
- Jaringan

Periksa alamat IP di Linux dengan ip addr
Perintah yang menjawab "apa alamat IP saya" pada distribusi Linux modern mana pun adalah ip, dari paket iproute2. Perintah ini tersedia secara bawaan di semua distribusi besar, berjalan tanpa root, dan menjadi dasar yang dibungkus atau menggantikan perintah lain dalam panduan ini. Bentuk dasarnya menampilkan setiap antarmuka beserta seluruh alamatnya:
ip addr show
ip a # same thing, shorterPada server dengan satu kartu jaringan, keluarannya terlihat seperti ini (baris masa berlaku valid_lft dipangkas):
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 203.0.113.25/24 brd 203.0.113.255 scope global eth0
inet6 2001:db8:1::25/64 scope global
inet6 fe80::5054:ff:fe12:3456/64 scope linkCara membacanya:
- Nama antarmuka.
loadalah loopback, selalu127.0.0.1, hanya dapat diakses dari mesin itu sendiri. Kartu jaringan sesungguhnya di sini adalaheth0; dengan penamaan antarmuka yang dapat diprediksi, namanya muncul sebagaiens3,enp0s3ataueno1, sedangkan kartu nirkabel diawaliwl. inetadalah alamat IPv4,inet6adalah IPv6. Akhiran/24adalah panjang prefiks dalam notasi CIDR, penulisan modern dari netmask255.255.255.0.scope globalberarti dapat dirutekan di luar host ini;scope link(barisfe80::) hanya berlaku pada segmen jaringan yang terhubung;scope hostadalah loopback.state UPdenganLOWER_UPberarti antarmuka aktif dan memiliki tautan.state DOWNatauNO-CARRIERadalah penyebab paling umum sebuah antarmuka tidak memiliki alamat sama sekali.
Varian yang berguna:
ip -4 addr # IPv4 only
ip -6 addr # IPv6 only
ip -br -4 addr # one line per interface
ip -4 addr show dev eth0 # a single interfaceBentuk ringkas (-br) adalah cara tercepat memeriksa alamat IP di Linux ketika ada beberapa antarmuka, situasi yang lazim pada VPS yang menjalankan Docker:
$ ip -br -4 addr
lo UNKNOWN 127.0.0.1/8
eth0 UP 203.0.113.25/24
docker0 DOWN 172.17.0.1/16hostname -I: hanya alamatnya
Ketika Anda hanya butuh alamatnya, hostname -I (huruf I besar) mencetak setiap alamat yang dikonfigurasi dalam satu baris, dipisahkan spasi, tanpa loopback dan tanpa IPv6 link-local:
$ hostname -I
203.0.113.25 2001:db8:1::25Ada dua catatan. Huruf kecil hostname -i adalah perintah yang berbeda: ia meresolusi nama host mesin melalui /etc/hosts dan DNS, yang pada Debian dan Ubuntu biasanya menghasilkan 127.0.1.1. Selain itu hostname -I mencetak alamat tanpa urutan yang terjamin, termasuk bridge virtual seperti docker0, sehingga hostname -I | awk '{print $1}' adalah jalan pintas untuk manusia, bukan "IP utama" yang andal untuk skrip. Opsi ini bukan POSIX: Debian, Ubuntu, Fedora dan RHEL memilikinya, sedangkan image minimalis berbasis BusyBox seperti Alpine mungkin tidak.
ifconfig, nmcli dan networkctl
ifconfig (usang, net-tools)
ifconfig adalah perintah yang ditampilkan tutorial lama. Ia bagian dari net-tools, yang sudah lama dinyatakan usang dan digantikan iproute2, dan tidak lagi termasuk dalam instalasi bawaan rilis Ubuntu, Debian dan Fedora/RHEL saat ini. Jika muncul command not found, gunakan ip atau pasang paketnya:
sudo apt install net-tools # Debian / Ubuntu
sudo dnf install net-tools # Fedora / RHEL / Rocky / Alma$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 203.0.113.25 netmask 255.255.255.0 broadcast 203.0.113.255
inet6 fe80::5054:ff:fe12:3456 prefixlen 64 scopeid 0x20<link>Mudah dibaca, tetapi ada batasan nyata: ifconfig hanya menampilkan satu alamat IPv4 per antarmuka. Alamat sekunder yang ditambahkan dengan ip addr add, yang lazim pada VPS dengan beberapa IP publik, tidak terlihat olehnya.
nmcli dan networkctl
Desktop dan server keluarga Fedora/RHEL mengelola jaringannya dengan NetworkManager; Ubuntu Server memakai netplan di atas systemd-networkd, dan banyak image VPS mengikuti model yang sama. Masing-masing punya alat status yang menampilkan alamat, gateway dan DNS dalam satu blok:
nmcli device show eth0
nmcli -g IP4.ADDRESS device show eth0 # NetworkManager: just the address field
networkctl status eth0 # systemd-networkdFlag -g (--get-values) mencetak nilai mentah dari satu field, termasuk panjang prefiks, yang praktis untuk skrip. Jika Anda tidak yakin stack mana yang dipakai mesin Anda, atau bahkan distribusi dan rilis apa yang berjalan, identifikasi versi OS dari baris perintah terlebih dahulu; jawabannya menentukan alat mana yang tersedia.
Temukan alamat IP publik Anda dengan curl
Semua di atas melaporkan alamat yang dikonfigurasi pada antarmuka. Pada sebagian besar VPS, IPv4 publik ditetapkan langsung pada antarmuka, jadi itu pula yang dilihat internet. Di rumah, di kantor atau pada sebagian cloud, antarmuka membawa alamat privat dari rentang RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) dan sebuah router atau NAT 1:1 menerjemahkannya saat keluar. Satu-satunya cara andal untuk melihat sisi publik adalah bertanya ke layanan eksternal:
curl -4 icanhazip.com
curl -4 ifconfig.me/ip
curl -4 https://api.ipify.org
curl -6 icanhazip.com # public IPv6, if the host has oneFlag -4 dan -6 memaksa keluarga alamat, yang penting pada host dual-stack: tanpa keduanya curl bisa lebih memilih IPv6 dan mengembalikan alamat yang tidak Anda duga. icanhazip.com dioperasikan oleh Cloudflare sejak 2021 dan mengembalikan teks biasa. Bacalah jawabannya sebagai "alamat asal keluarnya trafik saya": di balik VPN atau proxy, yang muncul adalah alamat exit node, bukan alamat ISP Anda.
IPv6: global versus link-local
Hampir setiap antarmuka Linux menampilkan setidaknya satu baris inet6, dan baris itu sering dikira alamat IPv6 publik. Baris yang diawali fe80:: dan ditandai scope link adalah link-local: setiap antarmuka membuatnya otomatis, hanya berlaku pada jaringan yang terhubung, dan tidak pernah dapat dijangkau dari internet. Alamat IPv6 publik ditandai scope global dan diawali angka 2 atau 3, karena ruang global unicast adalah 2000::/3.
ip -6 addr show scope global
ip -6 route show defaultJika perintah pertama tidak mencetak apa pun, mesin tersebut tidak memiliki IPv6 yang dapat dirutekan dan curl -6 akan gagal. Alamat global tambahan yang ditandai temporary pada desktop berasal dari privacy extensions; server mematikannya agar alamat tetap stabil untuk DNS dan aturan firewall.
Gateway default, rute dan DNS
Sebuah alamat saja tidak memberi tahu apakah mesin bisa menjangkau sesuatu. Tabel routing-lah yang menjawabnya, dan ip route (bentuk singkat ip r) mencetaknya:
$ ip route
default via 203.0.113.1 dev eth0 proto static
203.0.113.0/24 dev eth0 proto kernel scope link src 203.0.113.25Baris default via adalah gateway default, router yang dipakai setiap paket ketika tidak ada rute yang lebih spesifik. Baris kedua ditambahkan kernel saat alamat dikonfigurasi; field src-nya adalah alamat yang lebih disukai host sebagai sumber di jaringan tersebut. Trik paling berguna di sini dibangun dari situ: tanyakan kepada kernel alamat mana yang akan dipakai untuk sebuah tujuan.
$ ip route get 1.1.1.1
1.1.1.1 via 203.0.113.1 dev eth0 src 203.0.113.25 uid 1000
cacheNilai src tersebut, menurut definisi, adalah alamat keluar mesin menuju internet, apa pun antarmuka, bridge atau tunnel yang ada. Untuk DNS, /etc/resolv.conf tetap tempat yang perlu dilihat, tetapi pada sistem yang menjalankan systemd-resolved (Ubuntu sejak 18.04, Fedora terbaru) berkas itu hanya berisi stub lokal 127.0.0.53; resolver upstream yang sebenarnya ditampilkan oleh resolvectl status, atau oleh field IP4.DNS dari nmcli device show pada host NetworkManager.
Skrip: menyimpan alamat IP ke dalam variabel
Keluaran interaktif dirancang untuk manusia; sebuah skrip butuh satu alamat tanpa embel-embel. Pola berikut cukup tangguh, dari yang paling sederhana hingga yang paling andal:
# One interface, IPv4, prefix length stripped
IP=$(ip -4 -o addr show dev eth0 | awk '{print $4}' | cut -d/ -f1)
# Robust: the source address used to reach the internet
IP=$(ip route get 1.1.1.1 | awk '{for (i=1; i<=NF; i++) if ($i == "src") {print $(i+1); exit}}')
# Same thing with JSON output and jq
IP=$(ip -j route get 1.1.1.1 | jq -r '.[0].prefsrc')
# Public IP, with a timeout so the script never hangs offline
PUBLIC_IP=$(curl -4 -s --max-time 5 https://icanhazip.com)Flag -o membuat ip mencetak satu alamat per baris, sehingga posisi field awk tetap aman; tambahkan head -n 1 jika antarmuka membawa beberapa alamat IPv4. Flag -j mengalihkan ip ke keluaran JSON, lalu jq mengambil field berdasarkan nama. Utamakan bentuk itu untuk apa pun yang berjalan di lebih dari satu mesin: nama antarmuka berbeda antar host, nama field tidak.
| Perintah | Yang ditampilkan | Paling cocok untuk |
|---|---|---|
ip addr / ip -br -4 addr | Setiap antarmuka, semua alamat, status | Penggunaan sehari-hari, gambaran lengkap |
hostname -I | Semua alamat dalam satu baris | Pengecekan sekilas |
ip route get 1.1.1.1 | Alamat sumber yang dipakai menuju internet | Skrip, host dengan banyak antarmuka |
ifconfig | Satu IPv4 per antarmuka (usang) | Sistem lawas, tutorial lama |
curl -4 icanhazip.com | IPv4 publik sebagaimana dilihat internet | NAT, VPN, memastikan alamat VPS |
Apa yang berbeda pada VPS
Pada VPS dengan IPv4 khusus, ip -4 addr, hostname -I dan curl -4 icanhazip.com semestinya mengembalikan alamat yang sama, karena IP publik dikonfigurasi langsung pada antarmuka tanpa NAT di tengah. Ketika hasilnya berbeda, ada sesuatu di jalurnya: NAT di sisi penyedia, klien VPN yang terlupakan, atau bridge Docker yang menempati posisi pertama pada hostname -I.
Setelah alamatnya dipastikan, periksa dua hal. Pertama, apakah alamat itu benar-benar dapat dijangkau dan pada port mana, yang merupakan pertanyaan berbeda dari apakah alamat itu terkonfigurasi: periksa port yang terbuka pada server Linux Anda dari dalam dengan ss -tulpn dan dari luar dengan nmap. Kedua, reverse DNS. Cari record PTR untuk alamat Anda:
dig -x 203.0.113.25 +shortVPS baru biasanya menjawab dengan nama generik milik penyedia, atau tidak menjawab sama sekali. Jika server mengirim email atau mengekspos layanan publik apa pun, atur hostname dan reverse DNS agar keduanya cocok; email keluar khususnya rutin ditolak ketika record PTR dan nama HELO tidak sesuai.
Perintah-perintah ini paling cepat menjadi refleks pada server yang alamatnya milik Anda sendiri dan tidak berpindah. VPS Linux dari rdp.monster hadir dengan IPv4 khusus, akses root penuh, CPU dan RAM khusus, bandwidth tanpa batas (fair-use) dan tanpa KYC, dengan pembayaran kripto diterima, mulai $8.99/bulan. Server aktif sekitar 10 detik setelah pembayaran dikonfirmasi, jadi perintah ip -br -4 addr pertama Anda hanya tinggal sesaat lagi.
Pertanyaan yang sering ditanyakan
Mengapa hostname -I menampilkan lebih dari satu alamat IP?
hostname -I mencetak semua alamat pada semua antarmuka kecuali loopback dan IPv6 link-local, sehingga mesin dengan Docker, libvirt, klien VPN atau kartu jaringan kedua menampilkan beberapa alamat. docker0 menyumbang 172.17.0.1, virbr0 biasanya 192.168.122.1, dan host dual-stack menambahkan alamat IPv6 globalnya. Urutannya tidak terjamin. Ketika Anda butuh alamat asal keluarnya trafik Anda, jalankan ip route get 1.1.1.1 dan baca field src-nya.Mengapa ifconfig menampilkan command not found di Ubuntu?
ifconfig adalah bagian dari paket net-tools, yang dinyatakan usang dan digantikan iproute2 serta tidak ada dalam instalasi bawaan rilis Ubuntu, Debian dan Fedora/RHEL saat ini. Penggantinya adalah ip addr, yang tersedia di mana saja. Jika sebuah skrip atau kebiasaan lama benar-benar membutuhkannya, pasang paketnya dengan sudo apt install net-tools atau sudo dnf install net-tools, dengan mengingat bahwa ifconfig hanya menampilkan satu IPv4 per antarmuka dan menyembunyikan alamat sekunder yang ditambahkan dengan ip addr add.Mengapa hostname -i mengembalikan 127.0.1.1?
hostname -i sama sekali tidak memeriksa jaringan: ia meresolusi nama host sistem seperti aplikasi mana pun, melalui /etc/hosts lalu DNS. Installer Debian dan Ubuntu menambahkan baris yang memetakan nama host ke 127.0.1.1 agar mesin dapat meresolusi namanya sendiri tanpa jaringan, dan baris itulah yang dikembalikan. Gunakan bentuk huruf besar, hostname -I, yang membaca alamat antarmuka sesungguhnya, atau ip -4 addr untuk detail lengkapnya.Bagaimana cara menemukan alamat IP perangkat lain di jaringan saya?
ip neigh show (atau arp -a jika net-tools terpasang). Untuk gambaran lengkap, lakukan ping-sweep pada subnet: nmap -sn 192.168.1.0/24 mencantumkan setiap host yang menjawab, lengkap dengan nama jika reverse DNS menyediakannya. Ganti dengan jaringan Anda sendiri, yang bisa dibaca dari rute scope link pada ip route. Pada VPS hal ini jarang berguna, dan memindai alamat tetangga bisa melanggar ketentuan penyedia Anda.Adrien Roche, Editor Infrastruktur & Hosting
Insinyur sistem yang sudah 10+ tahun mengelola server Windows Server dan Linux. Adrien mengurus dokumentasi infrastruktur rdp.monster dan menulis panduan kami tentang RDP, hosting VPS, administrasi server, jaringan, dan tool privasi.




