15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
30.10.2024
1 +1

Menguasai File Hosts Linux: Panduan Lengkap untuk Kontrol DNS Lokal

Baik Anda seorang developer yang menguji aplikasi baru, sysadmin yang memecahkan masalah propagasi DNS, atau sekadar seseorang yang ingin memblokir situs web yang mengganggu, file /etc/hosts adalah salah satu alat paling powerful dan kurang dimanfaatkan di sistem Linux mana pun. Panduan ini menyediakan panduan mendalam dan praktis tentang semua yang perlu Anda ketahui — mulai dari memahami apa itu file hosts hingga mengeditnya dengan aman di lingkungan VPS Hosting Anda.

Daftar Isi

  1. Apa Itu File Hosts?
  2. Di Mana File Hosts Berada di Linux?
  3. Memahami Struktur File Hosts
  4. Cara Mengedit File Hosts di Linux (Langkah demi Langkah)
  5. Kasus Penggunaan Umum untuk File Hosts
  6. Membersihkan Cache DNS Setelah Pengeditan
  7. Praktik Terbaik dan Pertimbangan Keamanan
  8. Kesimpulan

1. Apa Itu File Hosts? {#what-is-the-hosts-file}

File hosts adalah file sistem teks biasa yang memetakan nama host yang dapat dibaca manusia — seperti www.example.com — ke alamat IP yang sesuai. File ini berfungsi sebagai resolver DNS lokal dan statis, dan yang terpenting, file ini dikonsultasikan oleh sistem operasi *sebelum* kueri DNS eksternal apa pun dibuat.

Ini berarti entri dalam file hosts Anda memiliki prioritas mutlak atas rekaman DNS yang dikembalikan oleh server nama eksternal. Karakteristik tunggal tersebut menjadikannya alat yang sangat serbaguna untuk:

  • Lingkungan pengembangan lokal — Uji situs web dengan domain yang terlihat nyata tanpa menyentuh rekaman DNS langsung.
  • Pemecahan masalah DNS — Paksa sementara domain untuk mengarah ke IP tertentu guna menguji konfigurasi server.
  • Pemblokiran situs web — Alihkan domain yang tidak diinginkan ke alamat yang tidak dapat dirutekan, sehingga secara efektif memblokir akses.
  • Pengujian staging dan pra-peluncuran — Pratinjau pengaturan server baru sebelum beralih DNS secara global.
  • Keamanan jaringan — Blokir domain berbahaya yang diketahui di tingkat OS.

> Catatan teknis: Di Linux, urutan resolusi diatur oleh file /etc/nsswitch.conf. Konfigurasi default biasanya menempatkan files (yaitu, /etc/hosts) sebelum dns, memastikan entri lokal selalu diperiksa terlebih dahulu.

2. Di Mana File Hosts Berada di Linux? {#location}

Pada semua distribusi Linux utama — termasuk Ubuntu, Debian, CentOS, Rocky Linux, AlmaLinux, dan Arch Linux — file hosts terletak di:

/etc/hosts

Jalur ini konsisten di seluruh distribusi, sehingga mudah digunakan terlepas dari lingkungan Anda. File ini dimiliki oleh root dan memerlukan hak istimewa yang ditingkatkan untuk diedit.

Konten Default dari /etc/hosts

Server Linux yang baru disediakan — seperti yang berjalan di AlexHost VPS Hosting — biasanya akan berisi entri default yang mirip dengan berikut ini:

127.0.0.1       localhost
127.0.1.1       your-hostname.example.com your-hostname

# The following lines are desirable for IPv6 capable hosts
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

Entri-entri ini memastikan bahwa:

    localhost selalu mengarah ke alamat loopback 127.0.0.1 (IPv4) dan ::1 (IPv6).
    Nama host server itu sendiri mengarah secara lokal tanpa memerlukan pencarian DNS eksternal.
    
    Jangan hapus entri default ini kecuali Anda memiliki alasan yang spesifik dan dipahami dengan baik untuk melakukannya. Menghapusnya dapat menyebabkan perilaku tak terduga dalam layanan sistem, pengiriman email, dan kerangka kerja aplikasi.
    3. Memahami Struktur File Hosts {#structure}
    File hosts mengikuti format yang sederhana dan konsisten. Setiap baris yang tidak kosong dan bukan komentar mewakili satu pemetaan dan mengikuti sintaks ini:
    IP_address    hostname    [alias1]    [alias2]    ...
    
    
    
    
    Bidang
    Deskripsi
    
    
    
    
    IP_address
    Alamat IPv4 atau IPv6 yang harus dituju oleh nama host
    
    
    hostname
    Nama domain yang sepenuhnya memenuhi syarat (FQDN) utama atau nama host singkat
    
    
    alias (opsional)
    Satu atau lebih nama tambahan yang harus mengarah ke IP yang sama
    
    
    
    
    Aturan Pemformatan Utama
    
    Spasi: Bidang dipisahkan oleh spasi atau tab. Beberapa spasi dapat diterima.
    Komentar: Teks apa pun yang mengikuti karakter # pada sebuah baris diperlakukan sebagai komentar dan diabaikan oleh sistem.
    Sensitivitas huruf: Nama host tidak peka huruf besar/kecil dalam praktiknya, tetapi huruf kecil adalah konvensinya.
    Satu IP per baris: Setiap baris dimulai dengan tepat satu alamat IP, diikuti oleh satu atau lebih nama host.
    
    Contoh Praktis
    Petakan satu domain ke localhost:
    127.0.0.1    example.com
    Petakan beberapa nama host ke IP yang sama dalam satu baris:
    127.0.0.1    example.com    www.example.com    staging.example.com
    Blokir domain dengan mengarahkannya ke alamat yang tidak dapat dirutekan:
    0.0.0.0    ads.tracker.com
    Paksa domain untuk mengarah ke IP server jarak jauh tertentu:
    203.0.113.42    mywebsite.com    www.mywebsite.com
    Tambahkan komentar sebaris untuk dokumentasi:
    # Local development environment - Project Alpha
    127.0.0.1    alpha.local    api.alpha.local
    
    # Blocked domains - updated 2025-01-15
    0.0.0.0    malicious-site.com
    4. Cara Mengedit File Hosts di Linux (Langkah demi Langkah) {#editing}
    Karena /etc/hosts adalah file konfigurasi sistem, Anda memerlukan hak akses root atau sudo untuk memodifikasinya. Berikut adalah alur kerja yang lengkap dan aman untuk produksi.
    Langkah 1: Buat Cadangan Sebelum Mengedit
    Ini adalah praktik terbaik yang tidak dapat dinegosiasikan. Selalu buat cadangan file sebelum membuat perubahan apa pun:
    sudo cp /etc/hosts /etc/hosts.bak
    Anda dapat memverifikasi cadangan telah dibuat:
    ls -lh /etc/hosts*
    Jika ada yang salah, pulihkan seketika dengan:
    sudo cp /etc/hosts.bak /etc/hosts
    Langkah 2: Buka File Hosts dengan Editor Teks
    Menggunakan nano (direkomendasikan untuk pemula dan pengeditan cepat):
    sudo nano /etc/hosts
    nano mudah digunakan, menampilkan pintasan keyboard di bagian bawah layar, dan tersedia di hampir setiap distribusi Linux secara default.
    Menggunakan vim (lebih disukai oleh administrator berpengalaman):
    sudo vim /etc/hosts
    Menggunakan vi (tersedia pada instalasi minimal):
    sudo vi /etc/hosts
    Langkah 3: Tambah, Ubah, atau Hapus Entri
    Setelah file terbuka, navigasikan ke lokasi yang sesuai dan buat perubahan Anda. Berikut adalah operasi yang paling umum:
    Tambahkan pemetaan baru (tambahkan ke akhir file):
    127.0.0.1    myproject.local    www.myproject.local
    Blokir situs web:
    0.0.0.0    facebook.com    www.facebook.com
    Timpa DNS untuk domain (misalnya, untuk menguji server baru):
    198.51.100.25    mywebsite.com    www.mywebsite.com
    Langkah 4: Simpan dan Keluar dari Editor
    Di nano:
    
    Tekan CTRL + O untuk menulis (menyimpan) file.
    Tekan Enter untuk mengonfirmasi nama file.
    Tekan CTRL + X untuk keluar.
    
    Di vim atau vi:
    
    Tekan Esc untuk memastikan Anda berada dalam mode perintah.
    Ketik :wq dan tekan Enter untuk menulis dan keluar.
    Untuk keluar tanpa menyimpan, ketik :q! dan tekan Enter.
    
    Langkah 5: Verifikasi Sintaks Perubahan Anda
    Sebelum pengujian, konfirmasi secara visual bahwa entri Anda terlihat benar:
    cat /etc/hosts
    Anda juga dapat menggunakan grep untuk menemukan entri tertentu dengan cepat:
    grep "myproject.local" /etc/hosts
    Langkah 6: Uji Pemetaan Baru
    Gunakan ping untuk memverifikasi bahwa nama host mengarah ke alamat IP yang diharapkan:
    ping -c 4 myproject.local
    Untuk domain yang diblokir (dipetakan ke 0.0.0.0 atau 127.0.0.1), ping harus gagal atau segera kembali:
    ping -c 2 facebook.com
    Anda juga dapat menggunakan getent untuk pencarian file hosts yang lebih langsung:
    getent hosts myproject.local
    Perintah ini mengkueri tumpukan resolusi nama sistem (termasuk /etc/hosts) dan mengembalikan IP yang diselesaikan, menjadikannya lebih andal daripada ping untuk tujuan verifikasi.
    5. Kasus Penggunaan Umum untuk File Hosts {#use-cases}
    5.1. Pengembangan Web Lokal
    Ini bisa dibilang kasus penggunaan paling umum di kalangan developer. Alih-alih mengakses proyek lokal Anda melalui http://localhost:3000 atau http://127.0.0.1:8080, Anda dapat menetapkan nama domain yang bermakna dan mirip produksi.
    Contoh pengaturan:
    Tambahkan ke /etc/hosts:
    127.0.0.1    myproject.local    api.myproject.local    admin.myproject.local
    Setelah menyimpan, navigasikan ke http://myproject.local di browser Anda. Permintaan Anda akan diselesaikan secara lokal tanpa pernah menyentuh server DNS eksternal.
    Pendekatan ini sangat berharga ketika:
    
    Aplikasi Anda menggunakan virtual hosting dan memerlukan header Host tertentu.
    Anda menguji sertifikat SSL secara lokal (menggunakan sertifikat yang ditandatangani sendiri yang dipetakan ke nama domain yang tepat).
    Anda perlu mensimulasikan arsitektur multi-subdomain (misalnya, api., admin., cdn.).
    
    Jika Anda menjalankan beberapa proyek di VPS dengan cPanel, file hosts juga dapat membantu Anda menguji konfigurasi domain sebelum propagasi DNS selesai.
    5.2. Memblokir Situs Web yang Tidak Diinginkan
    File hosts adalah pemblokir konten yang ringan dan tanpa ketergantungan. Dengan mengalihkan domain ke 0.0.0.0 (lebih disukai daripada 127.0.0.1 karena gagal lebih cepat tanpa upaya koneksi), Anda dapat memblokir akses di tingkat OS — memengaruhi semua browser dan aplikasi secara bersamaan.
    Blokir gangguan media sosial:
    0.0.0.0    facebook.com    www.facebook.com
    0.0.0.0    twitter.com    www.twitter.com
    0.0.0.0    reddit.com    www.reddit.com
    Blokir domain penyajian iklan atau pelacakan yang diketahui:
    0.0.0.0    doubleclick.net
    0.0.0.0    ads.google.com
    0.0.0.0    tracking.example-analytics.com
    > Tips pro: Daftar blokir yang dikelola komunitas (seperti yang berasal dari proyek hosts StevenBlack) mengompilasi puluhan ribu domain iklan, pelacakan, dan malware ke dalam format file hosts tunggal, yang dapat Anda gabungkan ke dalam /etc/hosts Anda.
    5.3. Pengujian Server Pra-Peluncuran dan Peralihan DNS
    Saat memigrasikan situs web ke server baru — misalnya, berpindah dari Web Hosting Bersama ke Server Dedicated — propagasi DNS dapat memakan waktu mulai dari beberapa menit hingga 48 jam. File hosts memungkinkan Anda melihat pratinjau server baru segera, hanya dari mesin lokal Anda, tanpa memengaruhi pengguna lain.
    Skenario: Anda memigrasikan mywebsite.com ke server baru di IP 203.0.113.42.
    Tambahkan ke /etc/hosts lokal Anda:
    203.0.113.42    mywebsite.com    www.mywebsite.com
    Sekarang, ketika Anda mengunjungi mywebsite.com di browser Anda, Anda akan melihat konten server baru. Pengunjung lain di seluruh dunia masih akan melihat server lama hingga DNS menyebar. Setelah Anda mengonfirmasi semuanya berfungsi dengan benar, hapus entri tersebut dan biarkan DNS mengambil alih.
    Teknik ini sangat berharga untuk:
    
    Memverifikasi konfigurasi server web sebelum go-live.
    Menguji Sertifikat SSL di server baru.
    Mengonfirmasi perutean email dan perilaku aplikasi pasca-migrasi.
    
    5.4. Melewati Kegagalan Resolusi DNS
    Jika server DNS untuk sementara tidak tersedia atau mengembalikan hasil yang salah, Anda dapat menggunakan file hosts sebagai penggantian darurat untuk memulihkan konektivitas ke layanan penting.
    Contoh:
    # Emergency override - DNS server outage 2025-01-15
    198.51.100.10    internal-api.company.com
    198.51.100.11    database.company.com
    Ingat untuk menghapus entri ini setelah masalah DNS yang mendasarinya teratasi untuk menghindari pemetaan yang sudah usang menyebabkan kebingungan di masa mendatang.
    5.5. Lingkungan Pengembangan Multi-Server
    Dalam pengaturan pengembangan yang kompleks dengan beberapa mesin virtual atau container, file hosts dapat memetakan nama yang mudah diingat ke setiap layanan:
    192.168.1.10    db.local         # Database server
    192.168.1.11    cache.local      # Redis/Memcached
    192.168.1.12    queue.local      # Message broker
    192.168.1.13    search.local     # Elasticsearch
    Ini menghilangkan kebutuhan untuk mengingat alamat IP dan membuat file konfigurasi lebih mudah dibaca dan portabel.
    6. Membersihkan Cache DNS Setelah Pengeditan {#flushing-dns}
    Pada sebagian besar sistem Linux modern, perubahan pada /etc/hosts langsung berlaku untuk koneksi baru. Namun, jika sistem atau aplikasi Anda menyimpan respons DNS dalam cache, Anda mungkin perlu membersihkan cache tersebut untuk memastikan pemetaan baru digunakan segera.
    Untuk Sistem yang Menggunakan systemd-resolved (Ubuntu 18.04+, Debian 10+, sebagian besar distro modern):
    sudo systemctl restart systemd-resolved
    Atau, untuk membersihkan cache tanpa restart penuh:
    sudo resolvectl flush-caches
    Verifikasi cache telah dibersihkan:
    sudo resolvectl statistics
    Untuk Sistem yang Menggunakan nscd (Name Service Cache Daemon):
    sudo systemctl restart nscd
    Untuk Sistem yang Menggunakan NetworkManager:
    sudo systemctl restart NetworkManager
    Untuk Sistem yang Menggunakan dnsmasq:
    sudo systemctl restart dnsmasq
    Memeriksa Resolver DNS yang Digunakan Sistem Anda
    systemctl list-units --type=service | grep -E "resolved|nscd|dnsmasq|NetworkManager"
    > Cache browser: Perhatikan bahwa browser web mempertahankan cache DNS internal mereka sendiri, terlepas dari OS. Setelah memodifikasi /etc/hosts, Anda mungkin juga perlu membersihkan cache DNS browser Anda. Di Chrome/Chromium, navigasikan ke chrome://net-internals/#dns dan klik Clear host cache.
    7. Praktik Terbaik dan Pertimbangan Keamanan {#best-practices}
    ✅ Selalu Buat Cadangan Sebelum Mengedit
    sudo cp /etc/hosts /etc/hosts.bak.$(date +%Y%m%d_%H%M%S)
    Menggunakan stempel waktu dalam nama file cadangan memastikan Anda dapat melacak beberapa versi.
    ✅ Gunakan Komentar untuk Mendokumentasikan Perubahan Anda
    # Added 2025-01-15 by admin@example.com - staging server test
    203.0.113.42    staging.mywebsite.com
    Ini sangat penting dalam lingkungan tim di mana beberapa orang mungkin mengakses server.
    ✅ Hapus Entri Sementara dengan Segera
    Entri yang ditambahkan untuk pengujian atau penggantian darurat harus dihapus segera setelah tidak lagi diperlukan. Entri yang sudah usang dapat menyebabkan masalah konektivitas yang sulit didiagnosis berbulan-bulan kemudian.
    ✅ Validasi Sintaks Anda
    Entri file hosts yang salah format tidak akan menyebabkan sistem crash, tetapi akan gagal menyelesaikan secara diam-diam. Selalu periksa kembali entri Anda dengan:
    getent hosts <hostname>
    ⚠️ Peringatan Keamanan: Pembajakan File Hosts
    Perangkat lunak berbahaya terkadang memodifikasi /etc/hosts untuk mengalihkan domain yang sah (seperti situs web perbankan atau server pembaruan) ke IP yang dikendalikan penyerang. Ini adalah vektor serangan yang dikenal disebut pembajakan file hosts.
    Lindungi dari ini dengan:
    
    Menetapkan izin file yang ketat: sudo chmod 644 /etc/hosts
  • Memantau file untuk perubahan yang tidak sah menggunakan alat seperti auditd atau AIDE.
  • Secara rutin meninjau konten file: cat /etc/hosts
  • ⚠️ File Hosts Bukan Pengganti DNS yang Tepat

    Untuk lingkungan produksi, file hosts hanya boleh digunakan untuk penggantian sementara dan pengembangan lokal. Untuk manajemen domain permanen, selalu gunakan rekaman DNS yang tepat. Jika Anda perlu mendaftarkan dan mengelola domain secara profesional, Pendaftaran Domain melalui penyedia yang andal memastikan infrastruktur DNS Anda kuat dan dapat diskalakan.

    8. Kesimpulan {#conclusion}

    File /etc/hosts adalah alat yang tampak sederhana namun luar biasa powerful dalam perangkat setiap administrator Linux dan developer. Kemampuannya untuk mengganti resolusi DNS secara lokal — dengan latensi nol, tanpa ketergantungan eksternal, dan tanpa perubahan infrastruktur — menjadikannya sangat diperlukan untuk:

    • Developer yang membangun dan menguji aplikasi secara lokal.
    • Sysadmin yang mengelola migrasi server dan jendela peralihan DNS.
    • Pengguna yang sadar keamanan yang memblokir domain berbahaya atau tidak diinginkan.
    • Engineer DevOps yang mengatur lingkungan lokal multi-layanan.

    Poin-poin utama dari panduan ini:

    TugasPerintah / Tindakan
    Buka file hostssudo nano /etc/hosts
    Buat cadangan sebelum mengeditsudo cp /etc/hosts /etc/hosts.bak
    Verifikasi pemetaangetent hosts <hostname>
    Uji dengan pingping -c 4 <hostname>
    Bersihkan cache DNSsudo resolvectl flush-caches
    Pulihkan dari cadangansudo cp /etc/hosts.bak /etc/hosts

    Baik Anda menjalankan lingkungan pengembangan yang ramping atau mengelola armada server produksi di AlexHost VPS Hosting, menguasai file hosts adalah keterampilan dasar yang memberikan manfaat setiap kali Anda membutuhkan penggantian DNS lokal yang cepat dan andal. Edit dengan percaya diri, dokumentasikan perubahan Anda, dan selalu simpan cadangan — selamat bekerja!

    15%

    Hemat 15% di Semua Layanan Hosting

    Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

    Gunakan kode:

    Skills
    Memulai