Email Doanh NghiệpSSLFirewall Anti DDoS

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Hướng dẫn xử lý lỗi Port Already In Use trên Linux và Windows hiệu quả

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:04/11/2025
Lượt xem

Đánh giá

5/5 - (2 bình chọn)
Speed optimizer 2

Lỗi Port Already In Use là một trong những sự cố phổ biến nhất mà các quản trị viên hệ thống và nhà phát triển thường gặp, gây gián đoạn việc khởi động các ứng dụng và dịch vụ. Trong bài viết này mình sẽ giúp bạn hiểu rõ nguyên nhân gây ra lỗi này và hướng dẫn chi tiết cách sử dụng các công cụ dòng lệnh mạnh mẽ để xác định và giải phóng các cổng bị chiếm dụng trên cả Linux và Windows.

Những điểm chính

  1. Lỗi Port Already In Use là gì: Biết được đây là thông báo lỗi xuất hiện khi một ứng dụng cố gắng sử dụng một cổng mạng đã bị một tiến trình khác chiếm giữ, dẫn đến xung đột và không thể khởi động.
  2. Nguyên nhân gây lỗi Port Already In Use: Bao gồm một tiến trình cũ chưa được đóng hoàn toàn, xung đột cấu hình khi nhiều ứng dụng cùng sử dụng một cổng, hoặc do trạng thái TIME_WAIT của kết nối TCP.
  3. Cách xử lý lỗi Port Already In Use trên Linux: Để xử lý, bạn cần tìm và chấm dứt tiến trình đang chiếm cổng. Có ba công cụ dòng lệnh mạnh mẽ để thực hiện việc này: lsof, netstat và fuser.
  4. Cách xử lý lỗi Port Already In Use trên Windows: Trên Windows, bạn có thể sử dụng giao diện đồ họa của Task Manager để tìm và kết thúc tiến trình hoặc sử dụng các lệnh tương tự như trên Linux trong Command Line.
  5. Giới thiệu Vietnix: Biết được Vietnix cung cấp các giải pháp Hosting, VPS và máy chủ vật lý được xây dựng trên nền tảng hạ tầng mạnh mẽ.
  6. Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lỗi Port Already In Use.
những điểm chính

Lỗi Port Already In Use là gì?

Lỗi Port Already In Use là thông báo xuất hiện khi một ứng dụng hoặc dịch vụ cố kết nối hoặc khởi động trên một port nhất định, nhưng port đó đang bị chiếm giữ bởi một tiến trình khác trên hệ thống. Điều này có nghĩa là không thể sử dụng port mong muốn cho ứng dụng mới vì chúng đã được một chương trình khác đăng ký, dẫn tới xung đột kết nối hoặc khiến chương trình không khởi động được.

Lỗi Port Already In Use
Lỗi Port Already In Use là một thông báo lỗi phổ biến trong lĩnh vực mạng và phát triển phần mềm

Các nguyên nhân phổ biến gây lỗi Port Already In Use

Dưới đây là một số nguyên nhân điển hình mà bạn thường gặp phải trong quá trình vận hành ứng dụng hoặc server:

  • Tiến trình cũ chưa được đóng hoàn toàn: Nguyên nhân thường gặp này xảy ra khi một ứng dụng bị treo, dừng đột ngột hoặc terminal bị đóng mà tiến trình vẫn chạy ngầm. Khi đó, ứng dụng vẫn giữ port khiến các chương trình mới không thể sử dụng được port đó.
  • Xung đột cấu hình: Khi nhiều ứng dụng hoặc dịch vụ được cấu hình sử dụng chung một port (ví dụ, cả ApacheNginx cùng lắng nghe trên cổng 80), việc cạnh tranh port sẽ gây ra lỗi Port Already In Use.
  • Trạng thái TIME_WAIT của kết nối TCP: Sau khi kết nối TCP đóng lại, port sẽ được giữ lại trong trạng thái TIME_WAIT một thời gian ngắn nhằm đảm bảo mọi dữ liệu còn lại được truyền hết trước khi port được giải phóng hoàn toàn. Hiện tượng này là một phần cơ chế hoạt động tiêu chuẩn của TCP/IP.
Nguyên nhân phổ biến gây lỗi Port Already In Use
Nguyên nhân phổ biến gây lỗi Port Already In Use

Để giảm thiểu các lỗi kỹ thuật như “Port Already In Use”, một hạ tầng máy chủ ổn định là yếu tố quan trọng. Dịch vụ thuê máy chủ ảo giá rẻ Vietnix cung cấp nền tảng phần cứng hiện đại, giúp tăng cường sự ổn định và hạn chế các lỗi phát sinh từ hệ thống.

Thêm vào đó, đội ngũ kỹ thuật luôn sẵn sàng hỗ trợ 24/7 để xử lý các vấn đề phức tạp. Dịch vụ đảm bảo hiệu suất cao với chi phí tối ưu, là lựa chọn phù hợp cho các dự án cần hoạt động liên tục.

col vps gr 2

VPS Giá rẻ Vietnix: UPTIME VƯỢT TRỘI – chi phí tối ưu

Ổn định, an toàn, tiết kiệm – Nền tảng vững chắc cho website của bạn.


Để giải quyết lỗi, trước tiên bạn cần tìm ra tiến trình đang chiếm giữ cổng. Dưới đây là ba công cụ dòng lệnh mạnh mẽ và phổ biến nhất trên Linux để thực hiện việc này.

Sử dụng lệnh lsof

lsof (viết tắt của list open files) là công cụ mạnh mẽ và được các quản trị viên hệ thống khuyên dùng hàng đầu để kiểm tra các file và kết nối đang mở.

Để tìm tiến trình đang sử dụng một cổng cụ thể, bạn dùng lệnh sau:

sudo lsof -i :<PORT_NUMBER>

Trong đó, <PORT_NUMBER> là số hiệu cổng bạn muốn kiểm tra.

Ví dụ thực tế:

Giả sử bạn không thể khởi động ứng dụng của mình vì cổng 8080 đã bị chiếm. Hãy chạy lệnh:

sudo lsof -i :8080

Kết quả trả về sẽ tương tự như sau:

Bạn cần chạy lệnh sudo lsof -i :8080
Bạn cần chạy lệnh sudo lsof -i :8080
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    12345  vietnix  48u  IPv6 123456      0t0  TCP *:http-alt (LISTEN)

Từ kết quả này, bạn cần chú ý đến:

  • COMMAND: Tên của chương trình (ở đây là java).
  • PID (Process ID): Mã định danh của tiến trình (12345). Đây là thông tin quan trọng nhất bạn cần để chấm dứt tiến trình.
  • USER: Người dùng đang chạy tiến trình (vietnix).

Kill toàn bộ process đang lắng nghe ở port 8080 bằng câu lệnh:

sudo kill $(lsof -t -i:8080)
Bạn cần sử dụng lệnh sudo kill $(lsof -t -i:8080)
Bạn cần sử dụng lệnh sudo kill $(lsof -t -i:8080)

Sử dụng lệnh netstat

netstat là một công cụ để hiển thị thông tin về các kết nối mạng, bảng định tuyến và thống kê giao diện mạng.

Bạn có thể kết hợp netstat với grep để lọc ra cổng mình cần bằng câu lệnh sau:

sudo netstat -tulpn | grep :<PORT_NUMBER>

Trong đó:

  • -t: Hiển thị kết nối TCP.
  • -u: Hiển thị kết nối UDP.
  • -l: Chỉ hiển thị các cổng đang lắng nghe (LISTEN).
  • -p: Hiển thị PID và tên chương trình sở hữu cổng.
  • -n: Hiển thị địa chỉ và số cổng dạng số thay vì tên.

Ví dụ thực tế:

Để tìm tiến trình đang dùng cổng 22 (dịch vụ SSH):

sudo netstat -tulpn | grep :22

Kết quả:

Kết quả khi sử dụng lệnh sudo netstat -tulpn | grep :22
Kết quả khi sử dụng lệnh sudo netstat -tulpn | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      908/sshd

Trong đó, 908/sshd chính là cột PID/Program name.

Sử dụng lệnh sau để kill PID 908:

sudo kill -9 987

-9 là mã tín hiệu ép buộc tiến trình dùng ngay lập tức

Sử dụng lệnh fuser

fuser là một lựa chọn nhanh gọn, đi thẳng vào vấn đề bằng cách chỉ trả về PID của tiến trình đang sử dụng một file hoặc socket cụ thể.

Cú pháp cơ bản:

sudo fuser <PORT_NUMBER>/tcp

Hoặc cho kết nối UDP:

sudo fuser <PORT_NUMBER>/udp

Ví dụ thực tế:

Để tìm PID của tiến trình đang chiếm cổng 3000 (thường dùng cho các ứng dụng Node.js):

sudo fuser 3000/tcp

Kết quả trả về sẽ chỉ là số PID, ví dụ: 54321.

Kết quả trả về sẽ chỉ là số PID
Kết quả trả về sẽ chỉ là số PID

Sử dụng lệnh sau để kill PID 54321:

sudo kill -9 796 860
sudo fuser -k 3000/tcp (Lệnh dừng tất cả tiến trình đang dùng cổng 3000)

