溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux如何檢查程序和監聽的端口

發布時間:2023-02-09 14:11:01 來源:億速云 閱讀:335 作者:iii 欄目:建站服務器

Linux如何檢查程序和監聽的端口

在Linux系統中,了解哪些程序正在運行以及它們監聽的端口是非常重要的。這不僅有助于系統管理員監控系統狀態,還能幫助排查網絡問題、優化性能以及確保系統安全。本文將詳細介紹如何在Linux系統中檢查運行中的程序及其監聽的端口。

1. 使用ps命令查看運行中的程序

ps命令是Linux中最常用的查看進程狀態的工具之一。通過ps命令,我們可以列出當前系統中正在運行的進程。

1.1 基本用法

ps aux
  • a:顯示所有用戶的進程。
  • u:顯示進程的詳細信息,包括用戶、CPU和內存使用情況等。
  • x:顯示沒有控制終端的進程。

1.2 示例輸出

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 169316  9384 ?        Ss   Oct01   0:02 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Oct01   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   Oct01   0:00 [rcu_gp]
...
  • USER:進程的所有者。
  • PID:進程ID。
  • %CPU:CPU使用率。
  • %MEM:內存使用率。
  • VSZ:虛擬內存大小。
  • RSS:物理內存大小。
  • TTY:進程關聯的終端。
  • STAT:進程狀態。
  • START:進程啟動時間。
  • TIME:進程占用CPU的時間。
  • COMMAND:啟動進程的命令。

1.3 過濾特定進程

如果你想查找特定的進程,可以使用grep命令進行過濾。例如,查找所有與nginx相關的進程:

ps aux | grep nginx

2. 使用netstat命令查看監聽的端口

netstat命令用于顯示網絡連接、路由表、接口統計信息等。通過netstat,我們可以查看系統中哪些端口正在被監聽。

2.1 基本用法

netstat -tuln
  • -t:顯示TCP連接。
  • -u:顯示UDP連接。
  • -l:顯示監聽中的端口。
  • -n:以數字形式顯示地址和端口號。

2.2 示例輸出

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
...
  • Proto:協議類型(TCP或UDP)。
  • Recv-Q:接收隊列中的數據量。
  • Send-Q:發送隊列中的數據量。
  • Local Address:本地地址和端口。
  • Foreign Address:遠程地址和端口。
  • State:連接狀態(如LISTEN表示監聽中)。

2.3 過濾特定端口

如果你想查看特定端口的監聽情況,可以使用grep命令進行過濾。例如,查看端口80的監聽情況:

netstat -tuln | grep :80

3. 使用ss命令查看監聽的端口

ss命令是netstat的替代工具,功能更強大,性能更好。它同樣可以用于查看系統中監聽的端口。

3.1 基本用法

ss -tuln
  • -t:顯示TCP連接。
  • -u:顯示UDP連接。
  • -l:顯示監聽中的端口。
  • -n:以數字形式顯示地址和端口號。

3.2 示例輸出

Netid  State      Recv-Q Send-Q Local Address:Port  Peer Address:Port                
tcp    LISTEN     0      128    0.0.0.0:22          0.0.0.0:*                    
tcp    LISTEN     0      128    127.0.0.1:631       0.0.0.0:*                    
tcp    LISTEN     0      128    :::80               :::*                         
udp    UNCONN     0      0      0.0.0.0:68          0.0.0.0:*                    
...
  • Netid:網絡類型(如tcp、udp)。
  • State:連接狀態(如LISTEN表示監聽中)。
  • Recv-Q:接收隊列中的數據量。
  • Send-Q:發送隊列中的數據量。
  • Local Address:Port:本地地址和端口。
  • Peer Address:Port:遠程地址和端口。

3.3 過濾特定端口

同樣,你可以使用grep命令過濾特定端口。例如,查看端口22的監聽情況:

ss -tuln | grep :22

4. 使用lsof命令查看程序和端口

lsof命令用于列出打開的文件。在Linux中,網絡連接也被視為文件,因此lsof可以用來查看哪些程序正在使用哪些端口。

4.1 基本用法

lsof -i
  • -i:顯示與網絡相關的文件。

4.2 示例輸出

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234  root    3u  IPv4  12345      0t0  TCP *:ssh (LISTEN)
nginx     5678  www     4u  IPv4  23456      0t0  TCP *:http (LISTEN)
...
  • COMMAND:進程名稱。
  • PID:進程ID。
  • USER:進程的所有者。
  • FD:文件描述符。
  • TYPE:文件類型(如IPv4、IPv6)。
  • DEVICE:設備號。
  • SIZE/OFF:文件大小或偏移量。
  • NODE:節點號。
  • NAME:文件名或網絡地址。

4.3 過濾特定端口

你可以使用grep命令過濾特定端口。例如,查看端口80的使用情況:

lsof -i :80

5. 使用fuser命令查看端口占用

fuser命令用于顯示哪些進程正在使用指定的文件或端口。

5.1 基本用法

fuser -n tcp 80
  • -n:指定協議類型(如tcp、udp)。
  • 80:端口號。

5.2 示例輸出

80/tcp:               1234  5678
  • 1234、5678:使用該端口的進程ID。

5.3 殺死占用端口的進程

如果你想殺死占用某個端口的進程,可以使用-k選項:

fuser -k -n tcp 80

6. 總結

在Linux系統中,檢查運行中的程序及其監聽的端口是系統管理和網絡排查的重要任務。通過ps、netstat、ss、lsoffuser等命令,我們可以輕松地獲取這些信息。掌握這些工具的使用方法,將有助于你更好地管理和維護Linux系統。

希望本文對你有所幫助!如果你有任何問題或建議,歡迎在評論區留言。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女