Menguasai Perintah Netstat Linux: Dari Dasar hingga Pemantauan Jaringan Lanjutan
Pendahuluan
Perintah netstat
(statistik jaringan) adalah salah satu alat jaringan yang paling penting dalam toolkit administrator sistem Linux. Utilitas baris perintah yang serbaguna ini memberikan pandangan komprehensif tentang koneksi jaringan, tabel routing, statistik antarmuka, dan informasi penting terkait jaringan lainnya.
Apa itu netstat?
netstat
adalah utilitas jaringan baris perintah yang menampilkan berbagai informasi terkait jaringan, termasuk:
- Koneksi jaringan (baik masuk maupun keluar)
- Tabel routing
- Statistik antarmuka jaringan
- Koneksi masquerade
- Keanggotaan multicast
- Statistik protokol
Mengapa Ini Penting
Administrator sistem dan insinyur jaringan mengandalkan netstat
untuk beberapa tugas kritis:
- Memecahkan masalah jaringan - Mengidentifikasi masalah koneksi dan kemacetan jaringan dengan cepat
- Pemantauan keamanan - Mendeteksi koneksi jaringan yang tidak sah dan aktivitas mencurigakan
- Analisis kinerja - Memantau pola lalu lintas jaringan dan statistik antarmuka
- Audit sistem - Meninjau layanan aktif dan port yang terbuka
Sejarah Singkat
Perintah netstat
telah menjadi bagian dari toolkit jaringan TCP/IP sejak awal sistem Unix. Meskipun berasal dari BSD Unix, ia telah berkembang menjadi alat standar di berbagai sistem operasi mirip Unix, termasuk Linux. Meskipun dianggap "usang" dibandingkan dengan alat baru seperti ss
, netstat
tetap banyak digunakan karena:
- Familiaritas di kalangan administrator sistem
- Ketersediaan luas di berbagai sistem mirip Unix
- Set fitur yang kaya dan opsi keluaran yang terperinci
- Dokumentasi yang luas dan dukungan komunitas
Sintaks Dasar dan Penggunaan
Format Perintah
Sintaks dasar dari perintah netstat adalah:
netstat [options]
Perintah ini dapat digunakan dengan berbagai opsi untuk menyesuaikan keluaran berdasarkan kebutuhan Anda. Tanpa opsi apa pun, netstat akan menampilkan daftar soket yang terbuka.
Opsi dan Flag Umum
Berikut adalah opsi yang paling sering digunakan:
Opsi | Deskripsi |
---|---|
-a | Menampilkan semua port yang mendengarkan dan koneksi aktif |
-t | Menampilkan koneksi TCP |
-u | Menampilkan koneksi UDP |
-n | Menampilkan alamat numerik alih-alih menyelesaikan host dan port |
-l | Menampilkan hanya soket yang mendengarkan |
-p | Menampilkan PID dan nama program |
-r | Menampilkan tabel routing |
-i | Menampilkan statistik antarmuka jaringan |
-s | Menampilkan statistik protokol |
Contoh Dasar
- Melihat semua koneksi aktif
netstat -a
- Menampilkan semua koneksi TCP
netstat -at
- Menampilkan port yang mendengarkan dengan informasi program
sudo netstat -tulnp
Kombinasi populer ini menunjukkan:
-t
: Koneksi TCP-u
: Koneksi UDP-l
: Hanya port yang mendengarkan-n
: Alamat numerik-p
: Informasi program
- Memeriksa tabel routing
netstat -r
- Melihat statistik antarmuka
netstat -i
Memahami Keluaran
Keluaran netstat yang tipikal mencakup beberapa kolom:
- Proto: Protokol (TCP, UDP)
- Recv-Q: Data yang antre untuk diterima
- Send-Q: Data yang antre untuk dikirim
- Local Address: Titik akhir lokal dari koneksi
- Foreign Address: Titik akhir jarak jauh dari koneksi
- State: Status koneksi (LISTEN, ESTABLISHED, dll.)
Contoh keluaran saat menggunakan netstat -tan
:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.5:22 192.168.1.100:52614 ESTABLISHED
Fitur dan Opsi Utama
Opsi Tampilan
Daftar Semua Koneksi
Perintah netstat menawarkan berbagai cara untuk mendaftar koneksi jaringan berdasarkan kebutuhan spesifik Anda:
- Tampilkan semua protokol dengan alamat numerik
netstat -an
- Menampilkan informasi yang diperluas
netstat -ae
Ini menambahkan informasi tambahan seperti pengguna dan inode
- Menampilkan informasi timer
netstat -o
Menambahkan informasi waktu yang berguna untuk pemecahan masalah
Tampilan Spesifik Protokol
- Hanya TCP
# Tampilkan semua koneksi TCP termasuk port yang mendengarkan
netstat -at
# Tampilkan hanya port TCP yang mendengarkan
netstat -lt
- Hanya UDP
# Tampilkan semua koneksi UDP
netstat -au
# Tampilkan hanya port UDP yang mendengarkan
netstat -lu
- Soket Domain Unix
# Tampilkan soket domain Unix
netstat -x
Opsi Format Keluaran
Tampilan Numerik
# Keluaran numerik penuh (tanpa resolusi nama)
netstat -n
# Gabungkan dengan opsi lain
netstat -ant # Koneksi TCP dengan alamat numerik
Manfaat tampilan numerik:
- Eksekusi lebih cepat
- Tidak ada pencarian DNS
- Lebih dapat diandalkan dalam kasus masalah DNS
Tampilan Informasi yang Diperluas
# Tampilkan informasi proses
sudo netstat -p
# Tampilkan informasi pengguna dan proses
sudo netstat -ep
# Tampilkan statistik antarmuka jaringan dengan info yang diperluas
netstat -ie
Tampilan Berkelanjutan
# Perbarui setiap 2 detik
netstat -c
# Gabungkan dengan opsi lain untuk pemantauan berkelanjutan
netstat -ct # Pemantauan TCP berkelanjutan
Tampilan Statistik
- Statistik Protokol
# Tampilkan statistik ringkasan untuk semua protokol
netstat -s
# Tampilkan statistik TCP saja
netstat -st
# Tampilkan statistik UDP saja
netstat -su
- Statistik Antarmuka
# Tampilkan statistik antarmuka
netstat -i
# Tampilkan informasi antarmuka yang diperluas
netstat -ie
Contoh keluaran statistik antarmuka:
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 158426 0 0 0 88573 0 0 0 BMRU
lo 65536 24846 0 0 0 24846 0 0 0 LRU
Di mana:
- RX: Statistik penerimaan
- TX: Statistik pengiriman
- OK: Paket yang berhasil
- ERR: Jumlah kesalahan
- DRP: Paket yang dibuang
- OVR: Peristiwa overrun
Kasus Penggunaan Umum
Pemecahan Masalah Jaringan
Memeriksa Port yang Terbuka
- Temukan semua port terbuka di sistem
sudo netstat -tulpn | grep LISTEN
Perintah ini membantu mengidentifikasi:
- Layanan mana yang sedang berjalan
- Port apa yang mereka gunakan
- Proses mana yang memiliki port ini
- Periksa apakah port tertentu sedang digunakan
sudo netstat -tulpn | grep ":80" # Periksa untuk server web
sudo netstat -tulpn | grep ":3306" # Periksa untuk MySQL
Mengidentifikasi Koneksi Aktif
- Pantau koneksi saat ini
# Tampilkan semua koneksi yang terhubung
netstat -nat | grep ESTABLISHED
# Hitung koneksi per alamat IP
netstat -nat | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c
- Lacak status koneksi
# Lihat distribusi status koneksi
netstat -ant | awk '{print $6}' | sort | uniq -c
Memantau Lalu Lintas Jaringan
- Analisis lalu lintas antarmuka
# Tonton statistik antarmuka secara real-time
netstat -i
watch -n 1 "netstat -i"
- Pemantauan spesifik protokol
# Pantau statistik lalu lintas TCP
netstat -st
# Pantau statistik lalu lintas UDP
netstat -su
Analisis Keamanan
Menemukan Koneksi Mencurigakan
- Deteksi port yang tidak biasa
# Daftar semua port mendengarkan yang tidak standar
sudo netstat -tulpn | grep -v ":22\|:80\|:443"
- Periksa pola koneksi mencurigakan
# Cari koneksi dari IP yang tidak terduga
netstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn
Deteksi Pemindaian Port
# Cari upaya koneksi ganda
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Audit Sistem
- Verifikasi layanan
# Periksa proses mana yang mendengarkan di port mana
sudo netstat -tulpn | grep LISTEN | sort -k 4
- Pencatatan koneksi
# Buat log koneksi sederhana
while true; do
date >> connection_log.txt
netstat -ant >> connection_log.txt
sleep 60
done
- Pemantauan penggunaan sumber daya
# Pantau jumlah koneksi per layanan
netstat -ant | grep ESTABLISHED | awk '{print $4}' | cut -d: -f2 | sort | uniq -c
Skenario Pemecahan Masalah Umum
- Masalah Server Web
# Periksa koneksi server web
sudo netstat -ant | grep ":80\|:443" | awk '{print $6}' | sort | uniq -c
- Masalah Koneksi Database
# Pantau koneksi database (contoh MySQL)
sudo netstat -ant | grep :3306 | awk '{print $6}' | sort | uniq -c
- Analisis Server Email
# Periksa koneksi server email
sudo netstat -ant | grep ":25\|:465\|:587" | awk '{print $6}' | sort | uniq -c
Penggunaan Lanjutan
Menggabungkan dengan Perintah Lain
Menggunakan dengan grep dan awk
- Penyaringan dan analisis kompleks
# Hitung koneksi berdasarkan status dan port
netstat -ant | awk '{print $6, $4}' | sort | uniq -c | sort -rn
# Pantau koneksi layanan tertentu seiring waktu
watch -n 1 'netstat -ant | grep ":80" | wc -l'
- Analisis koneksi yang lebih mendalam
# Buat ringkasan koneksi
netstat -ant | \
awk '{ip[$5]++} END {for (i in ip) print ip[i],i}' | \
sort -nr | head -n 10
Mengalir ke alat lain
# Menggunakan dengan tee untuk pencatatan
netstat -ant | tee network_status.log
# Menggunakan dengan xargs untuk manajemen proses
netstat -tulpn | grep LISTEN | awk '{print $7}' | cut -d/ -f1 | xargs ps -f
Skrip dan Otomatisasi
Skrip Pemantauan Dasar
#!/bin/bash
LOG_FILE="/var/log/network_monitor.log"
monitor_connections() {
echo "=== Laporan Status Jaringan ===" >> $LOG_FILE
date >> $LOG_FILE
echo "Koneksi Aktif:" >> $LOG_FILE
netstat -ant | grep ESTABLISHED | wc -l >> $LOG_FILE
echo "Port yang Mendengarkan:" >> $LOG_FILE
netstat -tulpn | grep LISTEN >> $LOG_FILE
echo "=========================" >> $LOG_FILE
}
# Jalankan setiap 5 menit
while true; do
monitor_connections
sleep 300
done
Skrip Analisis Lanjutan
#!/bin/bash
analyze_network() {
echo "=== Analisis Jaringan ==="
echo -e "\n10 Koneksi IP Teratas:"
netstat -ant | grep ESTABLISHED | \
awk '{print $5}' | cut -d: -f1 | \
sort | uniq -c | sort -rn | head -n 10
echo -e "\nStatus Koneksi:"
netstat -ant | awk '{print $6}' | \
sort | uniq -c | sort -rn
echo -e "\nPenggunaan Port:"
netstat -ant | awk '{print $4}' | \
cut -d: -f2 | sort | uniq -c | sort -rn | head -n 10
}
# Simpan ke file dengan timestamp
analyze_network | tee -a "network_analysis_$(date +%Y%m%d_%H%M%S).log"
Pemantauan Kinerja
Pelacakan Penggunaan Sumber Daya
- Dampak CPU dan Memori
# Pantau penggunaan sumber daya netstat sendiri
while true; do
ps aux | grep netstat | grep -v grep
sleep 1
done
- Kinerja Antarmuka Jaringan
#!/bin/bash
# Pantau throughput antarmuka
INTERVAL=1
INTERFACE="eth0"
while true; do
R1=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
T1=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
sleep $INTERVAL
R2=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
T2=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
RBPS=$(( ($R2 - $R1) / $INTERVAL ))
TBPS=$(( ($T2 - $T1) / $INTERVAL ))
echo "Antarmuka $INTERFACE:"
echo "RX: $(($RBPS/1024)) KB/s"
echo "TX: $(($TBPS/1024)) KB/s"
echo "------------------------"
done
Solusi Pemantauan Jangka Panjang
#!/bin/bash
# Buat laporan statistik jaringan setiap jam
LOGDIR="/var/log/netstat_reports"
mkdir -p $LOGDIR
generate_report() {
TIMESTAMP=$(date +%Y%m%d_%H)
REPORT="$LOGDIR/netstat_report_$TIMESTAMP.log"
echo "Laporan Jaringan - $(date)" > $REPORT
echo "=========================" >> $REPORT
echo "Ringkasan Koneksi:" >> $REPORT
netstat -s >> $REPORT
echo "Statistik Antarmuka:" >> $REPORT
netstat -i >> $REPORT
echo "Koneksi Saat Ini:" >> $REPORT
netstat -ant >> $REPORT
}
# Jalankan pembuatan laporan
generate_report
Tips Integrasi
- Menggabungkan dengan Pemantauan Sistem
# Tambahkan ke skrip pemantauan sistem
if [ $(netstat -ant | grep ESTABLISHED | wc -l) -gt 100 ]; then
echo "Jumlah koneksi tinggi terdeteksi" | mail -s "Peringatan Jaringan" admin@example.com
fi
- Fungsi Pelaporan Kustom
network_summary() {
local port="$1"
echo "Koneksi di port $port:"
netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}
# Penggunaan: network_summary 80
Alternatif untuk netstat
Perintah ss
ss
(Socket Statistics) adalah pengganti modern untuk netstat di sistem Linux. Ini umumnya lebih cepat dan lebih kaya fitur dibandingkan netstat.
Keuntungan Utama dari ss
- Eksekusi lebih cepat, terutama pada sistem dengan banyak koneksi
- Informasi soket yang lebih terperinci
- Dukungan yang lebih baik untuk protokol baru
- Penggunaan sumber daya sistem yang lebih rendah
Perbandingan dengan netstat
# Perintah netstat vs ss yang setara
# Daftar semua koneksi
netstat -a
ss
# Tampilkan port TCP yang mendengarkan
netstat -tln
ss -tln
# Tampilkan informasi proses
netstat -p
ss -p
# Tampilkan statistik
netstat -s
ss -s
Contoh Penggunaan ss
# Tampilkan informasi soket yang terperinci
ss -i
# Tampilkan informasi timer
ss -o
# Tampilkan penggunaan memori
ss -m
# Filter berdasarkan status
ss state established
# Filter berdasarkan port
ss sport = :80
Alternatif Modern
lsof (Daftar File Terbuka)
# Tampilkan koneksi jaringan
lsof -i
# Tampilkan port yang mendengarkan
lsof -i -P -n | grep LISTEN
# Tampilkan koneksi yang terhubung
lsof -i | grep ESTABLISHED
nmap
# Pindai port yang terbuka
nmap localhost
# Pindai port yang terperinci
nmap -sV localhost
iptraf-ng
- Pemantau lalu lintas IP secara real-time
- Statistik protokol yang terperinci
- Statistik antarmuka
- Pemantauan stasiun LAN
Kapan Menggunakan Apa
Gunakan netstat ketika:
- Bekerja di sistem lama
- Membutuhkan kompatibilitas lintas platform
- Mengikuti dokumentasi yang sudah ada
- Menjalankan diagnosa jaringan sederhana
Gunakan ss ketika:
- Bekerja di sistem Linux modern
- Membutuhkan eksekusi lebih cepat
- Menghadapi banyak koneksi
- Memerlukan informasi soket yang terperinci
Gunakan lsof ketika:
- Membutuhkan informasi deskriptor file
- Ingin menghubungkan koneksi jaringan dengan proses
- Memecahkan masalah aplikasi
Gunakan nmap ketika:
- Melakukan audit keamanan
- Membutuhkan pemindaian port yang terperinci
- Menganalisis layanan jaringan
Panduan Migrasi
Pindah dari netstat ke ss
perintah netstat | setara ss | Deskripsi |
---|---|---|
netstat -t | ss -t | Tampilkan koneksi TCP |
netstat -u | ss -u | Tampilkan koneksi UDP |
netstat -l | ss -l | Tampilkan soket yang mendengarkan |
netstat -p | ss -p | Tampilkan informasi proses |
netstat -n | ss -n | Jangan menyelesaikan nama |
netstat -a | ss | Tampilkan semua soket |
netstat -r | ip route | Tampilkan tabel routing |
Contoh Migrasi Skrip
# Skrip netstat lama
#!/bin/bash
netstat -tulpn | grep LISTEN > listening_ports.log
# Setara ss baru
#!/bin/bash
ss -tulpn | grep LISTEN > listening_ports.log
Tips Pemilihan Alat
- Pertimbangan Kinerja
- Untuk sistem berskala besar: Gunakan
ss
- Untuk pemeriksaan dasar: Keduanya berfungsi dengan baik
- Untuk analisis terperinci: Gabungkan beberapa alat
- Masalah Kompatibilitas
# Periksa apakah ss tersedia
if command -v ss >/dev/null 2>&1; then
ss -tulpn
else
netstat -tulpn
fi
- Persyaratan Fitur
- Pemantauan dasar: netstat/ss
- Analisis keamanan: nmap
- Korelasi proses: lsof
- Pemantauan real-time: iptraf-ng
Praktik Terbaik dan Tips
Pertimbangan Kinerja
Mengoptimalkan Penggunaan Perintah
- Gunakan Keluaran Numerik Jika Memungkinkan
# Lebih lambat (dengan resolusi DNS)
netstat -ta
# Lebih cepat (tanpa resolusi DNS)
netstat -tan
- Batasi Ukuran Keluaran
# Alih-alih menampilkan semua koneksi
netstat -a
# Saring untuk informasi spesifik
netstat -an | grep ':80'
- Hindari Polling Berkelanjutan
# Tidak disarankan untuk sistem sibuk
netstat -c
# Pendekatan yang lebih baik dengan interval terkontrol
while true; do
netstat -an | grep ESTABLISHED
sleep 5
done
Pitfall Umum
Masalah Penggunaan Sumber Daya
- Masalah: Penggunaan CPU yang berlebihan selama resolusi nama
# Perintah bermasalah
watch -n 1 'netstat -ta'
# Alternatif yang lebih baik
watch -n 1 'netstat -tan'
Masalah Izin
- Masalah: Informasi proses yang hilang
# Akan menunjukkan informasi yang tidak lengkap
netstat -p
# Penggunaan yang benar
sudo netstat -p
Interpretasi Keluaran
- Masalah: Salah mengartikan status koneksi
# Kesalahpahaman umum dengan TIME_WAIT
netstat -ant | grep TIME_WAIT
# Analisis yang lebih baik dengan konteks
netstat -ant | awk '{print $6}' | sort | uniq -c
Tips untuk Penggunaan Harian
Membuat Alias yang Berguna
# Tambahkan ke ~/.bashrc
alias ns='netstat -tulpn'
alias nsc='netstat -ant | grep ESTABLISHED'
alias nsl='sudo netstat -tulpn | grep LISTEN'
Pemeriksaan Keamanan Cepat
# Periksa port mendengarkan yang tidak biasa
check_ports() {
echo "Port yang Dikenal:"
sudo netstat -tulpn | grep -E ':22|:80|:443'
echo -e "\nPort yang Tidak Dikenal:"
sudo netstat -tulpn | grep -vE ':22|:80|:443'
}
Template Pemantauan
# Template pemantauan koneksi
monitor_connections() {
local port=$1
local threshold=$2
count=$(netstat -an | grep ":$port" | grep ESTABLISHED | wc -l)
if [ $count -gt $threshold ]; then
echo "Peringatan: $count koneksi di port $port melebihi ambang batas $threshold"
fi
}
# Penggunaan: monitor_connections 80 100
Dokumentasi dan Pencatatan
Membuat Log yang Berguna
#!/bin/bash
# Pencatat status jaringan
log_network_status() {
local logfile="/var/log/network_status.log"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
{
echo "=== Status Jaringan pada $timestamp ==="
echo "Port yang Mendengarkan:"
netstat -tulpn | grep LISTEN
echo "Koneksi Saat Ini:"
netstat -ant | awk '{print $6}' | sort | uniq -c
echo "=================================="
} >> "$logfile"
}
Prosedur Operasi Standar
# Template untuk pemeriksaan rutin
daily_network_check() {
echo "1. Memeriksa port yang mendengarkan..."
sudo netstat -tulpn | grep LISTEN
echo "2. Memeriksa koneksi yang terhubung..."
netstat -ant | grep ESTABLISHED | wc -l
echo "3. Memeriksa status koneksi..."
netstat -ant | awk '{print $6}' | sort | uniq -c
echo "4. Memeriksa statistik antarmuka..."
netstat -i
}
Panduan Pemecahan Masalah
- Masalah Koneksi
connection_troubleshoot() {
local port=$1
echo "=== Pemecahan Masalah Koneksi untuk Port $port ==="
echo "1. Memeriksa apakah port mendengarkan:"
sudo netstat -tulpn | grep ":$port"
echo "2. Memeriksa koneksi aktif:"
netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
echo "3. Memeriksa status koneksi:"
netstat -ant | grep ":$port" | awk '{print $6}' | sort | uniq -c
}
- Pemantauan Sumber Daya Sistem
resource_check() {
echo "=== Pemeriksaan Sumber Daya Sistem ==="
echo "1. Total koneksi:"
netstat -ant | wc -l
echo "2. Koneksi per IP:"
netstat -ant | grep ESTABLISHED | \
awk '{print $5}' | cut -d: -f1 | \
sort | uniq -c | sort -nr | head -5
echo "3. Penggunaan memori proses jaringan:"
ps aux | grep -E 'netstat|ss' | grep -v grep
}
Pertanyaan yang Sering Diajukan (FAQ)
Q: Mengapa saya tidak dapat melihat informasi proses (PID)?
A: Ini biasanya disebabkan oleh izin. Jalankan perintah dengan sudo:
sudo netstat -tulpn
Opsi -p memerlukan hak istimewa root untuk menampilkan informasi proses.
Q: Apa perbedaan antara status LISTEN dan ESTABLISHED?
A:
- LISTEN: Menunjukkan layanan mendengarkan di port tersebut, menunggu koneksi
- ESTABLISHED: Mewakili sesi yang aktif dan terhubung saat ini
Q: Bagaimana cara memeriksa koneksi untuk port tertentu?
A: Anda dapat menggunakan grep untuk menyaring koneksi spesifik port:
# Periksa semua koneksi di port 80
netstat -an | grep ":80"
# Periksa hanya port yang mendengarkan
netstat -tunl | grep ":80"
Q: Mengapa perintah netstat saya berjalan lambat?
A: Dua alasan utama:
1. Resolusi DNS - Gunakan opsi -n untuk menghindari resolusi nama
2. Terlalu banyak koneksi - Gunakan penyaringan atau pertimbangkan untuk beralih ke ss
# Contoh perintah yang lebih cepat
netstat -tan | grep ESTABLISHED
Q: Apakah netstat akan mempengaruhi kinerja sistem?
A: Polling yang sering dapat mempengaruhi kinerja. Praktik terbaik:
1. Tingkatkan interval polling
2. Gunakan penyaringan untuk mengurangi keluaran
3. Pertimbangkan ss untuk sistem berskala besar
4. Hindari mode berkelanjutan (-c) di sistem yang sibuk
Q: Bagaimana cara mengidentifikasi aplikasi yang menggunakan port tertentu?
A: Gunakan perintah ini:
# Tampilkan proses yang menggunakan port 80
sudo netstat -tulpn | grep ":80"
# Alternatif menggunakan lsof
sudo lsof -i :80
Q: Bagaimana saya dapat memantau status koneksi?
A: Beberapa pendekatan:
# Hitung koneksi berdasarkan status
netstat -ant | awk '{print $6}' | sort | uniq -c
# Pantau koneksi yang terhubung
watch -n 1 'netstat -ant | grep ESTABLISHED | wc -l'
Q: Bagaimana saya dapat memeriksa koneksi mencurigakan?
A: Cari:
1. Port yang tidak biasa:
netstat -tulpn | grep -vE ':22|:80|:443'
2. Jumlah koneksi tinggi dari satu IP:
netstat -ant | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Q: Bagaimana saya mendeteksi upaya pemindaian port?
A: Pantau koneksi SYN_RECV:
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c
Q: Apa perbedaan antara opsi -t dan -u?
A:
-t : Menampilkan hanya koneksi TCP
-u : Menampilkan hanya koneksi UDP
Anda dapat menggabungkannya:
netstat -tu : Menampilkan baik TCP maupun UDP
Q: Bagaimana cara menyimpan keluaran netstat ke file?
A: Beberapa metode:
# Keluaran dasar ke file
netstat -ant > network_status.log
# Dengan timestamp
(date; netstat -ant) > network_status.log
# Pencatatan berkelanjutan
while true; do
netstat -ant >> network_log.txt
sleep 300
done
Q: Apa arti "Alamat sudah digunakan" dalam keluaran netstat?
A: Ini menunjukkan bahwa port sudah digunakan oleh proses lain. Untuk menemukannya:
sudo netstat -tulpn | grep "<nomor_port>"
Q: Mengapa saya melihat banyak koneksi TIME_WAIT?
A: TIME_WAIT adalah normal setelah koneksi ditutup. Namun, terlalu banyak mungkin menunjukkan:
1. Perputaran koneksi yang tinggi
2. Masalah jaringan yang mungkin
3. Aplikasi tidak menggunakan kembali koneksi
Pantau dengan:
netstat -ant | grep TIME_WAIT | wc -l