Perintah nc Linux: periksa koneksi dan port TCP atau UDP

Perintah nc atau Netcat membuka atau menerima koneksi untuk mengirim dan menerima data melalui Transmission Control Protocol (TCP) atau User Datagram Protocol (UDP). Untuk pemeriksaan cepat port TCP pada host yang Anda kelola atau diizinkan untuk diuji, -vz dapat menunjukkan apakah koneksi terbentuk, tetapi tidak membuktikan layanan aplikasinya sehat.

Nama nc dapat merujuk ke implementasi berbeda, misalnya turunan OpenBSD netcat atau Nmap Ncat. Periksa paket yang dipasang, nc -h, dan man nc sebelum menyalin opsi. Penjelasan opsi OpenBSD di bawah perlu dicocokkan dengan port Linux atau implementasi lokal Anda.

Sintaks dan arti pemeriksaan port

nc [OPSI] HOST PORT

OPSI, HOST, dan PORT adalah penanda. HOST dapat berupa nama atau alamat IP, sedangkan PORT menentukan layanan tujuan. Tanpa -u, contoh berikut memakai TCP. Opsi -v menampilkan diagnosis lebih rinci; pesan tersebut biasanya ditulis ke keluaran kesalahan standar.

-z memeriksa port tanpa pertukaran isi aplikasi biasa. Ini tetap menghasilkan trafik jaringan dan, untuk TCP, percobaan pembentukan koneksi. Jangan menafsirkan “tanpa data” sebagai “tanpa paket” atau sebagai pemeriksaan yang tidak terlihat pada log server.

Pilih satu host dan port sesuai kebutuhan diagnosis. Pastikan juga lokasi pengujian: alamat 127.0.0.1 mengacu pada loopback di lingkungan jaringan tempat perintah dijalankan. Dalam container, alamat itu dapat menunjuk ke container tersebut, bukan ke layanan pada host fisik.

Periksa port SSH lokal

nc -vz 127.0.0.1 22

Contoh mencoba TCP port 22 pada loopback. Bila ada layanan yang mendengarkan dan menerima koneksi, nc dapat melaporkan keberhasilan. Port 22 lazim digunakan Secure Shell (SSH), tetapi hasil ini tidak memverifikasi bahwa prosesnya benar-benar SSH, autentikasinya berhasil, atau konfigurasi keamanannya tepat.

Jika tidak ada SSH server lokal, penolakan koneksi dapat menjadi hasil yang wajar. Bandingkan dengan port dan alamat yang dikonfigurasi layanan, lalu periksa soket yang mendengarkan menggunakan ss untuk port dan soket Linux. Layanan yang hanya terikat ke alamat lain belum tentu menerima koneksi pada 127.0.0.1.

Batasi waktu koneksi

nc -w 3 -vz 127.0.0.1 80

Pada OpenBSD nc, -w 3 mengatur timeout koneksi yang belum terbentuk atau koneksi yang menganggur dalam detik. Implementasi lain dapat memberi arti berbeda. Jangan memperlakukannya sebagai jaminan seluruh proses, termasuk pencarian nama atau beberapa tujuan, selalu selesai tepat tiga detik.

Timeout menunjukkan tidak ada penyelesaian yang diharapkan dalam batas yang digunakan. Penyebabnya dapat meliputi penyaringan paket, rute, atau keadaan host; hasil itu tidak menentukan penyebab secara tunggal. Penolakan segera juga perlu ditafsirkan bersama alamat, port, dan kebijakan jaringan, bukan otomatis sebagai bukti firewall rusak.

Amati layanan dengan koneksi langsung

nc -v 127.0.0.1 22

Tanpa -z, nc dapat menyalurkan masukan terminal ke koneksi dan menampilkan data yang diterima. Layanan SSH mungkin menampilkan banner identifikasi; layanan lain dapat menunggu permintaan terlebih dahulu. Tidak muncul teks bukan bukti koneksi gagal.

Untuk sekadar mengamati, hindari mengetik data yang tidak Anda pahami ke layanan. Gunakan Ctrl+C untuk menghentikan nc. Membuka koneksi ini tidak melakukan login SSH dan tidak menggantikan klien SSH yang memverifikasi identitas server.

