Linux查詢埠號

一、基礎概念

埠號是網路通信中的一個概念,用於標識一條通信鏈路的端點,主要用於標識不同的服務。

常用的埠號被固定分配給了一些常用的服務,如FTP、HTTP、SSH等;除此之外,還有大量的私有埠號未被固定分配,在使用時需要協商雙方自定義。

在Linux中,所有的網路通信都是基於socket來實現的,而socket通信的兩個端點都會被綁定到一個埠號以區別不同的通信鏈路。

二、查詢埠號的方法

1. netstat命令

$ netstat -tlnp

該命令可以列出當前系統中所有的TCP和UDP埠號以及佔用埠號的進程,其中:

  • -t表示列出所有的TCP協議
  • -u表示列出所有的UDP協議
  • -l表示列出所有的正在監聽的埠號
  • -n表示不對埠號進行反向域名解析,提高命令執行速度
  • -p表示顯示佔用埠號的進程PID及名稱

示例:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd           
tcp6       0      0 :::80                   :::*                    LISTEN      5678/httpd          
udp        0      0 0.0.0.0:68              0.0.0.0:*                           901/dhclient        

可以看到當前系統中TCP協議下22埠號被sshd進程佔用,TCP協議下80埠號被httpd進程佔用,UDP協議下68埠號被dhclient進程佔用。

2. lsof命令

$ sudo lsof -i :埠號

該命令可以查詢指定埠號的佔用進程,其中:

  • -i表示查詢網路相關文件
  • -p表示查詢指定進程PID相關的文件

示例:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234 root    3u  IPv4  12345      0t0  TCP *:ssh (LISTEN)

可以看到22埠號被sshd進程佔用。

3. ss命令

$ ss -ltnp | grep :埠號

該命令可以列出指定埠號的佔用進程,其中:

  • -l表示只列出監聽狀態的埠號
  • -t表示只列出TCP協議相關的埠號
  • -n表示不對埠號進行反向域名解析,提高命令執行速度
  • -p表示顯示佔用埠號的進程PID及名稱

示例:

LISTEN   0         128                0.0.0.0:22            0.0.0.0:*      users:(("sshd",1234,3))

可以看到22埠號被sshd進程佔用。

三、防火牆對埠號的管理

在Linux中,防火牆是管理網路連接的基本手段之一。

1. 查詢防火牆狀態

$ sudo systemctl status firewalld

該命令可以查詢當前防火牆的運行狀態。

2. 查詢防火牆規則

$ sudo firewall-cmd --list-all

該命令可以列出當前系統中所有的防火牆規則及其對應的埠號。

3. 打開/關閉埠號

$ sudo firewall-cmd --add-port=埠號/tcp --permanent
$ sudo firewall-cmd --remove-port=埠號/tcp --permanent

該命令可以分別打開/關閉指定的埠號,並將規則永久寫入防火牆配置中。

四、小結

本文介紹了在Linux系統中查詢埠號的幾種方法,包括使用netstat、lsof、ss命令查詢,同時還介紹了防火牆對埠號的管理方法。

原創文章,作者:NVQV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136295.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NVQV的頭像NVQV
上一篇 2024-10-04 00:16
下一篇 2024-10-04 00:16

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • 如何在Linux中添加用戶並修改配置文件

    本文將從多個方面詳細介紹在Linux系統下如何添加新用戶並修改配置文件 一、添加新用戶 在Linux系統下創建新用戶非常簡單,只需使用adduser命令即可。使用以下命令添加新用戶…

    編程 2025-04-27
  • 如何解決linux jar包 invalid or corrupt jarfile問題

    對於許多開發人員和系統管理員在Linux環境下使用Java開發過程中遇到的一個常見的問題是 invalid or corrupt jarfile(無效或損壞的jar文件)錯誤。當您…

    編程 2025-04-27
  • 在Linux上安裝JRE並配置環境變數

    本文將從以下幾個方面為您詳細闡述如何在Linux系統上,通過自己賬戶安裝JRE,並且配置環境變數。 一、安裝JRE 在進行安裝前,我們需要下載JRE的安裝包並解壓,可以從官方網站下…

    編程 2025-04-27
  • GTKAM:Linux下的照片管理器

    GTKAM是用於Linux操作系統的一款照片管理器,它支持多種相機及存儲設備,並提供了一系列強大的工具,讓用戶可以方便地瀏覽、管理、編輯和導出照片。本文將從多個方面對GTKAM進行…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • 如何在Windows/Linux/MacOS下安裝Python

    如果你對Python安裝一無所知,本文將從多個方面對Python在Windows/Linux/MacOS下的安裝做出詳細闡述,為初學者提供幫助。 一、Windows下Python的…

    編程 2025-04-25
  • Linux網路連接激活失敗原因及解決方法

    一、網卡驅動問題 1、缺少網卡驅動 若使用新的網卡,需要安裝對應網卡驅動,否則會導致網路連接激活失敗。可通過以下命令查看當前系統中是否存在網卡驅動: lsmod | grep et…

    編程 2025-04-25
  • Linux Redis 重啟

    一、概述 Redis 是一款高性能的 NoSQL 資料庫,常用於各種應用場景的數據緩存、消息隊列、實時數據分析等等。在使用 Redis 過程中,如果出現了某些問題,有時候只需要重啟…

    編程 2025-04-25

發表回復

登錄後才能評論