GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mematikan satu koneksi TCP di Linux?

Berikut ini beberapa opsi:

  • Lampirkan dengan gdb dan panggil close() di fd. Anda dapat memetakan dari addr/port ke nomor inode melalui /proc/net/tcp dan dari nomor inode ke FD di dalam proses dengan ls -la /proc/$pid/fd.
  • Menipu paket RST. Anda harus membuatnya secara lokal dan entah bagaimana menebak nomor SEQ.
  • Mungkin menyiapkan aturan iptables untuk menghasilkan RST pada paket berikutnya.
  • Tulis modul kernel.

Sepertinya tidak ada cara yang didukung dengan baik untuk melakukan ini. Kemungkinan proses akan macet jika FD mereka tiba-tiba ditutup.


Anda tidak dapat mematikan satu koneksi pun dari suatu proses.

Tapi Anda bisa memblokirnya dengan iptables. Jadi koneksi tidak dapat memberikan atau menerima data dan klien akan berjalan dalam waktu tunggu.


Pada kernel linux>=4.9 Anda dapat menggunakan ss perintah dari iproute2 dengan kunci -K

ss -K dst client1.something dport = 49987

kernel harus dikompilasi dengan CONFIG_INET_DIAG_DESTROY opsi diaktifkan.


Anda dapat membunuh melalui port tujuan:

ss -K dport = 65987

Linux
  1. Cara Membunuh Proses yang Berjalan di Linux

  2. Bagaimana cara mendapatkan jumlah jiffies saat ini sejak reboot di Linux?

  3. Cara mematikan koneksi TCP menggunakan utilitas tcpkill

  1. Cara mematikan proses zombie di Linux

  2. Cara mengenkripsi satu sistem file Linux

  3. Cara memeriksa versi Kernel di Linux

  1. Linux – Bagaimana Cara Memuat Ulang Modul Kernel dengan Benar?

  2. Bagaimana cara menambahkan koneksi MySQL jarak jauh di linux?

  3. Bagaimana cara membuat kode modul kernel Linux?