nc biasa tidak otomatis menjalankan negosiasi Transport Layer Security (TLS) hanya karena tujuan memakai port 443. Sebagian implementasi mendukung TLS melalui opsi tambahan, tetapi opsi tersebut tidak seragam. Untuk pemeriksaan HTTPS, gunakan klien yang sesuai seperti curl untuk respons dan status HTTP.

Tafsirkan keluaran koneksi TCP

nc -vz example.com 443

Jalankan contoh host eksternal hanya jika tujuan dan cakupan pengujian diizinkan. Berikut ilustrasi pesan keberhasilan dari sumber, bukan hasil pengukuran saat ini. Teks persisnya bergantung pada implementasi:

Connection to example.com 443 port [tcp/https] succeeded!

Pesan tersebut menunjukkan percobaan koneksi TCP ke port 443 berhasil dari lokasi pengujian itu. Label https adalah penamaan layanan berdasarkan port, bukan bukti sertifikat TLS valid atau permintaan HTTP berhasil. Ia juga tidak membuktikan hasil yang sama dari klien lain, jaringan lain, atau pada waktu berikutnya.

Catat alamat tujuan yang dipakai ketika nama memiliki beberapa alamat. IPv4 dan IPv6 dapat memiliki rute atau kebijakan berbeda. Jika koneksi ditolak atau timeout, bandingkan hasil dengan soket layanan, rute, log, serta kebijakan yang berlaku sebelum mengubah konfigurasi.

Opsi utama dan perbedaan implementasi

Opsi Fungsi dan batasnya
-z Memeriksa port tanpa pertukaran isi aplikasi biasa; tetap ada trafik jaringan.
-v Menampilkan diagnosis lebih rinci.
-w DETIK Mengatur timeout sesuai implementasi, bukan selalu batas keseluruhan proses.
-u Memakai UDP sebagai pengganti TCP.
-l Menunggu koneksi atau data masuk; periksa sintaks dan alamat ikat lokal.

Pada OpenBSD nc, -w diabaikan dalam mode -l sehingga tidak membatasi waktu menunggu koneksi masuk. Jangan meninggalkan listener yang dibuat untuk diagnosis tanpa mengetahui cara menghentikannya atau alamat mana yang terekspos. Periksa manual lokal sebelum menggabungkan opsi.

Ncat juga membedakan mode koneksi dan listener. Panduan Ncat menyatakan listener tanpa alamat host dapat terikat ke seluruh antarmuka lokal. Itu salah satu alasan sintaks dari implementasi berbeda tidak boleh dianggap dapat dipertukarkan begitu saja.

Mengapa UDP memerlukan pemeriksaan lain?

UDP tidak memakai handshake seperti TCP. Hasil yang tampak berhasil dapat hanya menunjukkan bahwa pengiriman atau operasi lokal tidak langsung gagal, bukan bahwa layanan tujuan menerima atau menjawab permintaan yang benar.

Manual OpenBSD nc secara khusus memperingatkan bahwa kombinasi -uz selalu melaporkan sukses tanpa bergantung pada keadaan mesin tujuan. Jangan memakai hasil itu sendirian untuk menyatakan port UDP terbuka. Gunakan permintaan protokol aplikasi yang sesuai serta bukti respons atau log dari sistem yang Anda kelola.

Rincian opsi dan batas UDP tersedia dalam manual resmi OpenBSD nc. Untuk implementasi Nmap, gunakan panduan penggunaan dasar Ncat dan bantuan versi yang terpasang.

FAQ

Apakah nc dan ncat selalu sama?

Tidak. Keduanya termasuk keluarga Netcat, tetapi implementasi, opsi, sintaks listener, dan perilaku timeout dapat berbeda. Periksa paket serta keluaran bantuan perintah yang benar-benar dijalankan.

Apakah succeeded pada port 443 membuktikan HTTPS sehat?

Tidak. Pada contoh -vz, hasilnya adalah keberhasilan koneksi TCP. Periksa negosiasi TLS, sertifikat, dan respons HTTP dengan klien yang sesuai untuk menilai HTTPS.