• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Linux 查詢使用特定連接埠的程式教學與範例

介紹如何在 Linux 系統中使用 netstat、lsof 或 fuser 指令,查詢占用指定通訊埠的程式。

netstat 指令

netstat 指令屬於 net-tools 套件的一部分,大部分 Linux 發行版都可以透過本身的套件管理系統安裝:

# 安裝 net-tools 套件(Ubuntu/Debian)
sudo apt-get install net-tools

# 安裝 net-tools 套件(RHEL/CentOS/Fedora)
sudo dnf install net-tools

以下是使用 netstat 搭配 grep 指令查詢目前 傾聽 80 連接埠程式的指令:

# 查詢傾聽 80 連接埠的程式
sudo netstat -ntpl | grep -w ':80'
tcp6       0      0 :::80                   :::*                    LISTEN      1231/nginx: master

這裡 netstat 所使用的參數與意義如下:

  • -n:以 IP 數字顯示位址。
  • -t:只顯示 TCP 連線。
  • -p:顯示行程名稱與 ID,需要 root 管理者權限才能看到所有資訊。
  • -l:只顯示傾聽的 sockets。

lsof 指令

lsof 指令可以透過 lsof 套件安裝:

# 安裝 lsof 套件(Ubuntu/Debian)
sudo apt-get install lsof

# 安裝 lsof 套件(RHEL/CentOS/Fedora)
sudo dnf install lsof

lsof 的 -i 參數可以指定連接埠,查詢傾聽指定連接埠的程式:

# 查詢傾聽 80 連接埠的程式
sudo lsof -i :80
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   1231     root    6u  IPv4  26556      0t0  TCP *:http (LISTEN)
nginx   1231     root    7u  IPv6  26557      0t0  TCP *:http (LISTEN)
nginx   1243 www-data    6u  IPv4  26556      0t0  TCP *:http (LISTEN)
nginx   1243 www-data    7u  IPv6  26557      0t0  TCP *:http (LISTEN)
nginx   1244 www-data    6u  IPv4  26556      0t0  TCP *:http (LISTEN)
nginx   1244 www-data    7u  IPv6  26557      0t0  TCP *:http (LISTEN)

也可以限定通訊協定,例如只列出 TCP 協定傾聽 80 連接埠的程式:

# 查詢 TCP 協定傾聽 80 連接埠的程式
sudo lsof -i TCP:80

fuser 指令

fuser 指令屬於 psmisc 套件的一部分,大部分 Linux 發行版都可以透過本身的套件管理系統安裝:

# 安裝 psmisc 套件(Ubuntu/Debian)
sudo apt-get install psmisc

# 安裝 psmisc 套件(RHEL/CentOS/Fedora)
sudo dnf install psmisc

fuser 可以用來查詢指定協定與通訊埠的程式,例如查詢 TCP 協定傾聽 80 連接埠的程式:

# 查詢 TCP 協定傾聽 80 連接埠的程式 PID
sudo fuser 80/tcp
80/tcp:               1231  1243  1244

接著透過 ps 指令查詢 PID 對應的程式名稱:

# 查詢指定 PID 的程式名稱
ps -p 1231 -o comm=
nginx

參考資料

  • Tecmint:3 Ways to Find Out Which Process Listening on a Particular Port

分類:Linux

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide