Alamat IP, DNS, dan port: memahami koneksi web di Linux

Alamat Internet Protocol (IP) menunjukkan alamat tujuan komunikasi di jaringan, Domain Name System (DNS) mencari rekaman yang terkait dengan nama domain, dan port membedakan titik akhir komunikasi di dalam sebuah host. Untuk membuka situs web, resolusi nama, rute ke tujuan, dan layanan yang menerima koneksi harus sama-sama berfungsi.

Setelah memahami perbedaan alamat, nama, dan port, gunakan panduan diagnosis koneksi jaringan berbahasa Inggris untuk memeriksa kegagalan pada tiap lapisan secara terpisah.

Rujukan latihan konfigurasi adalah mesin virtual (VM) dengan instalasi biasa Ubuntu 26.04 LTS, yaitu rilis dengan dukungan jangka panjang, atau Rocky Linux seri 9. Konfigurasi layanan dan paket dapat berbeda pada kontainer, Windows Subsystem for Linux (WSL), serta rilis lain. Siapkan pemulihan melalui konsol dan catat versi lingkungan dengan mengikuti panduan persiapan mesin virtual berbahasa Inggris.

Membedakan alamat, nama, dan port dalam satu koneksi web

Bayangkan Anda membuka https://example.com/. Peramban dan sistem operasi mendapatkan informasi alamat sesuai cache serta konfigurasi resolver, yaitu komponen yang menangani pencarian nama. Sistem kemudian memilih rute dan berkomunikasi dengan server. HTTPS merupakan versi aman dari Hypertext Transfer Protocol (HTTP); port bawaannya 443. Pertukaran dapat memakai Transmission Control Protocol (TCP) dengan Transport Layer Security (TLS), atau QUIC, protokol transport aman berbasis User Datagram Protocol (UDP), seperti pada HTTP/3. Keberhasilan memperoleh jawaban DNS saja tidak menjamin situs dapat diakses.

Komponen Peran Contoh
Alamat IP Alamat untuk mengirim paket 192.0.2.10 atau 2001:db8::10
DNS Mencari rekaman yang terkait dengan nama Rekaman A, AAAA, dan MX
Port dan protokol Membedakan titik akhir komunikasi TCP 443 berbeda dari UDP 443

Rentang 192.0.2.0/24 dan 2001:db8::/32 disediakan untuk dokumentasi, bukan alamat server yang dapat Anda pakai sebagai tujuan latihan koneksi. TCP dan UDP memiliki ruang nomor port terpisah, sehingga aturan firewall harus menyebutkan protokol selain nomor port. MX, berbeda dari A dan AAAA, menunjukkan server penerima surat untuk suatu domain.

Memahami IPv4, IPv6, dan alamat privat

IP versi 4 (IPv4) memakai alamat 32 bit yang biasanya ditulis sebagai angka desimal dipisahkan titik. IP versi 6 (IPv6) memakai alamat 128 bit yang biasanya ditulis sebagai kelompok heksadesimal dipisahkan titik dua. Satu antarmuka jaringan dapat memiliki beberapa alamat dan mendukung keduanya. 127.0.0.1 dan ::1 adalah alamat loopback yang mengarah kembali ke perangkat sendiri. Layanan yang hanya mendengarkan pada loopback tidak dapat diakses langsung dari komputer lain.

Rentang privat IPv4 adalah 10.0.0.0/8, 172.16.0.0/12, dan 192.168.0.0/16. Rentang ini dapat dipakai ulang dalam jaringan privat dan bukan alamat publik yang dirutekan secara global. Akses keluar dapat memakai network address translation (NAT), yaitu penerjemahan alamat jaringan. Jangan menganggap IPv6 sekadar IPv4 tanpa NAT, atau aturan firewall IPv4 otomatis melindungi koneksi IPv6.

Membaca prefiks jaringan dan rute bawaan

