Membebaskan port TCP / IP?

146

netstat -tulnap menunjukkan port apa yang sedang digunakan. Bagaimana cara membebaskan port di Linux?

informatik01
sumber

Jawaban:

214

Seperti yang dikatakan orang lain, Anda harus membunuh semua proses yang mendengarkan pada port itu. Cara termudah untuk melakukannya adalah dengan menggunakan perintah fuser (1). Misalnya, untuk melihat semua proses mendengarkan permintaan http pada port 80 (jalankan sebagai root atau gunakan sudo):

# fuser 80/tcp

Jika Anda ingin membunuh mereka, tambahkan saja opsi -k.

uzi
sumber
1
Saya menemukan bahwa mengirim permintaan ke port juga membersihkannya (saya bukan ahli linux sekalipun)
Matej
1
Untuk menginstal fuser di Debian: sudo apt-get install psmisc ( bitflop.com/document/107 )
Korneel
1
Itu berhasil, tetapi saya harus menginstal psmisc juga pada CentOs 7 ( sudo yum install psmisc)
Marlon Bernardes
1
kill -9 $(fuser 80/tcp 2>/dev/null)
Hanynowsky
76

Untuk mematikan port tertentu di Linux gunakan perintah di bawah ini

sudo fuser -k Port_Number/tcp

ganti Port_Number dengan port Anda yang diduduki.

Anil Chahal
sumber
6
Ini sebenarnya membunuh proses yang membuka port dan bukan port itu sendiri.
vinayc
16

Anda dapat menggunakan tcpkill(bagian dari dsniffpaket) untuk mematikan koneksi yang ada di port yang Anda butuhkan:

sudo tcpkill -9 port PORT_NUMBER
AlexT
sumber
11
ini hanya hang$ sudo tcpkill -9 port 5432 tcpkill: listening on lxcbr0 [port 5432]
Anentropic
16

Dalam jenis terminal:

netstat -anp|grep "port_number"

Ini akan menampilkan detail port. Pergi ke kolom terakhir. Itu akan berada dalam format ini. Misalnya: - PID / java

kemudian jalankan:

kill -9 PID. Worked on Centos5

Untuk Mac:

lsof -n -i :'port-number' | grep LISTEN

Contoh Tanggapan:

java   4744 (PID)  test  364u  IP0 asdasdasda   0t0  TCP *:port-number (LISTEN)

dan kemudian jalankan:

kill -9 PID 

Bekerja di Macbook

pengguna2332505
sumber
jelas ini tidak berfungsi jika kolom PID kosong untuk port itu
Anentropic
1
... dan itu terjadi jika Anda tidak memiliki izin untuk melihat prosesnya ... cobalah sudo netstatuntuk benar-benar melihat PID :)
Anentropic
Saya mencoba untuk membunuh port pada contoh amazon ec2 via dempul cli. Forever mengatakan tidak memiliki proses yang berjalan tetapi port (4200 untuk aplikasi sudut) masih terbuka. Ini adalah satu-satunya perintah yang bekerja untuk saya.
vtechmonkey
9

The "netstat --programs"perintah akan memberikan informasi proses, dengan asumsi Anda akar sedang. Maka Anda harus mematikan proses "menyinggung" yang mungkin mulai lagi hanya untuk mengganggu Anda :-).

Apa yang sebenarnya ingin Anda capai di sini? Solusi akan bervariasi berdasarkan pada proses yang menahan port-port tersebut.

paxdiablo
sumber
8

Untuk memeriksa semua port:

netstat -lnp

Untuk menutup port terbuka:

fuser -k port_no/tcp

Contoh:

fuser -k 8080/tcp

Dalam kedua kasus Anda dapat menggunakan sudoperintah jika diperlukan.

Vinayak
sumber
7

Matikan proses mendengarkan port yang dimaksud. Saya percaya netstat menunjukkan Anda memproses id.

Gleb
sumber
3
netstat -anp | grep <port> kolom terakhir memiliki proses
user1747935
2

Jika Anda benar-benar ingin mematikan suatu proses dengan segera, Anda mengirimnya sinyal KILL daripada sinyal TERM (permintaan terakhir untuk berhenti, yang pertama akan langsung berlaku tanpa pembersihan). Mudah dilakukan:

kill -KILL <pid>

Perlu diketahui bahwa tergantung pada program yang Anda hentikan, kondisinya mungkin rusak parah saat melakukannya. Anda biasanya hanya ingin mengirim sinyal KILL saat terminasi normal tidak berfungsi. Saya bertanya-tanya apa masalah mendasar yang Anda coba selesaikan dan apakah membunuh adalah solusi yang tepat.

Paul de Vrieze
sumber
0

Saya pikir satu-satunya cara adalah menghentikan proses yang telah membuka port.

Tilo Prütz
sumber
-5

sudo killall -9 "nama proses"

Zonxwedop
sumber
-14

Mematikan komputer selalu membunuh proses untuk saya.

Zonxwedop
sumber
mematikan mesin server jarang terjadi.
waqas
23
apakah Anda mendapatkan lencana "terlucu" Anda?
jplandrain
Tidak perlu mematikan komputer Anda.
Anil Chahal
Ide terbaik yang pernah 10/10
Valentin Roudge
10
tidak seperti beberapa jawaban lain, ini pasti akan berhasil
Anentropic