Mdr{dani} Notes

Linux Hands-on 4 (Networking Tools)

·

8 min read

Cover Image for Linux Hands-on 4 (Networking Tools)

Di dunia Linux yang serba bisa ini, jaringan adalah urat nadi yang menghubungkan semuanya. Baik kamu seorang sysadmin, developer, atau sekadar pengguna yang penasaran, pemahaman tentang networking tools adalah kunci untuk menjelajahi dan mengendalikan jaringanmu.

Task 4.1: Use ping to check connectivity to google.com

ping google.com > ping_output.txt

Komando ini adalah kombinasi dari dua perintah Linux yang digunakan untuk menguji koneksi jaringan ke google.com dan menyimpan hasilnya ke dalam file bernama ping_output.txt.

  • ping google.com: Perintah ping digunakan untuk menguji konektivitas jaringan dengan mengirimkan paket data ke alamat IP tertentu (dalam hal ini, alamat IP dari google.com) dan menunggu balasan. Tujuannya adalah untuk mengetahui apakah komputer kita dapat terhubung ke alamat IP tersebut dan berapa lama waktu yang dibutuhkan untuk menerima balasan.

  • >: Tanda ini adalah redirection operator yang digunakan untuk mengalihkan output dari suatu perintah ke file. Dalam hal ini, output dari perintah ping google.com akan dialihkan ke file ping_output.txt

Kenapa pakai perintah ini?

Perintah ini sangat berguna untuk:

  • Memeriksa Konektivitas: Kita bisa tahu apakah komputer kita terhubung ke internet atau tidak.

  • Menguji Kecepatan Jaringan: Kita bisa melihat seberapa cepat koneksi internet kita berdasarkan waktu tempuh bolak-balik.

  • Mencari Masalah Jaringan: Kalau ada masalah koneksi, kita bisa lihat dari output ping, misalnya apakah ada paket data yang hilang atau waktu tempuh bolak-balik yang terlalu lama.

Task 4.2: Use ping with 10 packets

ping -c 10 google.com > ping_10_packets.txt

-c 10: Opsi ini adalah yang bikin beda. -c adalah singkatan dari "count". Angka 10 di belakangnya berarti kita hanya ingin mengirimkan 10 paket ping saja. Jadi, ping tidak akan berjalan terus-menerus, tapi hanya 10 kali saja.

Task 4.3: Use ping with a packet size of 1000 Bytes

ping -s 1000 google.com > ping_large_packet.txt

-s 1000: Opsi ini adalah yang bikin beda. -s adalah singkatan dari "size". Angka 1000 di belakangnya berarti kita ingin mengirim paket ping dengan ukuran 1000 byte. Ukuran default paket ping biasanya lebih kecil dari ini.

Kenapa pakai perintah ini?

  • Tes Ukuran Paket: Berguna untuk menguji kemampuan jaringan dalam menangani paket data berukuran besar.

  • Masalah MTU: Bisa membantu mendeteksi masalah terkait MTU pada jaringan. Jika paket terlalu besar, router mungkin perlu memecahnya, yang bisa mempengaruhi performa.

Task 4.4: Use telnet to test port 80 on discord.com

sudo apt install telnet
telnet discord.com 80

telnet: Ini adalah nama perintahnya, yaitu program telnet itu sendiri. telnet adalah tool kuno, tapi masih berguna untuk beberapa tujuan.

Perlu diingat bahwa telnet adalah tool yang sangat sederhana. Ia hanya membuat koneksi TCP, tanpa memahami protokol yang lebih tinggi seperti HTTP.

Task 4.5: Use telnet to connect to the SMTP server on port 25

telnet smtp.gmail.com 25

Komando ini mencoba membuat koneksi ke server SMTP (Simple Mail Transfer Protocol) Gmail di smtp.gmail.com melalui port 25 menggunakan tool telnet.

Task 4.6: Use curl to fetch content of https://discord.com

curl https://discord.com -o discord.html

curl: Ini adalah nama perintahnya, yaitu program curl itu sendiri. curl adalah tool serbaguna yang digunakan untuk mentransfer data dari atau ke server menggunakan berbagai protokol, termasuk HTTP

Perintah ini sangat berguna untuk:

  • Mengunduh Kode Sumber: Kita bisa melihat bagaimana sebuah halaman web dibuat dengan mengunduh kode sumbernya.

  • Web Scraping: Kita bisa mengambil data tertentu dari sebuah halaman web secara otomatis.

  • Debugging: Kita bisa melihat error atau masalah yang mungkin terjadi saat load halaman web.

Task 4.7: Use curl with a custom User-Agent

curl -H "User-Agent: MyBrowser" https://google.com
#or
curl -L -H "User-Agent: MyBrowser" https://google.com

-H "User-Agent: MyBrowser": Opsi -H digunakan untuk menambahkan atau memodifikasi header HTTP yang dikirim. Dalam hal ini, kita mengubah header User-Agent menjadi "MyBrowser". User-Agent adalah string yang diidentifikasi browser atau aplikasi yang digunakan untuk mengakses website. Dengan mengubahnya, kita "berpura-pura" menjadi browser lain

-L: Opsi ini adalah yang membedakan kedua perintah ini. -L adalah singkatan dari "location". Opsi ini akan membuat curl mengikuti redirect HTTP jika server mengembalikannya

Task 4.8: Use netstat to list active TCP connections

sudo apt install net-tools
netstat -at

  • netstat: Ini adalah nama perintahnya, yaitu program netstat itu sendiri. netstat adalah tool klasik untuk melihat statistik jaringan.

  • -a: Opsi ini berarti "all", yang akan menampilkan semua koneksi yang sedang aktif, baik yang berstatus listening (menunggu koneksi masuk) maupun established (sudah terhubung).

  • -t: Opsi ini berarti "TCP", yang akan menampilkan koneksi yang menggunakan protokol TCP. TCP adalah protokol yang umum digunakan untuk komunikasi data di internet.

Kenapa pakai perintah ini?

Perintah netstat -at sangat berguna untuk:

  • Memantau Koneksi: Kita bisa melihat koneksi apa saja yang sedang aktif di komputer kita, dan ke mana saja komputer kita terhubung.

  • Mencari Masalah: Kalau ada masalah dengan jaringan, kita bisa cek dengan perintah ini, mungkin ada koneksi yang mencurigakan atau koneksi yang bermasalah.

  • Keamanan: Kita bisa melihat apakah ada koneksi yang tidak dikenal atau mencurigakan, yang mungkin menandakan adanya aktivitas yang tidak diinginkan.

Task 4.9: Use netstat to display all ports that are in the listening state on your system.

netstat -l

-l: Opsi ini berarti "listening", yang akan menampilkan socket yang sedang dalam status listening. Artinya, socket ini sedang menunggu koneksi dari komputer lain.

Kenapa pakai perintah ini?

Perintah netstat -l sangat berguna untuk:

  • Mencari Layanan yang Aktif: Kita bisa melihat layanan atau program apa saja yang sedang berjalan di komputer kita dan menunggu koneksi masuk.

  • Keamanan: Kita bisa melihat apakah ada socket yang listening yang tidak kita kenal atau mencurigakan, yang mungkin menandakan adanya aktivitas yang tidak diinginkan.

  • Troubleshooting: Kalau ada masalah dengan layanan jaringan, kita bisa cek dengan perintah ini, mungkin ada socket yang tidak seharusnya listening atau ada socket yang bermasalah.

Task 4.10: Use iperf in client mode to test the network bandwidth to a remote server (iperf-server.google.com).

sudo apt install iperf
iperf -c iperf.he.net
  • iperf: Ini adalah nama perintahnya, yaitu program iperf itu sendiri. iperf adalah tool yang sangat berguna untuk mengukur bandwidth atau kecepatan transfer data dalam jaringan.

  • -c: Opsi ini adalah singkatan dari "client". Artinya, kita menjalankan iperf dalam mode client, yaitu sebagai pengirim atau penerima data.

  • iperf.he.net: Ini adalah alamat domain atau hostname dari server iperf. Dalam hal ini, kita menggunakan server iperf yang disediakan oleh Hurricane Electric (HE), sebuah penyedia layanan internet.

Task 4.11: Use iperf in server mode to listen for incoming connections on a remote machine (iperf-server.discord.com).

sudo apt install iperf3
iperf3 -s -p 8791

  • -s: Opsi ini adalah singkatan dari "server". Artinya, kita menjalankan iperf3 dalam mode server, yaitu sebagai penerima data. Komputer yang menjalankan perintah ini akan menunggu koneksi dari client.

  • -p 8791: Opsi ini digunakan untuk menentukan port yang akan digunakan oleh server. Secara default, iperf3 menggunakan port 5201, tapi di sini kita mengubahnya menjadi 8791. Ini berguna jika port default sedang digunakan oleh aplikasi lain, atau jika kita ingin menjalankan beberapa instance iperf3 secara bersamaan.

and client

iperf3 -c 192.168.1.14 -p 8791

  • -c: Opsi ini adalah singkatan dari "client". Artinya, kita menjalankan iperf3 dalam mode client, yaitu sebagai pengirim data. Komputer yang menjalankan perintah ini akan terhubung ke server.

  • 192.168.1.14: Ini adalah alamat IP dari komputer yang menjalankan server iperf3. Client perlu mengetahui alamat IP server agar bisa terhubung.

  • -p 8791: Opsi ini harus sama dengan port yang digunakan oleh server. Karena server menggunakan port 8791, maka client juga harus menggunakan port 8791.

Task 4.12: Use nc (Netcat) to check if port 443 is open on discord.com.

nc -zv discord.com 443
  • nc: Ini adalah nama perintahnya, yaitu program nc atau netcat itu sendiri. nc adalah tool serbaguna yang bisa digunakan untuk berbagai macam tugas terkait jaringan, termasuk membuat koneksi TCP atau UDP, listening di port tertentu, dan lain-lain.

  • -z: Opsi ini berarti "zero-I/O mode". Artinya, nc tidak akan mengirim atau menerima data apa pun. Kita hanya ingin tahu apakah koneksi bisa dibuat atau tidak.

  • -v: Opsi ini berarti "verbose". Artinya, nc akan menampilkan informasi yang lebih detail tentang proses koneksi.

  • discord.com: Ini adalah alamat domain atau hostname yang ingin kita tuju. Dalam hal ini, kita mau coba koneksi ke Discord.

  • 443: Ini adalah nomor port. Port 443 biasanya digunakan untuk HTTPS, yaitu protokol yang aman untuk browsing web.

Task 4.13: Use nc to send the message “Hello, Server!” to google.com on port 12345.

#listening
nc -l 12345
#send message
echo "Hello, Server!" | nc localhost 12345

Kedua perintah ini menunjukkan cara menggunakan nc (netcat) untuk komunikasi sederhana antar dua proses di Linux, mirip client-server. Perintah pertama menjalankan nc sebagai server yang "mendengarkan" di port 12345, dan perintah kedua menjalankan nc sebagai client yang mengirim pesan "Hello, Server!" ke server tersebut.

Task 4.14: Use nc to start a simple HTTP server on port 8080 and serve a static HTML file.

echo "<html><body><h1>Hi, mdrdani</h1></body></html>" > index.html

echo "<html><body><h1>Hi, mdrdani</h1></body></html>" > index.html: Perintah ini membuat file index.html dan menuliskan kode HTML sederhana di dalamnya. Tanda > mengalihkan output dari echo ke file index.html.

while true; do (echo -e "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"; cat index.html) | nc -l 8791; done
  • while true: Ini adalah loop tak terbatas. Artinya, web server ini akan terus berjalan sampai kamu hentikan secara manual (biasanya dengan Ctrl+C).

  • do: Ini menandai awal dari blok perintah yang akan diulang dalam loop.

  • (echo -e "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"; cat index.html): Bagian ini membuat response HTTP yang akan dikirim ke client.

    • echo -e "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n": Perintah echo dengan opsi -e digunakan untuk menampilkan teks dengan interpretasi escape sequence. Ini membuat header HTTP. HTTP/1.1 200 OK menandakan response sukses. Content-Type: text/html memberitahu browser bahwa kontennya adalah HTML. \r\n adalah carriage return dan line feed, yang menandai akhir baris dalam header HTTP. Dua baris kosong setelah Content-Type menandai akhir header.

    • ;: Tanda titik koma memisahkan dua perintah dalam satu baris.

    • cat index.html: Perintah cat digunakan untuk membaca isi file index.html.

  • |: Tanda pipa ini "menyalurkan" output dari perintah di dalam kurung ke perintah selanjutnya.

  • nc -l 8791: Perintah nc (netcat) dijalankan dalam mode listening (-l) pada port 8791. Ini akan menerima koneksi dari client (misalnya, browser).

  • done: Ini menandai akhir dari blok perintah yang diulang dalam loop.

Task 4.15: Manually query for the domain discord.com.

sudo apt install bind9-dnsutils
dig @8.8.8.8 discord.com

dig (domain information groper) untuk mencari informasi DNS (Domain Name System) tentang discord.com dengan bantuan DNS server publik Google di 8.8.8.8.

Mdr{dani} Notes

A digital garden where I plant ideas, share thoughts on DevOps, cloud infrastructure, open-source, and my journey in tech. Keep exploring and happy automating!

Explore Topics

Web DevelopmentReactNext.jsGolangOpen SourceTutorials

Supported By

Codeathome
LampungDev

Made with© 2026 Muhamad Dani Ramanda

Powered by HashnodeHosted on Vercel