Pada 192.168.10.20/24, /24 adalah notasi Classless Inter-Domain Routing (CIDR) yang menyatakan prefiks jaringan sepanjang 24 bit. Contoh itu berada di jaringan 192.168.10.0/24. Perutean mencari prefiks tujuan yang cocok dan umumnya mengutamakan yang lebih spesifik. Entri default via ... memberikan hop berikutnya ketika tidak ada rute lebih spesifik yang berlaku. Alamat gateway dan server DNS bisa sama, tetapi tugasnya berbeda: gateway meneruskan paket, sedangkan server DNS membantu pencarian nama.

ip -brief address
ip route
ip -6 route
getent ahosts example.com

ip berasal dari proyek iproute2, tetapi nama paket distribusinya berbeda: iproute2 pada Ubuntu 26.04 dan iproute pada Rocky Linux 9. Tiga perintah pertama menampilkan alamat antarmuka, rute IPv4, serta rute IPv6. getent memakai konfigurasi layanan nama sistem, yang dapat mencakup /etc/hosts dan sumber lain selain DNS. Nama antarmuka dan alamat hasilnya berbeda menurut mesin; hasil getent bukan bukti bahwa kueri DNS langsung telah dilakukan.

Periksa paket serta versi yang terpasang dengan dpkg-query -W iproute2 pada Ubuntu atau rpm -q iproute pada Rocky. Nama paket RPM juga tersedia di repositori resmi Rocky Linux 9 BaseOS.

Memeriksa resolusi nama terpisah dari layanan

Rekaman A menyimpan alamat IPv4, sedangkan rekaman AAAA menyimpan alamat IPv6. Satu nama dapat menghasilkan beberapa alamat; cache serta masa berlakunya memengaruhi hasil yang terlihat. Pada sistem dengan systemd-resolved, perintah pertama berikut menampilkan konfigurasi resolver. Jika tidak tersedia, periksa konfigurasi NetworkManager atau resolver yang benar-benar dipakai distribusi tersebut.

resolvectl status
ss -lnt
curl -I --connect-timeout 5 --max-time 15 https://example.com/

ss -lnt menampilkan soket TCP lokal yang mendengarkan: -l memilih soket pendengar, -n menampilkan angka tanpa menerjemahkan nama layanan, dan -t memilih TCP. Daftar itu bukan daftar port pada situs web jarak jauh. curl -I mengirim permintaan HTTP HEAD untuk memperoleh header respons HTTPS; perintah itu tidak mengunduh isi halaman sebagai GET. Batas waktu koneksi pada contoh adalah 5 detik dan batas seluruh operasi 15 detik.

Jika curl belum tersedia, pasang dengan sudo apt install curl pada Ubuntu atau sudo dnf install curl pada Rocky Linux setelah meninjau transaksi paket. Proksi, kepercayaan sertifikat, dan kebijakan jaringan dapat memengaruhi hasil. Periksa status HTTP serta pesan galatnya: kode keluar curl nol saja tidak menjamin status HTTP berhasil. Jika server menolak HEAD, bandingkan dengan GET atau akses peramban sebelum menyimpulkan halaman rusak. Respons yang berhasil pun belum membuktikan seluruh fungsi aplikasi berjalan.

Menentukan pemeriksaan berikutnya berdasarkan bukti

  1. Jika antarmuka tidak memiliki alamat, periksa koneksi jaringan VM dan konfigurasi antarmukanya.
  2. Jika alamat tersedia tetapi tidak ada rute yang dapat dipakai, periksa perutean serta gateway.
  3. Jika hanya resolusi nama yang gagal, periksa konfigurasi resolver dan layanan nama sistem.
  4. Jika resolusi nama dan rute berfungsi, bedakan masalah port pendengar, penyaringan lalu lintas, TLS, dan aplikasi.

Perintah pemeriksaan dalam blok contoh tidak mengubah konfigurasi; pemasangan paket curl adalah tindakan terpisah yang mengubah sistem. Jangan langsung menimpa berkas resolver atau mematikan firewall sebagai respons pertama. Tentukan lapisan yang gagal berdasarkan hasil pengamatan sebelum melakukan perubahan yang terarah.

Dokumentasi resmi