Linux: memeriksa alamat IP, rute, dan IP publik
Di Linux, alamat IP yang dikonfigurasi pada server dapat diperiksa dengan ip address sebagai metode dasar. Untuk memperkirakan alamat sumber bagi tujuan tertentu, periksa nilai src dari ip route get destination dengan kondisi yang relevan, dan IP publik yang terlihat di internet perlu diperiksa secara terpisah karena NAT, proxy, atau VPN.
IP berarti Internet Protocol; IPv4 dan IPv6 adalah dua versinya. NAT (Network Address Translation) menerjemahkan alamat antarjaringan, sedangkan VPN adalah jaringan privat virtual. Perintah di sini hanya membaca informasi dan umumnya tidak memerlukan sudo. Perintah ip berasal dari iproute2; jika belum tersedia, pasang paket distribusi yang sesuai. Dukungan -brief dan -j bergantung pada versi; periksa ip -Version dan ip --help.
ip -brief address
ip route get 1.1.1.1
Baris pertama menampilkan antarmuka, status, dan alamat beserta prefiks. Baris kedua mencari rute IPv4; ganti tujuan dengan alamat yang relevan bagi aplikasi. Pemakaian alamat numerik tidak memerlukan DNS (Domain Name System) dan tidak menguji apakah layanan tujuan dapat diakses.
Satu server dapat memiliki beberapa alamat sekaligus, termasuk loopback, IPv4 pribadi, IPv4 publik, IPv6 link-local, IPv6 global, dll. Oleh karena itu, "IP saya" tergantung pada jaringan mana yang sedang Anda coba hubungi.
Cara tercepat untuk memeriksa alamat IP
Lihat semua antarmuka dengan mudah
ip -brief address
-brief menampilkan nama antarmuka, status, dan alamat dalam satu baris per antarmuka. lo adalah antarmuka loopback untuk berkomunikasi dengan dirinya sendiri, dan 127.0.0.1 serta ::1 bukan alamat untuk perangkat eksternal terhubung.
Lihat hanya alamat IPv4
ip -4 address show
Untuk mempersempit hanya pada alamat IPv4 dengan lingkup global, jalankan sebagai berikut.
ip -4 address show scope global
scope global bukan penyaring IP publik. Ini adalah cakupan yang diberikan Linux; alamat privat seperti 192.168.1.10 juga dapat memiliki cakupan tersebut. Lihat registri alamat khusus IPv4 IANA untuk membedakan penggunaan alamat.
Lihat hanya alamat IPv6
ip -6 address show
Alamat lokal unik IPv6 atau ULA (Unique Local Address), pada fc00::/7, juga bukan bukti akses internet publik. Registri IPv6 IANA membedakan ULA dan alamat khusus lain. Periksa juga tentative atau dadfailed pada alamat yang baru dikonfigurasi.
IPv6 dapat menampilkan baik scope link alamat, yang hanya berlaku dalam tautan tersebut, maupun scope global alamat, yang digunakan dalam skala lebih luas. Karena juga bisa ada beberapa alamat privasi sementara, periksa properti alamat seperti scope, temporary, dan dynamic bersama-sama.
Cara membaca output 'ip address'
ip address show menampilkan antarmuka jaringan dan alamat protokol yang terpasang pada antarmuka tersebut secara rinci. Anda dapat memeriksa sintaks perintah dan properti alamat di manual ip-address .
ip address show
| Item yang ditampilkan | Arti | Hal yang perlu diperiksa |
|---|---|---|
Flag UP |
Antarmuka secara administratif aktif | Ini tidak berarti bahwa tautan dan komunikasi sebenarnya normal. |
LOWER_UP |
Tautan lapisan bawah perangkat aktif | Petunjuk untuk menentukan status kabel atau tautan virtual. |
inet |
Alamat IPv4 dan panjang prefiks | Ditampilkan seperti 192.0.2.10/24. |
inet6 |
Alamat IPv6 dan panjang prefiks | Anda perlu membedakan antara alamat link-local dan global. |
scope |
Lingkup alamat yang berlaku | Mencakup host, link, global, dan sebagainya. |
valid_lft |
Masa berlaku alamat | Alamat dinamis dapat berubah atau dihapus dari waktu ke waktu. |
UP dalam tabel adalah flag administratif, bukan bidang state yang ditampilkan terpisah. Pada 192.0.2.10/24, /24 menunjukkan 24 bit prefiks jaringan. Alamat itu berasal dari rentang dokumentasi, bukan untuk dikonfigurasi pada produksi.
Periksa antarmuka jaringan tertentu
Temukan nama antarmuka
ip -brief link
Tergantung pada lingkungan, namanya bisa berbeda, seperti eth0, ens3, enp1s0, wlan0. Jangan mengasumsikan nama tertentu dari dokumentasi atau skrip; periksa daftar sistem yang sebenarnya terlebih dahulu.
Lihat alamat dari antarmuka yang dipilih
ip address show dev ens3
ens3 adalah contoh. Ganti dengan nama antarmuka yang sebenarnya. Jika hanya alamat global IPv4 yang diperlukan, Anda dapat menentukan kondisi bersamaan.
ip -4 address show dev ens3 scope global
Periksa IP untuk komunikasi eksternal yang sebenarnya
Periksa src dalam pencarian rute
Jika ada beberapa alamat, antarmuka yang dipilih dan alamat sumber dapat bervariasi tergantung pada tujuan. Periksa keputusan routing untuk tujuan tertentu dengan ip route get.
ip route get 1.1.1.1
Dalam keluaran, dev menunjukkan antarmuka, via gerbang berikutnya jika ada, dan src alamat sumber yang dipilih kernel untuk pencarian itu. Perintah ini menanyakan tabel routing dan tidak menjamin bahwa koneksi ke server atau aplikasi target akan berhasil. Untuk sintaksis mendetail, lihat ip-route manual.
Rute yang terhubung langsung dapat tidak memiliki via. route get menyelesaikan pencarian tanpa mengirim paket; hasil bergantung pada namespace dan kondisi pencarian. Aplikasi yang mengikat alamat lain atau memakai VPN, tanda routing, atau kebijakan berbeda dapat memilih jalur lain. src tidak menunjukkan perubahan NAT setelahnya.
Memeriksa gerbang default
ip route show default
Jika ada beberapa jalur default, jalur yang sebenarnya mungkin berbeda tergantung pada metrik, aturan routing kebijakan, dan tujuan. Inilah mengapa disarankan untuk memeriksa hasil ip route get bersama-sama.
Memeriksa jalur IPv6
ip -6 route get 2606:4700:4700::1111
Alamat IPv6 saja tidak menjamin konektivitas: rute, router, firewall, dan aplikasi juga harus mengizinkan lalu lintas. Jika menggunakan nama, DNS perlu memberikan tujuan yang sesuai; pencarian dengan alamat numerik tidak bergantung pada resolusi nama.
Memeriksa dengan cepat menggunakan hostname -I
Pada beberapa distribusi Linux, perintah berikut dapat menghasilkan alamat yang diatur pada host yang dipisahkan dengan spasi.
hostname -I
Dalam implementasi hostname Debian, -I tidak memakai resolusi nama, mengabaikan loopback dan IPv6 link-local, serta tidak menjamin urutan alamat. Implementasi lain dapat berbeda; periksa hostname --help. Hasilnya bukan daftar lengkap semua alamat atau pilihan sumber untuk suatu tujuan.
Singkat dan praktis, tetapi tidak menampilkan nama antarmuka, panjang prefix, rentang alamat, atau rute yang dipilih. Untuk menentukan alamat yang sebenarnya digunakan untuk komunikasi di antara beberapa alamat, gunakan ip address dan ip route get.
hostname -i menunjukkan hasil resolusi nama, sehingga dipengaruhi oleh /etc/hosts atau pengaturan DNS dan berbeda dari menanyakan alamat yang langsung disetel di antarmuka. Penting untuk tidak membingungkan opsi yang serupa.
Membedakan IP pribadi dan IP publik
Alamat antarmuka lokal
Alamat yang ditampilkan oleh ip address disetel pada antarmuka dari namespace jaringan Linux tersebut. Jika berada di belakang router rumah atau NAT cloud, alamat IPv4 pribadi dalam rentang 10.0.0.0/8, 172.16.0.0/12, atau 192.168.0.0/16 mungkin terlihat.
Alamat yang terlihat di internet
Saat melewati NAT, layanan eksternal mungkin melihat IP publik dari router, gateway cloud, VPN, atau proxy. Periksa pemetaan pada perangkat jaringan atau konsol cloud dan, bila perlu, amati koneksi di layanan tujuan. Alamat yang terlihat pada satu permintaan dapat berbeda menurut tujuan, keluarga IP, atau aplikasi.
Anda juga dapat menggunakan layanan web pemeriksa IP eksternal, tetapi waktu permintaan dan alamat sumber akan dikirim ke layanan tersebut. Pilih layanan yang tepercaya dan pertimbangkan ketergantungan otomatisasi, perbedaan IPv4/IPv6, serta kemungkinan kegagalan.
Memeriksa layanan dan akses port
Mengetahui IP publik tidak berarti layanan server dapat diakses dari internet. Anda harus memeriksa penerusan port NAT, grup keamanan cloud, firewall host, serta alamat dan port penerima layanan.
ss -lntup
Privileg administrator mungkin diperlukan untuk melihat informasi proses. Sebelum mengekspos layanan secara eksternal, tinjau autentikasi, enkripsi, status pembaruan, dan cakupan minimum yang diizinkan.
Menangani alamat IP dalam skrip
Gunakan output JSON
Lebih dapat diandalkan untuk memproses output JSON ip secara struktural daripada menggunakan kombinasi grep yang bergantung pada posisi string.
ip -j -4 address show scope global
Hasil JSON berupa array antarmuka; periksa setiap addr_info untuk alamat yang memenuhi kriteria. Array kosong dapat sah jika tidak ada alamat yang cocok, sedangkan kegagalan perintah harus dibedakan melalui status keluar dan pesan kesalahan. Lihat manual ip untuk opsi JSON dan format ringkas.
Parser JSON harus mengiterasi melalui antarmuka dan array addr_info serta menangani kemungkinan beberapa alamat. Bidang output dapat berbeda tergantung pada versi ip, jadi verifikasi di distribusi target.
Jangan memilih hanya satu alamat secara tanpa syarat
Di lingkungan dengan server multi-home, VPN, kontainer, atau alamat IPv6 sementara, tidak ada jaminan bahwa "alamat pertama" adalah yang dibutuhkan aplikasi. Pilih setelah mendefinisikan dengan jelas tujuan, keluarga alamat, antarmuka, dan kondisi cakupan.
Kontainer dan namespace jaringan
Menjalankan ip address di dalam kontainer umumnya menunjukkan alamat-alamat dari namespace jaringan kontainer tersebut. Alamat ini mungkin berbeda dari alamat antarmuka host atau alamat NAT eksternal.
Namespace jaringan mengisolasi antarmuka, rute, dan sumber daya jaringan lainnya; lihat manual namespace jaringan Linux. Kontainer yang berbagi jaringan host merupakan pengecualian.
Host, kontainer, Pod Kubernetes, layanan, ingress, dan load balancer eksternal dapat memiliki alamat yang berbeda. Saat mendiagnosis masalah, catat namespace tempat perintah dijalankan dan bedakan setiap lapisan jalur komunikasi.
Apakah saya bisa menggunakan ifconfig?
ifconfig sering terlihat pada dokumentasi lama, tetapi mungkin tidak terpasang secara default pada distribusi Linux terbaru dan tidak bisa sepenuhnya merepresentasikan fitur jaringan modern. Dalam dokumentasi dan skrip baru, disarankan untuk lebih memilih perintah iproute2 seperti ip address, ip link, dan ip route.
Jika prosedur operasi sistem yang ada bergantung pada ifconfig, jangan menghapusnya secara langsung. Sebaiknya, periksa perbedaan keluaran dan perilakunya dan lakukan transisi secara bertahap.
Pertanyaan yang Sering Diajukan
Apakah 127.0.0.1 adalah IP server?
Ini adalah alamat loopback IPv4 yang merujuk ke server itu sendiri. Perangkat di jaringan yang sama tidak dapat mengakses server menggunakan alamat ini.
Jika muncul beberapa alamat, yang mana yang harus saya gunakan?
Itu tergantung pada pihak yang ingin Anda hubungkan dan jalurnya. Untuk jaringan internal yang sama, gunakan alamat antarmuka yang dapat dijangkau oleh klien. Untuk alamat sumber yang digunakan saat menuju tujuan eksternal tertentu, periksa src di ip route get destination.
Mengapa saya tidak melihat IP publik di ip address?
Ini mungkin karena server berada di belakang NAT, load balancer, VPN, atau proxy. Periksa pemetaan alamat eksternal di peralatan jaringan atau konsol cloud Anda.
Apakah saya bisa terhubung melalui SSH hanya dengan mengetahui alamat IP?
Tidak. Server SSH harus mendengarkan pada alamat dan port yang sesuai, routing/NAT/firewall/kelompok keamanan harus mengizinkan koneksi, dan metode autentikasi yang valid juga diperlukan.
Ringkasan
Anda dapat memeriksa alamat antarmuka dengan ip -brief address, dan informasi IPv4/IPv6 secara rinci dengan ip -4 address dan ip -6 address. Nilai src dari ip route get destination menunjukkan sumber untuk kondisi pencarian tersebut; aplikasi atau NAT sesudahnya dapat menghasilkan alamat berbeda.
Alamat lokal dan alamat publik yang terlihat di Internet mungkin berbeda karena NAT dan proxy. Selalu tentukan rentang alamat, namespace jaringan yang Anda jalankan, dan tujuan komunikasi yang sebenarnya secara bersamaan.