Sử dụng Task Manager

  • Bước 1: Bạn mở Task Manager bằng cách chuột phải vào thanh startbar và chọn Task Manager.
  • Bước 2: Trong giao diện Task Manager, bạn chuyển sang tab Performance, rồi mở Resource Monitor để chuyển sang tab Network.
  • Bước 3: Trên tab Network, bạn có thể kiểm tra những port nào đang mở và xem PID chương trình đang sử dụng port đó.
  • Bước 4: Để kết thúc một tiến trình chiếm port, bạn chuyển sang tab Details của Task Manager, xác định PID và chuột phải chọn End task để đóng tiến trình đó.

Sử dụng Command line

Bạn có thể sử dụng dòng lệnh để kiểm tra và kết thúc tiến trình đang chiếm port tương tự như trên Linux.

  • Chạy câu lệnh netstat:
netstat -aon | findstr "8080"

Kết quả trả về sẽ gồm các thông tin kết nối và PID của tiến trình sử dụng port.

  • Để đóng tiến trình vừa tìm được, bạn sử dụng câu lệnh:
taskkill /PID <process_id> /F

Thay thế <process_id> bằng PID thực tế lấy được ở bước trước để kết thúc tiến trình chiếm giữ port đó.

Vietnix – Hạ tầng mạnh mẽ với tốc độ vượt trội

Vietnix cung cấp dịch vụ VPS chuyên nghiệp trên hạ tầng hiện đại, đảm bảo tốc độ truy cập cực nhanh và khả năng vận hành ổn định cho website, ứng dụng và hệ thống doanh nghiệp. VPS Vietnix sử dụng ổ cứng SSD/NVMe Enterprise, đặt tại các trung tâm dữ liệu chuẩn Tier 3 quốc tế, giúp tăng độ bảo mật và uptime vượt trội. Giải pháp VPS của Vietnix phù hợp cho các developer, doanh nghiệp hoặc cá nhân cần máy chủ ảo mạnh mẽ, dễ mở rộng, và được hỗ trợ kỹ thuật 24/7.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh

Câu hỏi thường gặp

Sự khác biệt chính giữa kill và kill -9 là gì khi chấm dứt tiến trình?

kill <PID>: Gửi tín hiệu SIGTERM (yêu cầu dừng an toàn). Đây là một yêu cầu lịch sự, cho phép tiến trình tự dọn dẹp trước khi thoát.
kill -9 <PID>: Gửi tín hiệu SIGKILL (buộc dừng ngay lập tức). Đây là lệnh tiêu diệt không thể bị từ chối, có nguy cơ gây mất dữ liệu hoặc làm hỏng file.

Tại sao tôi không thể kill một tiến trình dù đã thử các lệnh kill?

Có ba nguyên nhân chính:
Thiếu quyền: Bạn chưa sử dụng sudo để thực thi lệnh kill trên một tiến trình không thuộc sở hữu của bạn.
PID sai: Tiến trình đã kết thúc và PID đó không còn tồn tại hoặc đã được gán cho một tiến trình khác.
Tiến trình bị kẹt (zombie process): Đây là tiến trình đã hoàn thành nhưng vẫn còn trong bảng tiến trình của hệ thống. Trong trường hợp này, thường chỉ có cách khởi động lại máy chủ.

Tôi có cần quyền root để giải phóng cổng không?

Điều này phụ thuộc vào cổng và tiến trình. Bạn cần quyền root (sử dụng sudo) khi:
– Tiến trình đang chiếm cổng thuộc về người dùng khác (như root).
– Cổng bị chiếm là một cổng đặc quyền (có số hiệu dưới 1024).
– Nếu tiến trình đó do chính bạn khởi chạy và đang sử dụng một cổng không đặc quyền (trên 1024), bạn có thể kill nó mà không cần sudo.

Lỗi Port Already In Use là một trở ngại phổ biến nhưng hoàn toàn có thể được giải quyết một cách nhanh chóng nếu bạn nắm vững các công cụ dòng lệnh cơ bản như lsof, netstat và fuser. Việc xác định chính xác tiến trình đang chiếm dụng cổng và chấm dứt nó một cách an toàn là kỹ năng cần thiết cho bất kỳ ai làm việc với máy chủ. Bằng cách áp dụng các phương pháp đã được hướng dẫn, bạn có thể tự tin xử lý sự cố này, đảm bảo các ứng dụng của mình luôn được triển khai và vận hành một cách suôn sẻ.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi tháng 10
Nhanh tay, số lượng có hạn!
01/10/2025 - 31/10/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG