GNU/Linux >> Belajar Linux >  >> Linux

10 contoh dasar perintah Linux Netstat

Netstat

Netstat adalah utilitas baris perintah yang dapat digunakan untuk membuat daftar semua koneksi jaringan (soket) pada suatu sistem. Ini mencantumkan semua koneksi soket tcp, udp dan koneksi soket unix.

Selain soket yang terhubung, itu juga dapat mencantumkan soket pendengar yang menunggu koneksi masuk. Jadi dengan memverifikasi port 80 yang terbuka, Anda dapat mengonfirmasi apakah server web berjalan di sistem atau tidak.

Ini menjadikannya alat yang sangat berguna untuk administrator jaringan dan sistem.

Dalam tutorial ini kita akan melihat beberapa contoh bagaimana menggunakan netstat untuk menemukan informasi tentang koneksi jaringan dan port terbuka pada suatu sistem.

Berikut adalah intro cepat ke netstat dari halaman manual

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

1. Daftar semua koneksi

Perintah pertama dan paling sederhana adalah membuat daftar semua koneksi saat ini. Cukup jalankan perintah netstat dengan opsi.

$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 enlightened:domain      *:*                     LISTEN
tcp        0      0 localhost:ipp           *:*                     LISTEN
tcp        0      0 enlightened.local:54750 li240-5.members.li:http ESTABLISHED
tcp        0      0 enlightened.local:49980 del01s07-in-f14.1:https ESTABLISHED
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN
udp        0      0 enlightened:domain      *:*
udp        0      0 *:bootpc                *:*
udp        0      0 enlightened.local:ntp   *:*
udp        0      0 localhost:ntp           *:*
udp        0      0 *:ntp                   *:*
udp        0      0 *:58570                 *:*
udp        0      0 *:mdns                  *:*
udp        0      0 *:49459                 *:*
udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*
udp6       0      0 ip6-localhost:ntp       [::]:*
udp6       0      0 [::]:ntp                [::]:*
udp6       0      0 [::]:mdns               [::]:*
udp6       0      0 [::]:63811              [::]:*
udp6       0      0 [::]:54952              [::]:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     12403    @/tmp/dbus-IDgfj3UGXX
unix  2      [ ACC ]     STREAM     LISTENING     40202    @/dbus-vfs-daemon/socket-6nUC6CCx

Perintah di atas menunjukkan semua koneksi dari protokol yang berbeda seperti tcp, udp dan soket unix. Namun hal ini tidak terlalu berguna. Administrator sering ingin memilih koneksi tertentu berdasarkan protokol atau nomor port misalnya.

2. Cantumkan hanya koneksi TCP atau UDP

Untuk membuat daftar hanya koneksi tcp gunakan opsi t.

$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 enlightened:domain      *:*                     LISTEN
tcp        0      0 localhost:ipp           *:*                     LISTEN
tcp        0      0 enlightened.local:36310 del01s07-in-f24.1:https ESTABLISHED
tcp        0      0 enlightened.local:45038 a96-17-181-10.depl:http ESTABLISHED
tcp        0      0 enlightened.local:37892 ABTS-North-Static-:http ESTABLISHED
.....

Demikian pula untuk membuat daftar hanya koneksi udp gunakan opsi u.

$ netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 *:34660                 *:*
udp        0      0 enlightened:domain      *:*
udp        0      0 *:bootpc                *:*
udp        0      0 enlightened.local:ntp   *:*
udp        0      0 localhost:ntp           *:*
udp        0      0 *:ntp                   *:*
udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*
udp6       0      0 ip6-localhost:ntp       [::]:*
udp6       0      0 [::]:ntp                [::]:*

Output di atas menunjukkan koneksi ipv4 dan ipv6.

3. Nonaktifkan pencarian reverse dns untuk hasil yang lebih cepat

Secara default, perintah netstat mencoba untuk mengetahui nama host dari setiap alamat ip dalam koneksi dengan melakukan pencarian reverse dns. Ini memperlambat output. Jika Anda tidak perlu mengetahui nama host dan alamat ip saja sudah cukup, tekan pencarian nama host dengan opsi n.

$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp        0      0 192.168.1.2:49058       173.255.230.5:80        ESTABLISHED
tcp        0      0 192.168.1.2:33324       173.194.36.117:443      ESTABLISHED
tcp6       0      0 ::1:631                 :::*                    LISTEN

