Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Phần Mềm

Chấm dứt quy trình Linux theo số cổng:Phương pháp nhanh chóng và an toàn

Bạn đã bao giờ gặp phải tình huống cần dừng một tiến trình đang chạy trên một cổng cụ thể trên máy Linux của mình chưa?

Bạn có thể lo lắng rằng ứng dụng bạn đang chạy hoạt động sai hoặc ngốn tài nguyên mạng hoặc nguồn CPU cục bộ của bạn. Một ứng dụng như vậy thậm chí có thể là mối đe dọa bảo mật mà bạn muốn loại bỏ.

Dù lý do là gì, bạn có thể sử dụng các lệnh nhiệt áp, lsof và netstat từ thiết bị đầu cuối (cùng với lệnh kill) để giúp bạn tìm và hủy bất kỳ tiến trình Linux nào bằng cách sử dụng số cổng. Các lệnh này sẽ hoạt động trên hầu hết các hệ điều hành Linux, bao gồm cả Ubuntu.

Cách hủy tiến trình Linux bằng lệnh bộ nhiệt áp

Một trong những cách dễ nhất để hủy một tiến trình sử dụng số cổng là sử dụng lệnh nhiệt áp. Lệnh đầu cuối Linux này có thể liệt kê hoặc hủy các tiến trình truy cập tệp hoặc ổ cắm. Nếu một ứng dụng chạy với hoạt động mạng (và do đó sử dụng cổng mở), thì có thể ứng dụng đó đang thực hiện một trong hai điều sau.

Trước khi tiếp tục, bạn cần đảm bảo rằng bạn cảm thấy thoải mái khi sử dụng thiết bị đầu cuối dòng lệnh trên PC Linux của mình.

Chấm dứt quy trình Linux theo số cổng:Phương pháp nhanh chóng và an toàn

Để liệt kê các tiến trình đang sử dụng số cổng bằng bộ nhiệt áp, bạn có thể sử dụng cú pháp sau:

Fuser -n cổng giao thức

Trong ví dụ này, giao thức có thể là tcp hoặc udp, trong khi cổng là số cổng bạn muốn kiểm tra. Ví dụ:để xem tiến trình nào đang sử dụng cổng TCP 80, bạn có thể chạy:

bộ nhiệt áp -n tcp 80

Thao tác này sẽ in ID tiến trình (PID) của các tiến trình sử dụng cổng đó.

Để tắt các tiến trình đó, bạn có thể thêm tùy chọn -k vào bộ nhiệt áp. Điều này sẽ gửi tín hiệu SIGTERM đến từng quy trình, yêu cầu chúng kết thúc một cách nhẹ nhàng. Ví dụ:

bộ nhiệt áp -k -n tcp 80

Điều này sẽ giết tất cả các tiến trình sử dụng cổng TCP 80.

Nếu một số quy trình không phản hồi SIGTERM, bạn có thể sử dụng -KILL thay vì -k. Thao tác này sẽ gửi tín hiệu hủy (SIGKILL), tín hiệu này có thể giúp buộc các tiến trình hiện đang chạy mà bạn đã xác định phải chấm dứt ngay lập tức. Tuy nhiên, điều này có thể gây mất hoặc hỏng dữ liệu, vì vậy hãy sử dụng nó một cách thận trọng. Ví dụ:

bộ nhiệt áp -KILL -n tcp 80

Điều này sẽ giết chết tất cả các tiến trình sử dụng cổng TCP 80 một cách mạnh mẽ. Nếu bạn gặp bất kỳ sự cố nào, hãy chạy các lệnh này với tư cách là siêu người dùng (sử dụng lệnh sudo) hoặc thay vào đó bằng cách sử dụng người dùng root.

Cách hủy tiến trình Linux bằng lệnh lsof

Một cách khác để hủy tiến trình sử dụng số cổng trên PC Linux là sử dụng lệnh lsof. Lệnh này có thể liệt kê các tệp và ổ cắm đang mở trên hệ thống của bạn.

Chấm dứt quy trình Linux theo số cổng:Phương pháp nhanh chóng và an toàn

Để liệt kê các tiến trình đang sử dụng một số cổng cụ thể, bạn có thể sử dụng cú pháp sau:

lsof -i giao thức:cổng

Như trước, giao thức có thể là tcp hoặc udp, trong khi port là số cổng bạn muốn kiểm tra. Ví dụ:để xem quy trình nào đang sử dụng cổng TCP 53 (thường được sử dụng cho các yêu cầu DNS), bạn có thể chạy lệnh này:

lsof -i tcp:53

Thao tác này sẽ in một số thông tin về từng quy trình sử dụng cổng đó, bao gồm cả PID của nó.

Để hủy các tiến trình đó, bạn có thể sử dụng tùy chọn -t với lsof. Điều này sẽ chỉ in PID của các quy trình mà không có bất kỳ thông tin nào khác. Sau đó, bạn có thể chuyển đầu ra này sang lệnh kill bằng bất kỳ tùy chọn tín hiệu nào. Ví dụ:

giết $(lsof -t -i tcp:53)

Điều này sẽ gửi tín hiệu SIGTERM (mặc định) tới tất cả các quy trình sử dụng cổng TCP 53.

Nếu một số quy trình không phản hồi tín hiệu SIGTERM như trước, bạn có thể sử dụng -9 thay vì không dùng gì sau lệnh kill. Điều này sẽ gửi tín hiệu SIGKILL như trước, buộc chúng phải chấm dứt ngay lập tức nhưng cũng có thể gây mất hoặc hỏng dữ liệu. Ví dụ:

giết -9 $(lsof -t -i tcp:53)

Điều này sẽ gửi tín hiệu SIGKILL (mặc định) một cách mạnh mẽ tới tất cả các quy trình sử dụng cổng TCP 53.

Cách hủy tiến trình Linux bằng lệnh netstat

Bạn cũng có thể sử dụng lệnh netstat để theo dõi các tiến trình đang chạy trên PC Linux của mình bằng các cổng mạng đang hoạt động và mở. netstat cho phép bạn xem các kết nối mạng và số liệu thống kê trên hệ thống của mình, cho phép bạn xác định các quy trình có vấn đề.

Để liệt kê các quy trình sử dụng số cổng cùng với PID của chúng, bạn cần thêm hai tùy chọn:-p, hiển thị PID và -l, chỉ hiển thị các ổ cắm nghe.

Bạn cũng cần chỉ định giao thức (tcp, udp, v.v.) và tùy chọn lọc theo trạng thái (LISTEN, v.v.). Ví dụ:để xem quy trình TCP nào đang lắng nghe trên bất kỳ cổng nào, bạn có thể chạy:

netstat -p tcp -l

Thao tác này sẽ in thông tin về từng ổ cắm TCP đang nghe trên bất kỳ cổng nào, bao gồm cả cổng PID của nó.

Chấm dứt quy trình Linux theo số cổng:Phương pháp nhanh chóng và an toàn

Để lọc theo cổng cụ thể, bạn phải thêm tùy chọn khác:-n, hiển thị địa chỉ số thay vì tên. Bạn cũng cần chỉ định định dạng địa chỉ chính xác:[protocol][@hostname|hostaddr][:service|port].

Ví dụ:để xem quy trình TCP nào đang nghe trên cổng 80, bạn có thể chạy:

netstat -p tcp -l -n 80

Thao tác này sẽ in thông tin về từng ổ cắm TCP đang nghe trên cổng 8080, bao gồm cả PID của nó.

Chấm dứt quy trình Linux theo số cổng:Phương pháp nhanh chóng và an toàn

Để hủy các tiến trình đó, bạn có thể sử dụng lệnh kill với bất kỳ tùy chọn tín hiệu nào bạn muốn và các PID bạn thu được từ netstat. Ví dụ:

giết 1234 5678

Điều này sẽ gửi tín hiệu SIGTERM (mặc định) đến các quy trình có PID 1234 và 5678.

Nếu một số quy trình không phản hồi tín hiệu SIGTERM như trước, bạn có thể sử dụng -9 thay vì không dùng gì sau lệnh kill. Điều này sẽ gửi tín hiệu SIGKILL như trước, buộc chúng phải chấm dứt ngay lập tức nhưng có thể gây mất hoặc hỏng dữ liệu như trước. Ví dụ:

giết -9 1234 5678

Ví dụ:điều này sẽ gửi tín hiệu SIGKILL đến các quy trình có PID 1234 và 5678 một cách mạnh mẽ. Thay thế 1234 bằng PID chính xác cho quy trình đang chạy của bạn.

Chấm dứt quy trình Linux theo số cổng:Phương pháp nhanh chóng và an toàn

Kiểm soát các ứng dụng Linux của bạn

Nhờ các bước được nêu ở trên, bạn có thể nhanh chóng tắt tiến trình Linux đang chạy bằng cách sử dụng số cổng bằng dòng lệnh Linux. Hãy nhớ thận trọng khi tắt các tiến trình, đặc biệt là với tín hiệu SIGKILL, vì chúng có thể gây ra tác dụng phụ không mong muốn—rốt cuộc thì bạn không muốn gây ra sự mất ổn định cho hệ thống.

Bạn muốn xem xét kỹ hơn hiệu suất hệ thống của mình trên Linux? Tiếp theo, bạn có thể muốn kiểm tra mức sử dụng bộ nhớ của mình trên Linux. Nếu lo lắng về nguy cơ bảo mật tiềm ẩn, bạn cũng có thể muốn thay đổi mật khẩu của mình trên Linux.

Cần chuyển sang bản phân phối Linux mới? Nếu bạn là người mới bắt đầu, hãy coi Linux Mint là một giải pháp thay thế an toàn và ổn định.