Alat jaringan TCP/UDP serbaguna
Netcrab adalah alat jaringan baris perintah yang dapat melakukan banyak hal. Ini merupakan penghormatan kepada netcat dan dapat melakukan banyak hal. Ikhtisar singkat tentang hal-hal yang dapat dilakukannya:
Untuk penggunaan penuh, jalankan netcrab --help
.
netcrab HOST:PORT
Ini terhubung ke server TCP yang ditentukan. Sekarang stdin Anda akan dikirim ke server dan stdout akan dicetak.
Format IPv6 untuk nama host harus menggunakan tanda kurung siku di sekelilingnya, misalnya localhost adalah [::1]
.
netcrab -L ADDR:PORT
netcrab -l ADDR:PORT
Anda dapat mendengarkan sebagai server TCP pada satu atau lebih port arbitrer. Menggunakan -l
keluar dari program setelah koneksi masuk pertama terputus. Gunakan -L
untuk "mendengarkan lebih keras": lanjutkan mendengarkan setelah pemutusan sambungan.
Sintaks ADDR:PORT
mendukung beberapa varian khusus:
localhost:5000
:5000
*:5000
Server TCP secara default hanya mengizinkan satu koneksi masuk untuk aktif pada satu waktu per alamat yang mendengarkan, tetapi flag -m max_inbound_clients
memungkinkan lebih dari satu koneksi.
Seperti halnya mode klien, stdin dikirim ke semua soket yang terhubung, dan data masuk dari semua soket dikirim ke stdout. Ini dapat diubah menggunakan argumen mode input dan output di bawah.
Argumen -z
menyebabkan soket segera terputus tanpa mengizinkan pengiriman data apa pun. Berguna untuk sekadar menguji konektivitas.
netcrab -u -L ADDR:PORT
netcrab -u HOST:PORT
UDP aneh karena Anda tidak benar-benar "terhubung" dengannya. Anda mengikat ke port lokal dan kemudian mengirim/menerima datagram ke/dari rekan jarak jauh. Mode mendengarkan dan mode koneksi untuk UDP bekerja sama persis, kecuali bahwa dalam mode koneksi, rekan pertama yang mengirim stdin diketahui di awal, dan dalam mode mendengarkan, lalu lintas stdin tidak dapat dikirim ke mana pun hingga pendengar menerima setidaknya satu datagram dari rekan.
Untuk -L
ini mendukung sintaks ADDR:PORT
yang sama seperti di atas untuk TCP.
Ukuran datagram defaultnya adalah 1 byte tetapi dapat dikontrol dengan argumen --ss
.
netcrab -L ADDR1:PORT1 -L ADDR2:PORT2
netcrab -u -L ADDR1:PORT1 -L ADDR2:PORT2
Netcrab mendukung mendengarkan beberapa alamat dan port lokal secara bersamaan. Ia akan menerima koneksi yang datang ke salah satu dari mereka. Ini mendukung TCP dan UDP.
netcrab -u --mc HOST:PORT
Netcrab mendukung penggabungan soket UDP ke grup multicast dengan menambahkan argumen --mc
. Ini juga memberikan kontrol untuk TTL untuk paket multicast ( --ttl
) dan apakah akan menerima paket multicast yang diulang kembali sejak program bergabung ke grup ( --mc_no_loop
).
netcrab -u -b HOST:PORT
Netcrab mendukung pengiriman datagram siaran UDP.
netcrab -i MODE
Mode masukan dapat dikontrol. Secara default, masukan berasal dari stdin. Ia menerima mode lain berikut:
none
: tidak ada masukan yang dapat dilakukan. Satu-satunya lalu lintas yang akan diproses berasal dari rekan-rekan jarak jauh.stdin-nochar
: berfungsi sama seperti stdin, tetapi tidak menggunakan "mode karakter". Ini berfungsi lebih buruk untuk penggunaan interaktif.echo
: semua lalu lintas yang diterima akan digaungkan kembali ke pengirimnya.rand
: data acak akan dihasilkan. Ukuran data acak dapat dikontrol oleh --rsizemin
dan --rsizemax
, dan jenis data dapat dikontrol oleh --rvals
.fixed
: hanya sangat berguna untuk pengujian kinerja. Pesan berukuran tetap yang sama dengan data tetap akan dikirim tanpa batas. Anda dapat mengontrol ukurannya menggunakan --ss
dan tipe data acak di dalamnya dengan --rvals
pfqoscli
: mengukur latensi terhadap suar Kualitas Layanan PlayFab.pfqossrv
: bertindak sebagai server suar Kualitas Layanan PlayFab untuk dijadikan target klien dalam mengukur latensi. Saat menggunakan salah satu mode stdin sebagai masukan, Anda dapat menentukan --exit-after-input
untuk keluar dari program setelah aliran masukan mencapai akhir file.
netcrab -o MODE
Secara default, keluaran menuju ke stdout, tetapi sering kali berguna untuk mengubahnya menjadi -o none
untuk melewati semua keluaran. Hal ini sangat berguna ketika melewati lalu lintas dalam jumlah besar, karena dapat memperlambat keluaran.
Mode default Netcrab adalah menggunakan stdin dan stdout, sehingga Anda dapat mengarahkan input dari file dan mengirim output ke file (atau menyalurkan antar program).
netcrab HOST:PORT < file
echo message | netcrab HOST:PORT
netcrab -6
netcrab -4
Anda dapat membatasi untuk hanya menggunakan kelompok alamat IPv6 atau IPv4. Hal ini membuat perbedaan lebih besar ketika menghubungkan ke nama host yang melalui resolusi DNS atau ketika mendengarkan tanpa menentukan alamat sumber yang jelas.
netcrab -s ADDR:PORT
Saat membuat koneksi TCP keluar atau mengirim datagram UDP, secara default Netcrab mengikat ke alamat wildcard IPv4 dan IPv6 (0.0.0.0:0 dan [::]:0). Anda dapat meneruskan -s
untuk mengikat secara eksplisit ke suatu alamat. Ini mendukung semua varian ADDR:PORT
yang dijelaskan di bagian "Server TCP".
netcrab HOST1:PORT1 HOST2:PORT2
Netcrab memungkinkan koneksi ke lebih dari satu rekan jarak jauh secara bersamaan. Sama halnya dengan mendengarkan beberapa koneksi bersamaan, lalu lintas dari mesin lokal akan dikirim ke semua rekan yang terhubung, masuk atau keluar.
netcrab -L ADDR:PORT HOST:PORT
Netcrab mendukung mendengarkan koneksi masuk dan membuat koneksi keluar pada saat yang bersamaan. Ini mungkin berguna untuk melakukan proksi lalu lintas dari satu alamat lokal ke alamat lokal lainnya, karena Anda dapat secara mandiri menentukan alamat yang akan didengarkan dan alamat sumber yang akan digunakan untuk koneksi keluar.
netcrab HOST:PORTxNUM
Terkadang berguna untuk dapat terhubung ke titik akhir yang sama beberapa kali, terutama untuk skenario saluran. Misalnya, untuk menyambung ke nama host sebanyak 12 kali, Anda dapat melakukan netcrab localhost:5000x12
. Ini akan mencoba 12 koneksi keluar secara bersamaan ke nama host dan port yang sama.
Hal ini juga dapat dikombinasikan dengan beberapa target. Di sini kita terhubung ke localhost di IPv4 lima kali, dan di IPv6 tiga belas kali. netcrab 127.0.0.1:5000x5 [::1]:5000x13
.
netcrab -r
netcrab -R
Dalam mode koneksi keluar, Anda dapat meminta Netcrab untuk membangun kembali koneksi yang terputus. -r
dibangun kembali pada koneksi yang anggun. -R
muncul kembali pada kesalahan yang tidak berterima kasih. Keduanya dapat ditentukan secara bersamaan, baik -r -R
atau -rR
.
netcrab --fm channels
netcrab --fm linger-channels
Sekarang kita sampai pada bagian yang sangat berguna. Netcrab dapat berubah menjadi router, meneruskan lalu lintas antara beberapa titik akhir. Mode "Saluran" memasangkan titik akhir dan meneruskan lalu lintas dua arah dari satu titik akhir ke titik akhir lainnya, bertindak seperti proksi transparan. Lalu lintas tidak diteruskan antar saluran. Bayangkan diagram berikut:
+-------------+ +-----------------------------+ +-------------+
| | | netcrab | | |
| HOST1:PORT1 <----> HOST2:PORT1 <-> HOST2:PORT2 <----> HOST3:PORT1 |
| HOST1:PORT2 <----> HOST2:PORT3 <-> HOST2:PORT4 <----> HOST3:PORT2 |
| | | | | |
+-------------+ +-----------------------------+ +-------------+
Saluran pertama dan kedua melewati seluruhnya tetapi tidak melintasi aliran sungai. Jika Host 1 atau Host 3 memutus titik akhir, pemutusan tersebut "diteruskan" ke ujung saluran yang lain juga. Jika perilaku tersebut tidak berhasil, Anda dapat beralih ke mode Saluran Berlama-lama.
Saat dalam mode saluran, klien maksimal secara otomatis bertambah menjadi 10 per alamat mendengarkan dengan asumsi bahwa pengguna mungkin menginginkan lebih dari satu koneksi pada satu waktu agar benar-benar, Anda tahu, menggunakan saluran tersebut. Ini dapat ditimpa dengan -m
.
netcrab --fm hub
Mode hub mirip dengan mode saluran, tetapi lebih sederhana: semua lalu lintas dari semua sumber jaringan diteruskan kembali ke semua soket lainnya. Anda bisa menggunakannya untuk mengatur ruang obrolan atau sesuatu.
Seperti dalam mode saluran, ketika dalam mode hub, klien maks secara otomatis bertambah menjadi 10 per alamat yang didengarkan tetapi dapat diganti dengan -m
.
netcrab -e COMMAND
Netcrab dapat menjalankan program lain dan menghubungkan stdin dan stdoutnya ke jaringan. Dapat dengan mudah menggunakannya untuk mengekspos shell jarak jauh atau semacamnya, meskipun tentu saja Anda harus berhati-hati dengan hal itu. Dalam mode ini, input dan output reguler akan dinonaktifkan.
String perintah dijalankan melalui shell saat ini.
Hampir semua kemampuan yang dijelaskan di atas dapat digabungkan dan digunakan secara bersamaan. Misalnya, Anda dapat mendengarkan beberapa alamat dan menyambung ke beberapa target dalam sesi yang sama sambil menggunakan hub untuk meneruskan semua koneksi.