Perintah di atas menunjukkan SEMUA koneksi TCP dengan resolusi NO dns. Mengerti ? Bagus.

4. Periksa koneksi mendengarkan - Buka Port

Setiap daemon/layanan jaringan membuat port terbuka untuk mendengarkan koneksi yang masuk. Ini juga seperti koneksi soket dan terdaftar oleh netstat. Untuk hanya melihat port mendengarkan, gunakan opsi "-l".

$ netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN

Sekarang kita hanya dapat melihat mendengarkan port/koneksi tcp. Jika Anda ingin melihat semua port mendengarkan, hapus opsi t. Jika Anda hanya ingin melihat port udp yang mendengarkan, gunakan opsi "-u" alih-alih "-t".

Pastikan untuk menghapus opsi "-a", jika tidak semua koneksi akan terdaftar dan bukan hanya koneksi yang mendengarkan.

Jika Anda menjalankan layanan seperti http atau smtp di server linux Anda, maka Anda dapat menggunakan perintah di atas untuk memeriksa apakah layanan tersebut mendengarkan koneksi masuk atau tidak.

5. Dapatkan nama proses/pid dan id pengguna

Saat melihat port dan koneksi yang terbuka/mendengarkan, seringkali berguna untuk mengetahui nama proses/pid yang telah membuka port atau koneksi tersebut.

Misalnya server httpd Apache membuka port 80. Jadi jika Anda ingin memeriksa apakah ada server http yang berjalan atau tidak, atau server http mana yang berjalan, apache atau nginx, maka lacak nama prosesnya.

Detail proses disediakan oleh opsi 'p'.

~$ sudo netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1144/dnsmasq
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      661/cupsd
tcp6       0      0 ::1:631                 :::*                    LISTEN      661/cupsd

Saat menggunakan opsi p, netstat harus dijalankan dengan hak akses root, jika tidak, ia tidak dapat mendeteksi pid proses yang berjalan dengan hak akses root dan sebagian besar layanan seperti http dan ftp sering dijalankan dengan hak akses root.

Seiring dengan nama proses/pid, bahkan lebih berguna untuk mendapatkan nama pengguna/uid yang memiliki proses tertentu. Gunakan opsi e bersama dengan opsi p untuk mendapatkan nama pengguna juga.

$ sudo netstat -ltpe
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 enlightened:domain      *:*                     LISTEN      root       11090       1144/dnsmasq
tcp        0      0 localhost:ipp           *:*                     LISTEN      root       9755        661/cupsd
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN      root       9754        661/cupsd

Contoh di atas mencantumkan koneksi Listening tipe TCP dengan informasi Proses dan Informasi yang diperluas.
Informasi yang diperluas berisi nama pengguna dan inode proses. Ini adalah perintah yang berguna untuk administrator jaringan.

Catatan - Jika Anda menggunakan opsi n dengan opsi e, uid akan dicantumkan dan bukan nama pengguna.

6. Statistik cetak

Perintah netstat juga dapat mencetak statistik jaringan seperti jumlah total paket yang diterima dan dikirimkan menurut jenis protokol dan seterusnya.

Untuk membuat daftar statistik semua jenis paket

$ netstat -s
Ip:
    32797 total packets received
    0 forwarded
    0 incoming packets discarded
    32795 incoming packets delivered
    29115 requests sent out
    60 outgoing packets dropped
Icmp:
    125 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 125
    125 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 125
... OUTPUT TRUNCATED ...

Untuk mencetak statistik hanya memilih protokol seperti TCP atau UDP gunakan opsi yang sesuai seperti t dan u bersama dengan opsi s. Sederhana!

7. Tampilkan informasi perutean kernel

Informasi perutean kernel dapat dicetak dengan opsi r. Ini adalah output yang sama seperti yang diberikan oleh perintah route. Kami juga menggunakan opsi n untuk menonaktifkan pencarian nama host.

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

8. Cetak antarmuka jaringan

Perintah netstat juga dapat mencetak informasi tentang antarmuka jaringan. Opsi "-i" melakukan tugasnya.

$ netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0     31611      0      0 0         27503      0      0      0 BMRU
lo        65536 0      2913      0      0 0          2913      0      0      0 LRU

