Bagaimana cara menutup atau (melepas ikatan?) Port yang dibiarkan terbuka oleh aplikasi jahat?

18

Saya menggunakan Fedora 13 64bit. Program gerhana saya memulai server pada port 9050 tapi saya mematikan program, gerhana gagal mematikan server dengan benar. Restart gerhana tidak berpengaruh.

Bagaimana saya bisa menutup atau melepaskan port secara paksa dari baris perintah?

Saya tahu reboot atau log off dan kembali akan menghapus port tetapi proses ini jauh lebih lambat bagi saya. Saya mencari paksa menutup port di command line.

Menandai
sumber

Jawaban:

8

Satu-satunya cara untuk menutup paksa port mendengarkan adalah dengan mematikan proses yang mendengarkannya. Gunakan lsof, netstat, fuser- sebagai root - untuk mengetahui ID proses. Setelah proses keluar (dengan sendirinya atau dengan terbunuh), kernel akan secara otomatis membersihkan semua soket yang terbuka. (Namun, mungkin ada kasus bahwa program akan ditolak mendengarkan pada port yang sama selama beberapa menit; dalam hal ini yang dapat Anda lakukan adalah menunggu.)

grawity
sumber
18
lsof -n -i

Temukan proses yang Anda cari dan bunuh.

Dari lsofmanual :

-n Opsi ini menghambat konversi nomor jaringan menjadi nama host untuk file jaringan. Menghambat konversi dapat membuat lari lebih cepat. Ini juga berguna ketika pencarian nama host tidak berfungsi dengan benar.

-i [i] Opsi ini memilih daftar file yang alamat Internetnya cocok dengan alamat yang ditentukan dalam i. Jika tidak ada alamat yang ditentukan, opsi ini memilih daftar semua file jaringan Internet dan x.25 (HP-UX).

Saya kira jawaban yang sama untuk pertanyaan ini .

jonnyflash
sumber
7
Lemparkan | grep ":9050"(atau nomor port apa pun) untuk dengan mudah memfilter output
isaacparrot
8

Anda dapat menggunakan fuserperintah dengan -kswitch.

Misalnya, untuk menutup port 111, Anda dapat melakukan hal berikut: fuser -k 111/tcp (ini juga menghemat kerumitan menemukan ID proses untuk membunuhnya seperti yang dilakukan pelebur secara implisit)

Perhatikan bahwa beberapa proses memulai ulang secara otomatis setelah ditutup. Untuk itu, Anda perlu memeriksa file konfigurasi setiap proses untuk menghasilkan solusi yang sesuai.

tony9099
sumber
-3

Saya memiliki masalah yang sama, hanya mencari proses yang mendengarkan port yang menggunakan perintah cmd di windows

netstat -a -b

maka Anda dapat mematikannya dengan task manager

daqop
sumber
2
Maaf, saya tidak memilih. Anda menyebutkan "pada Windows". Parameter "-b" untuk netstat, yang menunjukkan nama yang dapat dieksekusi, khusus untuk Microsoft Windows. (Variasi netstat Unix mungkin memiliki fungsionalitas yang serupa, tetapi biasanya tidak menggunakan parameter yang sama.) Namun, pertanyaannya mengatakan "Fedora", jadi penanya pertanyaan ini mencari informasi tentang Fedora 13 64bit, sistem operasi yang berbeda. Halaman manual netstat untuk Fedora menunjukkan bahwa menggunakan -pmenunjukkan PID (yang dapat digunakan untuk mengidentifikasi nama yang dapat dieksekusi).
TOOGAM
1
Ada beberapa kesalahan dalam jawaban ini. Jawabannya mengandung kesalahan tata bahasa yang bisa dihindari. Jawabannya juga tidak berlaku untuk Fedora, yang disebutkan dengan jelas, dalam kalimat pertama dari pertanyaan itu. Itu tidak seperti pertanyaan yang tidak mengandung informasi ini ketika jawaban ini diajukan 30 menit yang lalu, pertanyaan itu belum diedit sejak Juli 2011, yang hampir 5 tahun yang lalu. Jadi saya mengambil jawaban ini untuk apa itu, jawaban "saya juga", yang sangat jarang benar-benar bermanfaat.
Ramhound