GNU/Linux >> Belajar Linux >  >> Linux

Netcat berhenti mendengarkan lalu lintas UDP

Jadi ada banyak hal yang disebut netcat; ubuntu bahkan memiliki /etc/alternatives symbolic-link-hackery untuknya.

Saya pikir sebagian dari masalah Anda adalah UDP tidak melakukan sesi; Saya telah menyalin sebagian dari file /usr/share/doc/netcat-traditional/README.gz di bawah ini yang menjelaskan dengan cukup baik.

Koneksi UDP dibuka alih-alih TCP ketika -u ditentukan. Ini sebenarnya bukan "koneksi" per sesi karena UDP adalah protokol tanpa koneksi, meskipun netcat secara internal menggunakan mekanisme "soket UDP terhubung" yang didukung sebagian besar kernel. Meskipun netcat mengklaim bahwa koneksi UDP keluar "segera terbuka", tidak ada data yang dikirim sampai sesuatu dibaca dari input standar. Hanya setelah itu mungkin untuk menentukan apakah memang ada server UDP di ujung lain, dan seringkali Anda tidak tahu. Sebagian besar protokol UDP menggunakan batas waktu dan coba lagi untuk melakukan tugas mereka dan dalam banyak kasus tidak akan repot menjawab sama sekali, jadi Anda harus menentukan batas waktu dan berharap yang terbaik. Anda akan mendapatkan lebih banyak dari koneksi UDP jika input standar diumpankan dari sumber data yang terlihat seperti berbagai jenis permintaan server.

OK jadi mungkin itu bukan penjelasan yang bagus tapi itu yang bisa saya temukan.

Jika Anda belum melakukannya, Anda mungkin ingin bereksperimen dengan opsi netcat apa pun yang Anda temukan berkaitan dengan menunggu... sudahkah Anda bereksperimen dengan:

  • menggunakan -l serta -u untuk memastikan Anda dalam mode "mendengarkan"

  • -vv untuk melihat dengan tepat apa yang terjadi

  • -q -1 ...yang seharusnya "menunggu selamanya" bahkan setelah menerima EOF (mudah-mudahan, mendengarkan lagi?)


Anda dapat menggunakan socat untuk itu. Ini memiliki opsi yang sangat bagus fork :

fork Setelah membuat koneksi, tangani salurannya dalam proses anak dan biarkan proses induk berusaha menghasilkan lebih banyak koneksi, baik dengan mendengarkan atau dengan menghubungkan dalam satu lingkaran (contoh).

Klien (ya ini Anda jalankan dari klien):

$ ssh -L 7753:localhost:7753 YourServer.com "/usr/bin/socat tcp4-listen:7753,reuseaddr,fork UDP:8.8.8.8:53"

Klien:

$ sudo socat udp4-listen:53,reuseaddr,fork tcp:localhost:7753
$ dig @127.0.0.1 google.com

Linux
  1. Musik – Pemutar Musik untuk Pengalaman Mendengarkan yang Unik

  2. Praktik terbaik untuk menahan ledakan lalu lintas hari peluncuran

  3. Bluetooth Low Energy:mendengarkan notifikasi/indikasi di linux

  1. Apakah ada yang setara dengan cd - untuk cp atau mv?

  2. Beri makan semua lalu lintas melalui OpenVPN hanya untuk ruang nama jaringan tertentu

  3. buka port 8080 untuk mendengarkan

  1. Pengantar firewall aplikasi web untuk sysadmin Linux

  2. Bersarang untuk loop

  3. Netcat gagal memulai dalam mode mendengarkan