Output di atas berisi informasi dalam format yang sangat mentah. Untuk mendapatkan versi keluaran yang lebih ramah manusia, gunakan opsi e bersama dengan i.

$ netstat -ie
Kernel Interface table
eth0      Link encap:Ethernet  HWaddr 00:16:36:f8:b2:64
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::216:36ff:fef8:b264/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31682 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27573 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:29637117 (29.6 MB)  TX bytes:4590583 (4.5 MB)
          Interrupt:18 Memory:da000000-da020000
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2921 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2921 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:305297 (305.2 KB)  TX bytes:305297 (305.2 KB)

Output di atas mirip dengan output yang ditunjukkan oleh perintah ifconfig.

9. Dapatkan keluaran netstat terus menerus

Netstat dapat menampilkan informasi koneksi secara terus-menerus dengan opsi c.

$ netstat -ct

Perintah di atas akan menampilkan koneksi tcp secara terus menerus.

10. Tampilkan informasi grup multicast

Opsi g akan menampilkan informasi grup multicast untuk protokol IPv4 dan IPv6.

$ netstat -g
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
eth0            1      224.0.0.251
eth0            1      all-systems.mcast.net
lo              1      ip6-allnodes
lo              1      ff01::1
eth0            1      ff02::fb
eth0            1      ff02::1:fff8:b264
eth0            1      ip6-allnodes
eth0            1      ff01::1
wlan0           1      ip6-allnodes
wlan0           1      ff01::1

Contoh lainnya dari perintah netstat

Oke, kita sudah membahas contoh dasar perintah netstat di atas. Sekarang saatnya melakukan hal-hal aneh dengan gaya.

Cetak koneksi aktif

Koneksi soket aktif berada dalam status "ESTABLISHED". Jadi untuk mendapatkan semua koneksi aktif saat ini gunakan netstat dengan grep sebagai berikut

$ netstat -atnp | grep ESTA
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 192.168.1.2:49156       173.255.230.5:80        ESTABLISHED 1691/chrome
tcp        0      0 192.168.1.2:33324       173.194.36.117:443      ESTABLISHED 1691/chrome

Untuk menonton daftar koneksi aktif yang berkelanjutan, gunakan perintah watch bersama dengan netstat dan grep

$ watch -d -n0 "netstat -atnp | grep ESTA"

Periksa apakah suatu layanan sedang berjalan

Jika Anda ingin memeriksa apakah server seperti http,smtp atau ntp berjalan atau tidak, gunakan grep lagi.

$ sudo netstat -aple | grep ntp
udp        0      0 enlightened.local:ntp   *:*                                 root       17430       1789/ntpd
udp        0      0 localhost:ntp           *:*                                 root       17429       1789/ntpd
udp        0      0 *:ntp                   *:*                                 root       17422       1789/ntpd
udp6       0      0 fe80::216:36ff:fef8:ntp [::]:*                              root       17432       1789/ntpd
udp6       0      0 ip6-localhost:ntp       [::]:*                              root       17431       1789/ntpd
udp6       0      0 [::]:ntp                [::]:*                              root       17423       1789/ntpd
unix  2      [ ]         DGRAM                    17418    1789/ntpd

Jadi kami menemukan bahwa server ntp sedang berjalan. Ambil http atau smtp atau apa pun yang Anda cari.

Kesimpulan

Nah, itulah sebagian besar kegunaan netstat. Jika Anda mencari informasi lebih lanjut atau ingin menggali lebih dalam, bacalah manual netstat (man netstat).

Dan tinggalkan umpan balik dan saran Anda di kotak komentar di bawah.

Sumber daya

Lihat halaman manual linux untuk netstat untuk mempelajari lebih lanjut.

https://linux.die.net/man/8/netstat
https://man7.org/linux/man-pages/man8/netstat.8.html


Linux
  1. Perintah netstat Linux

  2. UNIX / Linux:10 Contoh Perintah Netstat

  3. 7 Contoh Perintah Linux df

  1. Contoh Perintah "ls" dasar di Linux

  2. Contoh Perintah Dasar "chmod" di Linux

  3. Contoh Perintah rm di Linux

  1. Tutorial Perintah Linux netstat untuk Pemula (8 Contoh)

  2. Contoh Perintah ps di Linux

  3. Contoh Perintah netstat di Linux