Alat yang sangat diperlukan untuk administrasi jaringan adalah perintah Ping di Linux. Anda mungkin telah menggunakan ping
sebelumnya untuk pemecahan masalah dasar—tetapi apa fungsi perintah ini?
ping
perintah mengirimkan permintaan Internet Control Message Protocol (ICMP) ke host jarak jauh atau lokal dan menunggu balasan. Tidak ada balasan yang menunjukkan masalah dengan koneksi atau host itu sendiri.
Baca terus dan jelajahi cara praktis menggunakan perintah ping di Linux!
Prasyarat
Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki komputer Linux dengan koneksi internet. Tutorial ini menggunakan komputer Ubuntu 20.04.
Juga, pastikan Anda telah membuka sesi terminal di komputer Linux Anda.
Memeriksa Konektivitas Jaringan Lokal
Bayangkan Anda sedang mengembangkan aplikasi web. Pengujian gagal saat Anda mencoba mengakses aplikasi melalui alamat loopback host (127.0.0.1). Sebelum mencabut rambut Anda untuk memecahkan masalah aplikasi, pastikan protokol TCP/IP bekerja secara internal menggunakan ping
perintah.
Alamat loopback default masing-masing adalah 127.0.0.1 dan 0:0:0:0:0:0:0:1 (atau ::1) untuk IPv4 dan IPv6.
Untuk memeriksa konektivitas alamat loopback, jalankan ping
di bawah ini perintah diikuti oleh alamat loopback di terminal. Perintah ini menunjukkan penggunaan paling dasar dari ping
perintah di Linux.
ping 127.0.0.1
Dan jika loopback berfungsi dengan baik, Anda akan melihat output yang mirip dengan tangkapan layar di bawah.
Atau, ping ke localhost
hostname harus memberikan hasil yang sama karena secara default diselesaikan ke alamat loopback.
Untuk mengakhiri ping
perintah, tekan CTRL+C
di terminal. Jika tidak, perintah ping akan terus berjalan.
Catatan:Jangan tekan CTRL+Z untuk menghentikan perintah ping. Melakukannya akan menghentikan perintah, tetapi proses akan tetap berjalan di latar belakang.
Memahami Perintah Ping Output Linux
Sebelum melangkah lebih jauh, Anda akan mendapat manfaat dari memahami output secara eksplisit daripada hanya menafsirkannya sebagai "berfungsi." Lihat gambar di bawah dan perincian nilai berikut.
- A (
bytes
) – Menampilkan ukuran (paket) permintaan gema ICMP dalam byte. - B (
from
) – Menampilkan alamat IP host targetfrom
di manaping
perintah menerima respons. - C (
icmp_seq
) – Menunjukkan urutan transmisi paket. Seperti yang Anda lihat, ping mengirimkan permintaan ICMP secara berurutan. Nilai menunjukkanicmp_seq=N
, di manaN
adalah nomor pesanan. - D (
TTL
) – Menampilkan nilai Time-To-Live (TTL) permintaan ICMP. Nilai default adalah 64, yang berarti bahwa permintaan hanya dapat hidup hingga maksimum 64 hop dan akan kedaluwarsa setelahnya. Nilai maksimum yang mungkin adalah 255. - E (
time
) – Total waktu (milidetik) berlalunya permintaan mencapai tujuan dan dilingkari kembali ke sumbernya. Nilai ini juga dikenal sebagai Round Trip Time (RTT). Perhatikan bahwatime
nilainya kurang dari 0,1 milidetik dalam contoh ini karena targetnya adalah mesin yang sama.time
nilai meningkat secara alami ketikaping
tujuan jauh atau memiliki alamat internet. - F (
statistics
) – Menampilkan ringkasan dan statistik dariping
hasil perintah. Ringkasan menunjukkan jumlah paket yang dikirim dan diterima, persentase kehilangan paket, dan total waktu. Garis bawah menunjukkan nilai minimum, rata-rata (nilai rata-rata), maksimum, dan standar deviasi dari total RTT.
Memaksa Versi Protokol Internet
Perintah ping menggunakan IPv4 secara default. Tetapi bagaimana jika Anda menguji kompatibilitas aplikasi Anda dengan IPv6? Untuk memaksa perintah ping menggunakan IPv6, Anda harus menentukan opsi -6 untuk perintah ping Anda di Linux, seperti yang dapat Anda lihat pada kode di bawah ini.
ping -6 localhost
Seperti yang Anda lihat di bawah, balasan dari menunjukkan bahwa respons berasal dari alamat loopback IPv6 (::1).
Alih-alih opsi -6, opsi -4 memaksa ping untuk menggunakan IPv4. Namun karena ping default ke IPv4, Anda biasanya tidak perlu menentukan opsi -4.
Membatasi Jumlah Balasan
Pada contoh sebelumnya, Anda harus menekan CTRL+C untuk menghentikan perintah ping karena sebaliknya akan terus berjalan.
Opsi -c memungkinkan Anda menentukan jumlah balasan yang diterima perintah ping sebelum berhenti. Mengapa menggunakan opsi ini? Dalam beberapa kasus, Anda mungkin ingin menguji bagaimana sistem Anda merespons 10, 100, 1000 paket ICMP, dan seterusnya.
Jalankan perintah berikut untuk mengirim lima paket ICMP ke host target. Ganti 5 dengan jumlah tanggapan ICMP yang akan diterima sebelum berhenti.
ping -c 5 localhost
Seperti yang Anda lihat di bawah, perintah ping berhenti setelah permintaan kelima (icmd_seq=5), dan Anda tidak perlu menekan CTRL+C untuk menghentikannya.
Menyesuaikan Interval Permintaan
Misalkan Anda ingin menguji koneksi jaringan antara dua perangkat, dan salah satunya memiliki bandwidth rendah. Dalam hal ini, Anda dapat meningkatkan interval antara setiap permintaan sehingga perangkat kedua memiliki cukup waktu untuk memproses paket ICMP saat ini.
ping
perintah mengirimkan permintaan ICMP berikutnya satu detik setelah menyelesaikan yang sebelumnya secara default. Untuk menyesuaikan penundaan, Anda harus menentukan -i
pilihan diikuti dengan nilai penundaan dalam hitungan detik.
Misalnya, jalankan ping
di bawah ini perintah untuk mengirim lima permintaan ICMP dengan interval dua detik di antara permintaan.
ping -c 5 -i 2 localhost
Contoh lain, jalankan ping
di bawah ini perintah untuk mengirim lima permintaan ICMP dengan interval setengah detik di antara setiap permintaan.
ping -c 5 -i 0.5 localhost
Membandingkan hasil dari kedua perintah yang memiliki interval berbeda menunjukkan perbedaan antara total time
nilai.
Mensimulasikan Serangan Banjir
Ping flood adalah jenis serangan Denial of Service (DoS) di mana penyerang mencoba membanjiri perangkat yang ditargetkan dengan paket ICMP. Serangan tersebut bertujuan untuk membanjiri mesin yang ditargetkan untuk menanggapi begitu banyak permintaan sehingga menjadi kelebihan beban dan tidak tersedia untuk pengguna yang sah.
Anda dapat mensimulasikan serangan banjir untuk menguji bagaimana sistem Anda merespons serangan. Jangan khawatir. Simulasi banjir ping dikendalikan, dan Anda dapat menghentikannya kapan saja dengan menekan CTRL+C.
Jalankan perintah berikut di mesin lokal Anda untuk melihat berapa banyak permintaan yang dapat ditangani perangkat Anda per detik. -f
option berarti mengirim beberapa paket ping dengan cepat dan tanpa batasan yang sewenang-wenang.
Ganti localhost dengan alamat IP atau nama host aplikasi yang ingin Anda uji. Contoh ini mensimulasikan banjir ping pada host lokal saja. Biarkan perintah ping berjalan selama sekitar lima detik, lalu tekan CTRL+C
untuk mengakhiri.
Perintah ping -f mengharuskan Anda menjadi pengguna root atau memiliki hak sudo.
ping -f localhost
Seperti yang Anda lihat di bawah, perintah ping berhasil mengirim dan menerima 124,685
Paket ICMP dalam 4276
milidetik dengan 0%
kehilangan paket. Cukup bagus, ya? Namun, dalam kasus penggunaan kehidupan nyata, Anda akan melihat beberapa kehilangan paket. Kehilangan paket tidak dapat dihindari karena jaringan tidak sempurna.
Memeriksa Konektivitas Internet
Semua orang menggunakan internet dengan cara tertentu, bukan? Misalkan Anda mencoba memuat situs web menggunakan browser Anda, tetapi waktu buka halaman terasa lambat. Gejalanya akan menunjukkan bahwa resolusi DNS berfungsi, tetapi ada sesuatu yang memengaruhi kecepatan jaringan.
Mendiagnosis masalah tanpa alat pihak ketiga akan menyertakan ping
memerintah. Penggunaan perintah sama seperti saat Anda menguji konektivitas jaringan lokal. Namun alih-alih menargetkan alamat loopback, Anda akan menentukan IP publik atau alamat web.
Jalankan perintah di bawah ini untuk melakukan ping ke situs web publik eksternal. Ganti adamtheautomator.com dengan alamat web lain sesuai keinginan.
ping -c 5 adamtheautomator.com
Langsung saja, Anda akan melihat bahwa nilai waktu relatif lebih tinggi daripada saat Anda melakukan ping ke localhost. Peningkatan waktu yang dihabiskan ini karena alamat target adamtheautomator.com tidak berada dalam host yang sama dan bahkan tidak berada di jaringan yang sama.
Pada langkah sebelumnya, perintah ping Anda berhasil, tetapi dalam penggunaan di dunia nyata, ada kalanya perintah ping gagal karena berbagai kemungkinan.
Berikut ini adalah beberapa kesalahan umum dan cara mengatasinya.
- Host tujuan tidak dapat dijangkau – Kesalahan ini berarti tidak ada rute ke host tujuan. Kesalahan ini dapat terjadi jika host atau domain sedang down.
- Waktu permintaan habis – Kesalahan ini berarti bahwa permintaan ke host tujuan terlalu lama (dibutuhkan lebih dari 4 detik atau 4000 milidetik), dan waktu koneksi habis. Kesalahan ini dapat terjadi jika host tujuan terlalu sibuk untuk merespons, firewall memblokir koneksi, atau perangkat keras jaringan yang rusak (kabel, router, dll.).
- Host tidak dikenal – Kesalahan ini berarti DNS tidak dapat menyelesaikan nama host ke alamat IP. Periksa apakah Anda memasukkan nama host yang benar. Jika Anda menduga bahwa router Anda mungkin tidak berfungsi dengan benar, coba mulai ulang router Anda.
- TTL Kedaluwarsa dalam Transit – Kesalahan ini berarti bahwa permintaan ICMP telah kedaluwarsa sebelum mencapai tujuannya. Paket ping Anda berkurang menjadi nol (0) sebelum mencapai host tujuan. Dalam kebanyakan kasus, kesalahan konfigurasi di tabel perutean Anda dapat menyebabkan kesalahan ini. Pertimbangkan untuk memeriksa tabel rute Anda untuk melihat apakah ada masalah.
Jika Anda Tidak Tahu:Pemain menyebut ping sebagai koneksi mereka ke server game di komunitas game. Ping rendah berarti koneksi yang lebih responsif, terutama di game yang bergerak cepat. Ping yang tinggi menunjukkan koneksi yang kurang responsif dan dapat membuat game terasa lambat.
Beberapa Penyedia Layanan Internet (ISP) mengembalikan halaman pencarian alih-alih pesan kesalahan saat Anda mencoba menyambung ke situs web yang tidak ada. Anda mungkin mendapatkan hasil positif palsu karena Anda mendapatkan respons, bukan kesalahan.
Menyimpan Output Ping ke File
Sebagian besar perintah, jika tidak semua, hanya menampilkan hasil di layar, dan ping
perintah di Linux tidak berbeda. Terminal Linux memiliki operator pengalihan keluaran bawaan yang memungkinkan Anda mengarahkan keluaran ke file.
Operator pengalihan ini adalah sebagai berikut:
(>
) karakter, yang akan menimpa isi file, dan;
(>>
) karakter, yang akan menambahkan output ke konten yang ada.
Tetapi mengapa Anda ingin menyimpan hasil ping ke file? Terutama untuk pencatatan dan analisis selanjutnya menggunakan editor teks atau pengurai log.
Anda juga dapat menggunakan program spreadsheet untuk membuat grafik yang menunjukkan bagaimana waktu ping berubah dari waktu ke waktu.
Jalankan perintah berikut untuk menyimpan output ping ke file. Perintah ini menulis semua output standar dari ping
perintah ke file bernama log.txt pada disk.
ping -c 10 localhost > log.txt
Sedangkan ping
perintah sedang berjalan, Anda akan melihat bahwa tidak ada output di layar.
Sekarang, buka log.txt file dalam editor teks, seperti nano
. Atau tampilkan isi file dengan menjalankan cat
perintah.
# Open in a text editor
nano log.txt
# OR
# Display the contents on the screen
cat log.txt
Kesimpulan
Dalam tutorial ini, Anda telah belajar bagaimana menggunakan perintah ping Linux dengan berbagai contoh praktis. Anda juga telah mempelajari cara menyimpan output ping ke file di disk sehingga Anda dapat menganalisisnya nanti.
Pada titik ini, Anda harus memiliki pemahaman yang baik tentang cara kerja perintah ping dan bagaimana hal itu dapat membantu. Namun sebelum Anda pergi dan mulai melakukan ping ke semua yang terlihat, ada beberapa aturan yang harus Anda aktifkan di grup keamanan Anda untuk mengizinkan lalu lintas ICMP.
Terima kasih telah membaca, dan selamat belajar!