Xử Lý Vấn đề "Port Already In Use" Trên Linux Và Windows - Viblo
Có thể bạn quan tâm
Hi chào các bạn, dạo này mình hay gặp vấn đề Port Already in Use trên Windows do mình sử dụng hơi nhiều chương trình cùng một lúc, tức là mình không thể mở chương trình vì đang có chương trình khác chiếm port đó rồi. Cái này khá là khó chịu, đôi khi bạn không biết chương trình nào đang sử dụng port đấy để mà tắt đi. Nay mình sẽ hướng dẫn các bạn xử lý vấn đề này nhé
Mình thấy có 2 cách xử lý chính:
- Bạn đang cần mở chương trình A sử dụng port 8080, tuy nhiên chương trình B đã chiếm port 8080 từ bao giờ rồi. Vậy bạn có thể tắt chương trình B đi để mở được chương trình A
- Tình huống như bên trên, tuy nhiên bạn có thể config lại chương trình A sử dụng port khác đang trống để khởi động chương trình A lên
Cá nhân mình thấy (và mình đã gặp rất nhiều trường hợp) việc config lại port default mất khá nhiều thời gian, config lại chương trình đó xong nó kéo theo các vấn đề khác nữa nên khá là mệt. Cho nên mình thường xem xét chương trình B mình có cần sử dụng nữa không thì tắt quách nó đi. Tuy nhiên giữa 1 đống service, 1 đống chương trình đang chạy ngầm thì bạn không biết được chương trình nào đang sử dụng cái port kia để tắt đi đúng không, sau đây mình sẽ hướng dẫn các bạn kiểm tra xem port đó đang chạy với chương trình nào nhé
Đối với Linux
Ví dụ ở đây mình đang sử dụng port 8081 để mở http.server trên python
┌──(minhtuan㉿MinhTuan-ACER)-[~] └─$ python3 -m http.server 8080 130 ⨯ Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...Giờ mình quên mất là mình đang mở nó, có rất nhiều cách để kiểm tra
Cách 1: netstat
Sử dụng lệnh netstat -paten để kiểm tra các port đang sử dụng
┌──(minhtuan㉿MinhTuan-ACER)-[/mnt/c/Users/minht] └─$ sudo netstat -paten [sudo] password for minhtuan: Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1000 16551 77/python3Kiểm tra đã thấy port 8080 đang được sử dụng bởi PID=77, chương trình python3 Kill PID 77 đi là chúng ta có thể sử dụng port 8080 rồi
(nhớ dùng quyền sudo đó nhé)
Cách 2: fuser
Có cách khác là sử dụng lệnh fuser, tuy nhiên lệnh này không show cho chúng ta program name là gì nhưng các bạn có thể sử dụng
┌──(minhtuan㉿MinhTuan-ACER)-[/mnt/c/Users/minht] └─$ sudo fuser 8081/tcp 1 ⨯ 8081/tcp: 77Kill tương tự lệnh kill bên trên, hoặc sử dụng lệnh sudo fuser -k 8080/tcp là kill process được 
Cách 3: lsof
List các process đang lắng nghe port 8080:
┌──(minhtuan㉿MinhTuan-ACER)-[/mnt/c/Users/minht] └─$ sudo lsof -i:8080 1 ⨯ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python3 77 minhtuan 3u IPv4 16551 0t0 TCP *:tproxy (LISTEN)Kill toàn bộ process đang lắng nghe ở port 8080:
sudo kill $(lsof -t -i:8080)Đối với Windows
Windows thì phức tạp hơn một chút, cũng sẽ có lệnh cho các bạn sử dụng, tuy nhiên người dùng Windows không hay gõ lệnh lắm mà sử dụng giao diện, mình sẽ giới thiệu cả 2 cách nhé
Sử dụng Task Manager
Mở Task Manager bằng cách chuột phải vào startbar và chọn Task Manager Mở giao diện Resource Monitor bằng cách chọn tab Performance và chọn nó

Sang tab Network

Ở đây có thể check được những port nào đang mở, PID chương trình đang sử dụng port đó là bao nhiêu, tuy nhiên mình không thể kill PID ở màn hình này được, cần chuyển sang tab Details của Task Manager

Xác định được PID nào bạn muốn kill thì chuột phải chọn End task là xong

Sử dụng Command line
Tương tự như với Linux, Windows cũng có thể sử dụng command line để tìm kiếm và kill process Vẫn sử dụng netstat
➜ ~ netstat -aon | findstr "8080" TCP 127.0.0.1:6767 127.0.0.1:8080 ESTABLISHED 16792 TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING 2408 TCP 127.0.0.1:8080 127.0.0.1:6767 ESTABLISHED 2408Cột cuối cùng chính là giá trị của PID, kill PID sử dụng câu lệnh bên dưới
➜ ~ taskkill /PID <process_id> /FKhác
Đối với Windows thì có nhiều phần mềm có thể hiển thị và giúp chúng ta check rồi kill process dễ dàng hơn, các bạn có thể sử dụng những phần mềm đó, tuy nhiên vẫn cần phải đảm bảo an toàn nhé.
Kết
Qua đây là một vài cách mà các bạn có thể tìm kiếm, kiểm tra và kill những process không cần thiết đang chiếm port của mình. Cảm ơn các bạn đã đọc tới đây
. Hẹn gặp lại.
Từ khóa » Cách đóng Port 80
-
Kiểm Tra Ứng Dụng Sử Dụng Port 80 Trên Microsoft Windows - BLOG
-
Fix Lỗi Port 80 Bị Chiếm Và Cách đổi Port Cho Xampp - BlogTipsTop
-
Làm Cách Nào để Giải Phóng Cổng 80 Của Tôi Trên Windows Localhost?
-
Kiểm Tra Cổng (port) đang Mở, Kết Nối đang được Thực Hiện Trong Hệ ...
-
Kiểm Tra Port 80
-
CáCH BIẾT CHƯƠNG TRìNH NàO ĐANG SỬ DỤNG CỔNG TCP 80 ...
-
Hướng Dẫn Chặn Port Trên Windows Server 2012 | Cloud VPS
-
Hướng Dẫn Mở Port 80 Và 443 Trong Firewalld - HOSTVN Blog
-
Hỏi Sửa Lỗi Port 80 Và Sll Port 443 Cho Xampp? - Hoàng Luyến
-
Open Port 80, 443, 3306 để Chạy Website Trên VPS Windows Cài ...
-
Hỏi Lỗi Port 80 In Use By “Unable To Open Process” With PID 4 Khi ...
-
Lỗi Port 80 In Use By "unable To Open Process" With Pid 4! Thì Nên ...
-
Cách Kiểm Tra Port Trên Máy Tính để Ngăn Chặn Những Truy Cập Trái ...