Hướng Dẫn Tìm Kiếm Process Đang Chiếm Cổng Cho Trước

duycanpham

New member
|grep <port> ** Cách kiểm tra cổng nào bị chiếm bởi một quy trình trên Linux **

Một trong những nhiệm vụ phổ biến cho ngay cả các nhà phát triển và sysadmin là kiểm tra cổng nào bị chiếm bởi một quy trình trên Linux.Ví dụ: nếu máy chủ web Apache của bạn không thể khởi động vì cổng 80 đang bị chiếm bởi một quy trình khác, bạn cần tìm ra quy trình nào đang chiếm cổng đó.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn những cách khác nhau để tìm một quy trình đang chiếm một cổng nhất định trên Linux.Cụ thể, chúng tôi sẽ tìm hiểu cách sử dụng các chương trình sau để thực hiện nhiệm vụ trên:

* Netstat
* lsof
* Fuser

** Lưu ý: ** Tất cả các lệnh trên yêu cầu chạy dưới root.Bạn có thể chạy các lệnh trong ví dụ này bằng cách sử dụng sudo trước mỗi lệnh hoặc đăng nhập vào gốc bằng cách sử dụng `sudo su`.

## Sử dụng NetStat

Để sử dụng lệnh NetStat, trước tiên hãy kiểm tra nếu nó tồn tại trên hệ thống của bạn bằng cách chạy lệnh sau:

`` `
$ NetStat --Version
`` `

Hoặc:

`` `
$ Netstat -V
`` `

Nếu lệnh NetStat trả về một lỗi nói rằng nó không tồn tại, bạn cần cài đặt nó.

### Cài đặt NetStat trên Debian

Để cài đặt NetStat trên Debian (hoặc Ubuntu), bạn có thể sử dụng lệnh sau:

`` `
# apt-get install -y net-tools
`` `

Nếu bạn gặp lỗi khi không tìm thấy công cụ net, bạn cần cập nhật chỉ mục gói trước:

`` `
# Cập nhật apt-get
`` `

Và sau đó chạy lại lệnh cài đặt.

### Cài đặt NetStat trên Redhat

Để cài đặt NetStat trên Redhat (hoặc Centos), bạn có thể sử dụng lệnh sau:

`` `
# yum install -y net -tools
`` `

Nếu bạn gặp lỗi khi không tìm thấy công cụ net, bạn cần cập nhật chỉ mục gói trước:

`` `
# Cập nhật Yum
`` `

Và sau đó chạy lại lệnh cài đặt.

### Sử dụng NetStat

Khi chương trình NetStat được cài đặt, bạn có thể sử dụng nó để kiểm tra cổng nào bị chiếm bởi một quy trình bằng cách chạy lệnh sau:

`` `
# NetStat -tulpn
`` `

Lệnh này sẽ liệt kê tất cả các cổng mở trên hệ thống của bạn, cùng với ID quy trình (PID) của quy trình đang sử dụng mỗi cổng.

Để kiểm tra quy trình nào đang chiếm một cổng cụ thể, bạn có thể sử dụng lệnh sau:

`` `
# Netstat -tulpn |grep <port>
`` `

Ví dụ: để kiểm tra quy trình nào đang chiếm cổng 80, bạn sẽ chạy lệnh sau:

`` `
# Netstat -tulpn |GREP 80
`` `

Lệnh này sẽ xuất các thông tin sau:

`` `
TCP 0 0 0.0.0.0:80 0.0.0.0:* Nghe 9002/Apache2
`` `

Đầu ra này cho thấy quá trình với PID 9002 (là máy chủ web Apache) đang chiếm cổng 80.

## Sử dụng LSOF

Lệnh LSOF (danh sách mở các tệp) cũng có thể được sử dụng để kiểm tra cổng nào bị chiếm bởi một quy trình.Để sử dụng LSOF, trước tiên hãy chạy lệnh sau để liệt kê tất cả các tệp đang mở trên hệ thống của bạn:

`` `
# lsof -i -n
`` `

Lệnh này sẽ xuất ra một danh sách tất cả các tệp mở trên hệ thống của bạn, cùng với ID quy trình (PID) của quy trình đang sử dụng mỗi tệp.

Để kiểm tra quy trình nào đang chiếm một cổng cụ thể, bạn có thể sử dụng lệnh sau:

`` `
# lsof -i -n |grep <port>
`` `

Ví dụ: để kiểm tra quy trình nào đang chiếm cổng 80, bạn sẽ chạy lệnh sau:

`` `
# lsof -i -n |GREP 80
`` `

Lệnh này sẽ xuất các thông tin sau:

`` `
Lệnh pid người dùng fd loại kích thước thiết bị/nút tắt
httpd 9002 root 3U ipv4 403
=======================================
| grep <port> **How to check which port is occupied by a process on Linux**

One of the common tasks for even developers and sysadmin is to check which port is occupied by a process on Linux. For example, if your Apache web server cannot boot because port 80 is being occupied by another process, you need to find out which process is occupying that port.

In this article, we will show you different ways to find a process that is occupying a certain port on Linux. Specifically, we will learn how to use the following programs to perform the above task:

* netstat
* lsof
* fuser

**Note:** All of the above commands require running under root. You can run the commands in this example using sudo before each command or log in to the root using `sudo su`.

## Using netstat

To use the netstat command, first test if it exists on your system by running the following command:

```
$ netstat --version
```

Or:

```
$ netstat -v
```

If the netstat command returns an error saying that it does not exist, you need to install it.

### Installing netstat on Debian

To install netstat on Debian (or Ubuntu), you can use the following command:

```
# apt-get install -y net-tools
```

If you get an error saying that net-tools is not found, you need to update the package index first:

```
# apt-get update
```

And then run the installation command again.

### Installing netstat on Redhat

To install netstat on Redhat (or CentOS), you can use the following command:

```
# yum install -y net-tools
```

If you get an error saying that net-tools is not found, you need to update the package index first:

```
# yum update
```

And then run the installation command again.

### Using netstat

Once the netstat program is installed, you can use it to check which port is occupied by a process by running the following command:

```
# netstat -tulpn
```

This command will list all of the open ports on your system, along with the process ID (PID) of the process that is using each port.

To check which process is occupying a specific port, you can use the following command:

```
# netstat -tulpn | grep <port>
```

For example, to check which process is occupying port 80, you would run the following command:

```
# netstat -tulpn | grep 80
```

This command will output the following information:

```
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9002/apache2
```

This output shows that the process with PID 9002 (which is the Apache web server) is occupying port 80.

## Using lsof

The lsof command (list open files) can also be used to check which port is occupied by a process. To use lsof, first run the following command to list all of the open files on your system:

```
# lsof -i -n
```

This command will output a list of all of the open files on your system, along with the process ID (PID) of the process that is using each file.

To check which process is occupying a specific port, you can use the following command:

```
# lsof -i -n | grep <port>
```

For example, to check which process is occupying port 80, you would run the following command:

```
# lsof -i -n | grep 80
```

This command will output the following information:

```
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 9002 root 3u IPv4 403
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top